ROCKY ownership transfer (LORE+CAIRNET) and EVA introduction
Date: 2026-05-06 Status: closed Supersedes: docs/decisions/2026-05-01-lore-cairnet-wire-adoption.md Superseded-by: none — current
Context
Section titled “Context”Sub-project E (merged 2026-05-01, commits 7965b08…32c15a0) ratified
applicability of a single bundled lore_cairnet integration across the
seven governed repos and shipped a CLI probe + diagnostic verb, decision
doc, runbook, and prompt (core/prompts/09-lore-cairnet-wire.md). The
implementation was sound; the ownership model was not.
Effective 2026-05-06, the LORE+CAIRNET service bundle moves under a new top-level repo, rocky-hq, which owns the bundle as a single unit (LORE collections + CAIRNET agent emissions). Concurrently, a new sibling repo, eva-hq, joins the petrova line — both as a governed repo itself and as a new integration surface that other repos may consume in future.
This decision realigns the registry, schemas, CLI, and operator prompts with the new ownership and adds EVA as a first-class but-provisional integration. The strategic layer vocabulary is unchanged: AIRLOCK remains the auth layer, PEBBLE remains the MCP layer (handoffs to Traceo + SMO1), ARES remains the CI/CD layer.
Decision
Section titled “Decision”- Rename
lore_cairnet→rockywherever the integration name appears as an identifier (registry schema enum, contract schema enum, state schema enum, applicability blocks, CLI types/probe/verb names, tests, fixtures). Endpoints are unchanged — Pebble continues to front the LORE+CAIRNET service bundle. The rename signals ownership, not migration. Historical observations instate/<slug>.yaml/probe_historyremain under their originallore_cairnetintegration name; thestate.schema.jsonprobe_history.integrationenum retainslore_cairnetas a legacy value for read-back compatibility. - Introduce
evaas a fifth integration key alongsideares,traceo,crumb,rocky. Its evidence shape is provisional (eva_service_id, optionaleva_endpoint,registered_at) and will tighten in a subsequent decision once eva-hq publishes its consumption surface. Default applicability across existing repos isnot_applicableuntil that surface is published; operators flip per repo as adoption proceeds. - Add
rocky-hqandeva-hqas governed repos inregistry.yaml. Both declare<self>:not_applicable(a repo does not consume itself via the spine), witheva-hqflaggedrole=scaffold,profile=permissiveuntil first decision-doc supersession (mirrors thetraceo-mcp-serveronboarding pattern). - Preserve historical record (MR-7): the prior decision doc
2026-05-01-lore-cairnet-wire-adoption.mdand its sibling runbooklore-cairnet-wire-rollout.mdare left byte-identical. This document supersedes them. - Submodule update:
core/prompts/09-lore-cairnet-wire.mdis renamed to09-rocky-wire.md; a placeholder10-eva-wire.mdis added. Bumped via separate submodule commit per CLAUDE.md discipline.
Alternatives considered
Section titled “Alternatives considered”- Add an
owner:metadata field per integration, keeplore_cairnetas the key — would future-proof for additional ownership transfers but introduces governance complexity for a single transfer. Rejected on YAGNI grounds; if a second transfer occurs, this decision can be revisited and the indirection added then. - Drop
lore_cairnetoutright; treat ROCKY as a fresh integration — cleaner schema diff but discards the sub-project E wire-up work (probe logic, evidence shape, applicability ratifications). The in-place rename preserves all of it 1:1. - Treat EVA as a governed repo only, no integration key — defers the schema change but means consumers cannot declare intent against EVA without a follow-up migration. Rejected: cheaper to add the provisional key now.
Consequences
Section titled “Consequences”For code:
registry.schema.jsonenum:lore_cairnetremoved,rocky+evaadded.contracts/contract.schema.json:integration_lore_cairnet→integration_rocky; newintegration_eva(provisional shape).contracts/state.schema.json:last_verified_atandcurrent_statusrequirerocky+eva;probe_history.integrationenum retainslore_cairnetas legacy.cli/src/probes/lore_cairnet.ts→cli/src/probes/rocky.ts; new stubcli/src/probes/eva.ts.cli/src/verbs/lore_cairnet_status.ts→cli/src/verbs/rocky_status.ts; new stubcli/src/verbs/eva_status.ts.- CLI verb
petrova lore-cairnet-status→petrova rocky-status; newpetrova eva-status(returnsnot_implemented). - Tests + fixtures renamed; eva blocks added.
For docs:
- This decision doc supersedes
2026-05-01-lore-cairnet-wire-adoption.md. - New runbook
docs/runbooks/rocky-eva-wire-rollout.md. - README integration vocabulary updated.
For in-flight phases:
- Sub-project E rollout (Phase 1 serial: grace-hq → kahn-hq;
Phase 2 pipelined: choco, stratt, devarno-cloud) continues under
the new
rockyname; per-repo decision docs and contract flips reference this doc going forward.
For invariants:
- MR-7 upheld: prior decision doc and runbook untouched.
- MR-3 upheld: new runbook is sibling to the prior, not a replacement.
- MR-4 upheld: ISO date
2026-05-06. - MR-12 upheld: no template change in
core/templates/(rocky/eva are parent-registry concerns, not consumer template defaults). - No new MR proposed.
References
Section titled “References”- Sub-project E merge: commit
32c15a0(PR #14, 2026-05-01). - Prior decision:
docs/decisions/2026-05-01-lore-cairnet-wire-adoption.md. - Prior runbook:
docs/runbooks/lore-cairnet-wire-rollout.md. - Layer invariants context:
core/templates/META-RULES.md,00-bootstrap.md. - Note: the string
rockypreviously appeared inregistry.yamlnotes fordevarno-cloud(referencing therocky/kalexexternal-gitignore directory, decision0002-unclassified-dirs-disposition.mdupstream). That usage is unrelated to thisrocky-hqrepo; flag for cleanup if it becomes ambiguous.
Sign-off
Section titled “Sign-off”- Subagent: petrova-control-plane (planning + edits, 2026-05-06)
- Human: pending