Skip to content

2026-08-01 — Promote arno-host scaffold → experimental


2026-08-01 — Promote arno-host scaffold → experimental

Section titled “2026-08-01 — Promote arno-host scaffold → experimental”

Date: 2026-08-01 Status: ratified Slug: arno-host MR-compliance: MR-4, MR-7, MR-12, MR-15, MR-17 Supersedes: the role: scaffold row set by docs/decisions/2026-07-29-petrova_act_register_consumer-arno-host.md (that doc stays accurate as a snapshot of registration; only the role and notes move)

arno-host was registered on 2026-07-29 by petrova_act_register_consumer, which hardcodes role: scaffold. That was correct then — the repo had a hand-authored .petrova/contract.yaml and nothing else of the control loop. It is no longer correct.

Per docs/decisions/2026-04-30-registry-roles-and-profiles, scaffold means pre-onboarding, control loop incomplete — not “early” and not “deprecated”. That condition has been cleared:

  • MR-17 — playbook physically present. petrova_install_playbook output merged as arno-host PR #3 on 2026-08-01: .petrova/playbook/ (META-RULES, bootstrap prompt, partials, progress schema) plus .github/workflows/petrova-notify-state.yml.
  • Control loop complete. arno-host PR #19 generated CLAUDE.md, MILESTONES.md (9 phases with acceptance gates), AGENTS.xml (4 subagents, schema-valid, handoff DAG), docs/north-star/ (3 docs, cap respected), docs/META-RULES.md, and .petrova/brand.yaml (shard global). Recorded in arno-host docs/decisions/2026-08-01-bootstrap-complete.md.
  • MR-15 — docs-invariants live. Installed in the same PR and green in CI (13s): ISO filenames, AGENTS.xml schema, both DAG checks, milestone cross-references, MR-7 supersession. It carries the corrected supersession guard from devarno-cloud#101, not the body-text-only version that never fired.
  • Real code, audited. Phase 0 closed on the evidence at arno-host docs/audit/execution/20260729T145744Z/ — 17/17 dispatchable nodes VERIFIED, 0 files written outside the touches union, lint/typecheck/test green at final HEAD. Phase 1 (CLIO artefact store) is open, with CLIO live at clio.arno.host.

Not production. The v0.1 exit criteria in arno-host:packages/contracts/spec/contract-tests.yaml are unmet: mail-gateway, radio and the web surfaces are specced but unbuilt, and the media-gateway suite is deliberately BLOCKED on OQ-3 (the live Jellyfin openapi.json is unpinned). experimental is the honest tier.

Profile stays standard. The repo is private on a Free plan; gh api repos/arno-host/arno-host/branches/main/protection returns HTTP 403 (“Upgrade to GitHub Pro…”), so no required-reviewer rule is expressible. There is a real CI check and no human-reviewer requirement — the rule’s definition of standard.

fleets_allowed stays []. No fleet is wired. AGENTS.xml declares the petrova-act capability status="inert" for exactly this reason. Enabling it is a later registry edit, not an edit in the consumer repo.

registry.yaml > repos[arno-host]:

  • role: scaffoldexperimental
  • integrations_applicability: added, all five not_applicable
  • notes: stub → grounded summary with the promotion evidence
  • unchanged: url, default_branch, profile, fleets_allowed, added, contract_sha (66519e31490c, re-verified by git hash-object against the live .petrova/contract.yaml — no contract drift), contract_committers

All five not_applicable. No ARES, Traceo, CRUMB, ROCKY or EVA wiring exists in the repo.

One asymmetry is worth stating so a future reader does not “correct” it: CLIO (services/clio, clio.arno.host) is becoming the artefact host for ares’ Allure reports, replacing the gh-pages publishing path and reports.devarno.cloud. That makes arno-host ares’ storage backend, not an ares consumer — the applicability matrix asks the latter. Revisit when CLIO Phase A closes.

  1. Contract self-declaration is stale. arno-host:.petrova/contract.yaml still says all five integrations are pending (2026-07-28). Governance now says not_applicable. Per the registry schema this is not a CI failure — that fires only when a consumer claims not_applicable against a governance required — but the two should agree. Reconciling bumps contract_sha and must land as a paired consumer PR + registry edit.
  2. declare_baseline v5 stays blocked. AUDIT_HAS_NO_FAILS reports 18 fails across other consumers (abacus, devaqua-blue, fathom, hermes and more — mostly MR-14 contract unobserved, MR-15 workflow missing, MR-17 playbook not installed). Unrelated to this promotion; an operator task here. arno-host’s own MR-15 and MR-17 fails are cleared by the two PRs cited above.
  3. PETROVA_DISPATCH_TOKEN is unset in arno-host’s Actions secrets, so petrova-notify-state.yml no-ops. The 30-minute state-sweep cron covers it.
  • petrova sweep-state continues tracking arno-host and will now compare against a complete control loop rather than a bare contract.
  • Phase state becomes meaningful on the dashboard: Phase 0 closed, Phase 1 open.
  • Promotion experimentalproduction is gated on the v0.1 exit criteria in contract-tests.yaml, verbatim — including the media-gateway suite staying BLOCKED rather than being silently closed.