Skip to content

Sub-project G — closure (G.1 + G.2 + G.3 ratified)

Date: 2026-05-06 Status: closed Supersedes: none Superseded-by: docs/decisions/2026-05-08-adopt-eva-consumption-v1.md (G.2 outcome only — G.1 + G.3 unaffected)

Sub-project G was opened earlier today (docs/decisions/2026-05-06-sub-project-g-rocky-eva-surface-ratification.md) to ratify the surfaces exposed by the rocky and eva integrations and tighten the upstream contract.schema.json shapes accordingly. Three pieces:

  • G.1 (rocky-hq surface) — owned by rocky-hq.
  • G.2 (eva-hq surface) — owned by eva-hq.
  • G.3 (schema + probe follow-through) — owned by petrova-hq.

This doc closes all three.

G.1 outcome — Pebble continues to front rocky

Section titled “G.1 outcome — Pebble continues to front rocky”

Ratified in rocky-hq/docs/decisions/0007-petrova-g1-rocky-surface.md (rocky-hq#18, 2026-05-06).

Stance: Pebble continues to front the rocky integration today. HEARTH (rocky-hq Phase 5) will re-open G.1 with its own endpoint shape once concrete. We are currently mid Phase 3a.

Schema impact: none. integration_rocky.evidence already correctly models the deployed Pebble endpoints; no change.

G.2 outcome — eva has no consumption surface

Section titled “G.2 outcome — eva has no consumption surface”

Ratified in eva-hq/docs/decisions/2026-05-06-petrova-g2-eva-surface.md (eva-hq#6, 2026-05-06).

Stance: eva-hq is single-user/local. The product is a personal prompt library with two CLI binaries (kick, eva). No HTTP/MCP service surface for downstream PETROVA consumption. Every governed repo’s eva: not_applicable is permanent steady state, not transient.

Schema impact: simplify integration_eva.evidence:

  • Drop required: ["eva_service_id"]. Evidence is no longer load-bearing because no consumer will be in wired status.
  • Retain eva_service_id, eva_endpoint, registered_at as optional fields. If eva-hq later reverses G.2 with a service surface, the schema absorbs evidence without a breaking change.
  • Updated description documents the steady state and the forward-compatibility rationale.

This PR ships:

  1. The schema simplification described above (contracts/contract.schema.json#integration_eva.evidence: required array removed; description rewritten).
  2. No probe change. cli/src/probes/eva.ts continues to return unreachable / pointer-to-decision; that is correct given G.2’s stance (no surface to probe).
  3. Tests still 158/158 (existing fixtures don’t depend on the former required: ["eva_service_id"] constraint; the change is purely permissive).
  4. This decision doc.
  5. A findings closure entry (docs/findings/20260506-2000-sub-project-g-closure.md) marking the “provisional eva shape” note from sub-project F’s closure as resolved.

Sub-project G has clear re-open paths if the world changes:

  • G.1’ (HEARTH lands) — rocky-hq supersedes 0007 with an own-surface decision once HEARTH ships in Phase 5. petrova-hq follows with integration_rocky.evidence adding a HEARTH endpoint field; rocky probe branches.
  • G.2’ (eva exposes a surface) — eva-hq supersedes its G.2 decision; petrova-hq tightens integration_eva.evidence required fields and the eva probe gains real logic.

For code: schema permissiveness expanded for integration_eva. No probe change.

For docs: this doc closes G; findings entry seals the provisional-shape thread.

For invariants:

  • MR-7 upheld (new doc; G’s open doc is not edited).
  • MR-3 spirit upheld (rocky-hq and eva-hq each ratified their own surface; petrova-hq accepted).
  • MR-12 upheld (schema is a source; CLAUDE.md projection unaffected).
  • G open: docs/decisions/2026-05-06-sub-project-g-rocky-eva-surface-ratification.md
  • G.1: rocky-hq/docs/decisions/0007-petrova-g1-rocky-surface.md (rocky-hq#18)
  • G.2: eva-hq/docs/decisions/2026-05-06-petrova-g2-eva-surface.md (eva-hq#6)
  • F closure (where the eva-shape provisional note originated): docs/findings/20260506-1700-sub-project-f-closure.md
  • Subagent: petrova-control-plane (2026-05-06)
  • Human: pending