← Ledger


title: Agentic layer is a HATCH projection — no new erid.tech citizen date: 2026-06-29 status: Accepted phase: cross-cut (folds into Phase 7) predecessor: docs/decisions/2026-05-08-erid-domain-adoption.md related: - docs/decisions/2026-05-08-agentic-emission-v1.md - docs/decisions/2026-05-19-agentic-emission-canonical-fold.md - docs/north-star/intent.md (drift watch #1)

Agentic layer is a HATCH projection

Context

hatch.devarno.cloud/agents ships an empty agents-registry UI (columns: AGENT, TYPE, OWNER, APPROVAL, CAPABILITIES, RATE). The producer side does not yet exist anywhere in the rocky-hq pantheon. Separately, the codebase already contains several agent-shaped surfaces that have grown up under other names: COUNCIL personas (console/src/lib/workspace/council.ts), SNIFFER analyzer runs (console/src/lib/sniffer/analyzer.ts), STRATT strategy registries (console/src/lib/stratt/registry.ts), RALPH runs, and RELAY executors. Each emits — or is positioned to emit — work that an operator would recognise as "an agent did a thing."

Three options were considered for naming and hosting an "agentic layer":

  1. New citizen — register agents.erid.tech (or crew.erid.tech) as a 13th ADR-0009 subdomain with its own subsystem (SS-09 AGENTS) holding a primary agent registry.
  2. First-class subsystem, existing surface — admit SS-09 AGENTS as a new entry in the redesign-spec subsystem map but host it inside rocky.erid.tech, with its own console/src/lib/agents/ namespace owning a primary agent registry.
  3. Cross-cut projection — no new citizen, no new subsystem. Each existing subsystem (SS-01..SS-08) emits agent.* HATCH events when an agent-shaped thing registers, runs, or completes. hatch.devarno.cloud/agents reads the HATCH feed and projects those events to its column schema. Authoritative state lives in each producer subsystem; the registry is a view.

Decision

Adopt option 3 (cross-cut projection).

Why projection, not registry

Drift-watch #1 in docs/north-star/intent.md explicitly rules out the "generic agent ledger" anti-shape. An authoritative agents-registry — even one scoped to rocky-hq — would normalise the very surface that drift-watch was written to keep out. A projection over per-subsystem HATCH writes preserves the invariant: every agent in the view traces to a specific subsystem's existing purpose, and removing that producer subsystem removes its agents from the view automatically.

A second-order effect: keeping authority distributed forces each subsystem to own its agent vocabulary on its own terms (COUNCIL's "personas," STRATT's "strategies," RALPH's "runs"). The hatch projection unifies the operator view without flattening the producer semantics.

Phasing

Folded into Phase 7 as three sub-phases. No Phase 8 invented.

Phase 5c (hearth LocalDocker + RPC, in flight on docs/phase-5c-plan) and Phase 6 (K8s driver, cloud transport) remain unchanged. Phase 5c already provisions the infrastructure agents will eventually run on; this decision just establishes that those agents are projected into hatch when they exist, not registered.

Consequences

Sources