Skip to content

Decision: adopt ARES wiring + ratify applicability for 6 repos


date: 2026-05-01 status: proposed title: Adopt ARES wiring as a PETROVA artefact and ratify governance applicability supersedes: []

Section titled “date: 2026-05-01 status: proposed title: Adopt ARES wiring as a PETROVA artefact and ratify governance applicability supersedes: []”

Decision: adopt ARES wiring + ratify applicability for 6 repos

Section titled “Decision: adopt ARES wiring + ratify applicability for 6 repos”

Sub-project A merged the integration spine on 2026-05-01 (PR #8). The spine reserves a slot for ARES (AresIntegration in cli/src/types.ts, aresProbe in cli/src/probes/ares.ts) but ships only a stub probe and no governance commitment about which repos must be wired. The vault brief at ~/Documents/base-vault/plans/kit/xml/wire-2-ares.md has wired one repo (kahn-hq, precedent) and is otherwise private.

Sub-project B’s spec (docs/superpowers/specs/2026-05-01-petrova-ares-wire-spec.md) closes that gap.

Three things, atomically in this PR:

  1. Real ARES probe. cli/src/probes/ares.ts is replaced with a read-only probe that confirms wiring exists by querying the GitHub webhook + most recent delivery via gh api. Outcomes: ok | degraded | failing | unreachable. The probe never creates webhooks. (Wiring is for the prompt; observation is for the probe — same intent/observation split as MR-13.)

  2. Adopt the vault brief as core/prompts/06-ares-wire.md. A first-class PETROVA prompt callable as petrova act ares-wire. Operator-private values (Railway service names, KAHN URLs, atlas paths) are replaced with <<PLACEHOLDER>> tokens per the convention established by 00-bootstrap.md. Two PETROVA-specific tasksets are added: 0 (petrova doctor preflight) and 9 (consumer’s .petrova/contract.yaml.integrations.ares flip).

  3. Governance applicability. registry.yaml declares integrations_applicability.ares: required for the six governed repos: kahn-hq, stratt-hq, choco-hq, devarno-cloud, traceo-mcp-server, grace-hq. petrova-hq stays not_applicable (canary).

The 6 actual wirings are NOT performed by this PR. Each is a separate operator-driven event with its own dated decision doc inside the consumer repo, sequenced per docs/runbooks/ares-wire-rollout.md. This decision ratifies governance intent — the wirings are downstream work.

  • Probe only — leave the brief in the vault. Rejected: the brief is the load-bearing operational knowledge; making it private makes it lossy. Replicating it implicitly per repo is exactly the drift that a control plane is supposed to prevent.
  • Adopt the brief but skip the registry update. Rejected: the dashboard would have no ground truth for who SHOULD be wired vs who happens to be wired. Without required on the 6, a consumer that declared ares.status: not_applicable would silently be allowed.
  • Bundle the 6 wirings into this PR. Rejected: that would make a single merge mutate cross-org production state (real org webhooks, Railway secrets across the fleet). Wrong shape — webhooks are operator-gated by design (MR-7).

For code:

  • aresProbe becomes load-bearing; petrova doctor --slug=kahn-hq reports ok immediately (precedent already wired).
  • The probe shells out to gh api via ProbeContext.gh (added in this PR for testability).
  • A consumer declaring ares.status: not_applicable while governance says required is a designed CI failure — surfaces on the dashboard as failing per the registry-schema contract.

For docs:

  • New: core/prompts/06-ares-wire.md (in the core/prompts submodule).
  • New: docs/runbooks/ares-wire-rollout.md (wave-1/2/3 ordering + per-repo decision-doc template).
  • New: docs/superpowers/specs/2026-05-01-petrova-ares-wire-spec.md.
  • New: docs/superpowers/plans/2026-05-01-petrova-ares-wire-plan.md.

For in-flight phases:

  • Unblocks waves 1 (traceo-mcp-server) and 2 (grace-hq) — strictly serial, with a gate review between Phase 1 and Phase 2 (waves 3a/b/c pipelined).
  • Sub-projects C/D/E/F are unaffected; they may proceed in parallel.

For invariants:

  • No new MRs. MR-13 (intent/observation split) is reinforced by the probe’s read-only contract.
  • contract_committers: ["humans"] is now declared explicitly for all 7 governed repos (previously only the canary).
  • Spec: docs/superpowers/specs/2026-05-01-petrova-ares-wire-spec.md
  • Plan: docs/superpowers/plans/2026-05-01-petrova-ares-wire-plan.md
  • Runbook: docs/runbooks/ares-wire-rollout.md
  • Sub-project A spec/plan/MRs: docs/superpowers/specs/2026-04-30-petrova-integration-spine-design.md, docs/decisions/2026-04-30-integration-spine-meta-rules.md
  • Vault brief origin: ~/Documents/base-vault/plans/kit/xml/wire-2-ares.md (private; adapted into core/prompts/06-ares-wire.md with placeholder substitution)
  • Precedent wiring: kahn-hq @ v0.3.0-ingest

Tick all three boxes before flipping status: proposed → status: ratified and merging:

  • §5 of the spec: confirm the 6 required declarations are correct and no governed repo is missing.
  • core/prompts/06-ares-wire.md: confirm no operator-private content leaked from the vault brief (no real Railway service names, no real org/repo URLs beyond the public cicd.devarno.cloud).
  • docs/runbooks/ares-wire-rollout.md: accept the wave ordering (traceo-mcp-server first, devarno-cloud last; gate review between Phase 1 and Phase 2).
  • Subagent: writing-plans (sub-project B implementer)
  • Human: <> (<>)