Skip to content

P2 council pipeline is GRACE-governed: STRATT owns, ZOID consumes via GRACE

Date: 2026-07-07 Status: open Supersedes: none Superseded-by: none — current

Neverland P2 closes the council pipeline (edges E4/E5/E6) — the control-plane half of the fleet. The connector map flagged one product call: STRATT has a real council engine (18 council dirs, RunSessionInput) while SO1’s ZOID is a separate 8-persona agent concept using the same word.

The operator resolved the ownership and added the governing layer that reframes the whole pipeline: GRACE (grace-hq) is the Verifiable Agentic Prompt Architecture (VAPA) — the protocol STRATT implements — and the governing agentic layer for all OpenClaw operations. ZOID runs on OpenClaw (claw.so1.io) but is GRACE-blind today: its 8 personas (Anvil/Bard/Vault/…) are self-defined, not mapped to GRACE’s 16 Martian-named agents across 9 real councils (pathfinder/hermes/athena/bastion/compass/herald/terra/dendrite/primer). ZOID must become GRACE-aware without losing its powers (persona flavor, n8n council-workflows CW-01…07, Discord surfaces).

STRATT owns “council”; ZOID consumes STRATT councils through GRACE governance. The pipeline is not ZOID→STRATT direct — it is ZOID→(GRACE-governed)→STRATT, with KAHN as the telemetry sink:

  • GRACE is the governance envelope. Every council-governed operation is a stratt run --council <c> --outcome <o> invocation that loads the council’s SPEC-04 gate authority + protected agents, produces a SPEC-05 execution trace, and returns an exit code. GRACE has no HTTP API; it is the OpenClaw agent + file protocol + stratt CLI.
  • ZOID keeps its powers, gains GRACE-awareness by mapping each of its 8 personas onto a GRACE council/domain, and routing its consultations through stratt run --council instead of hard-coded LLM fan-out. ZOID’s n8n workflows and Discord output are unchanged; only the decision layer becomes GRACE-governed.
  • CAIRNET is the shared visibility bus. Outcomes surface as CAIRNET stones (agentic-emission.v1 / agentic-reaction.v1) — the schemas PETROVA already ships (schemas/agentic-*.v1.json) and GRACE already uses. No new cross-fleet event contract is needed.
EdgeContractOwnerShape
E6kahn.session_ingest.v1 (built, kahn #89)KAHNSPEC-05 council session trace → transitions.jsonl; GRACE context (council, gate_authority/status, chain_uri, fingerprint, quality_score) in run_type="council_session" + session_meta.
E4so1.council-endpoint.v1 (next)SO1FORGE endpoint accepting a GRACE council verdict (RunSessionInput outcome + SPEC-04 gate status) to gate an execution.
E5ZOID persona→GRACE-council map + stratt run routing (next)SO1/ZOIDZOID consultations invoke GRACE-governed councils; personas map to the 9 real councils; CAIRNET emission on outcome.

Sequencing (operator-chosen: contracts + KAHN first)

Section titled “Sequencing (operator-chosen: contracts + KAHN first)”
  1. E6 kahn.session_ingest.v1 — DONE (kahn #89). The council analogue of ci_bridge. Council sessions now land on the KAHN Scope board, GRACE-aware.
  2. E4 so1.council-endpoint.v1 — SO1 FORGE endpoint for council verdicts. Depends on nothing new; STRATT already emits RunSessionInput outcomes.
  3. E5 ZOID GRACE-mapping — map the 8 personas to GRACE councils, rewire ZOID’s CW-* n8n nodes to stratt run --council, keep powers. This is the largest and most product-shaped step.
  • ZOID→STRATT direct (no GRACE) — rejected: bypasses the governing layer; loses gate authority, SPEC-05 traces, and the no-phantom-agents discipline. The operator’s explicit intent is GRACE-governed ZOID.
  • Replace ZOID with GRACE agents — rejected: discards ZOID’s powers (personas, n8n workflows, Discord). Map, don’t replace.
  • A new cross-fleet event contract for visibility — rejected: CAIRNET (agentic-emission.v1) already exists in both PETROVA and GRACE.

For code:

  • kahn.session_ingest.v1 built (kahn #89). E4/E5 are later phases.
  • ZOID gains a GRACE-council mapping layer (SO1 side) — does not remove existing persona/workflow definitions.

For docs:

  • docs/neverland/01-connector-map.md E6 → PARTIAL (KAHN side built).
  • docs/neverland/02-shared-contracts.mdkahn.session_ingest.v1 added as built; so1.council-endpoint.v1 restated as GRACE-aware.

For in-flight phases:

  • P2 step 1 done. Steps 2 (E4) and 3 (E5) scoped.

For invariants:

  • Reinforces GRACE’s “no phantom concepts” discipline as the bar for ZOID’s GRACE-mapping. No new MR (MR-9).
  • kahn-hq #89 — kahn.session_ingest.v1 (schema + transform + 8 tests).
  • grace-hq architecture/GRACE-PROTOCOL-OVERVIEW.md (VAPA / 5 SPEC layers), config/gate-rules.yaml (SPEC-04 gate authorities), automation/trace-protocol.md (SPEC-05 trace shape).
  • stratt-hq packages/orchestrator/src/types.ts (RunSessionInput), councils/ (the 9 real councils).
  • so1-io standalone/zoid/ (8 personas, CW-01…07), so1-claw/ (OpenClaw deployment), so1-content/findings/2026-04-01-grace-stratt-council-alignment.md (ZOID’s phantom agents vs GRACE).
  • PETROVA schemas/agentic-emission.v1.json (shared CAIRNET bus).
  • Subagent: neverland P2 step 1 (council pipeline, KAHN session_ingest), 2026-07-07
  • Human: <<pending — Alex confirm; council-ownership + GRACE-governance answered 2026-07-07>>