← Ledger

0012 — agentic-emission canonical schema fold: single source incl. petrova.* kinds

Date: 2026-05-19 Status: ratified Supersedes: none — extends 2026-05-08-agentic-emission-v1.md (0008) additively Superseded-by: none — current

Context

Two physical agentic-emission.v1.json existed: rocky-hq/schemas/ (canonical per decision 0008) and a divergent superset in petrova-codes/cli/src/cairnet/ that added five petrova.* source_artifact.kind values (petrova.decision.opened, petrova.verify_round.verdict, petrova.milestone.transition, petrova.review.requested, petrova.integration.wired). Same agentic-emission.v1 string, different files — a maintenance-drift hazard, though within the additive-only evolution contract ratified upstream in ../petrova-codes/docs/decisions/2026-05-18-agentic-emission-schema-versioning.md (additive-only; minor bumps; readers tolerate unknown fields; the integrity anchor is pebble stone_canonical.py _PROJECTION, not the JSON schema file).

Decision (append-only history)

  1. 2026-05-19 — rocky-hq/schemas/agentic-emission.v1.json is the single canonical agentic-emission schema. No second physical copy is authoritative. Consumers (incl. petrova-codes) obtain it via the vendored CAIRNET kit, not a private copy.

  2. 2026-05-19 — additive fold. The five petrova.* kinds above are appended to source_artifact.kind.enum. Additive-only per the upstream schema-versioning ADR: no field removed or repurposed, schema:"agentic-emission.v1" major unchanged, other retained last, readers already tolerate unknown values. The pebble SP-2 ledger _PROJECTION integrity anchor is untouched — it does not project source_artifact.kind, so no historical stone hash is invalidated.

  3. 2026-05-19 — petrova-codes consumes the vendored canonical schema. Its local src/cairnet/agentic-emission.v1.json (and the package.json build copy) are removed; src/cairnet/envelope.ts validates against the kit-vendored schemas/agentic-emission.v1.json. This is implemented in fleet-rollout P2 (a separate plan), gated on the cairnet-emit-v2 kit tag cut after this fold lands.

Relates to