Split the Emission Cadence promotion gate and promote to candidate (T06)
The gate required two independent source implementations before draft promotion, which made one sentence do two jobs: whether the contract is specified well enough to implement against, which this repository can answer, and whether it survives implementers who did not write it, which it cannot. The second blocked the first, so the standard sat at draft — a word that reads as unfinished specification — when what was missing was adoption. Candidate now requires schema coverage of every form, one-command validation of an arbitrary source-owned declaration, a content-addressed bundle a source can pin to, separation of declaration from observation, and a documented external consumption path. All are met and were re-tested rather than assumed. Stable requires two source-owned declarations from independent owners pinned to a digest, an observer result from a third party, and a recorded incompatibility or a recorded absence of one — stricter than the sentence it replaces. Emission Cadence moves to candidate at document version 0.2.0. The wire contract is untouched at schema version 0.1, and no field, form or validation rule changes, so a producer conformant yesterday is conformant today. What was given up: candidate carries no interoperability evidence at all. The standard states that in its own section 10, naming that no consumer has implemented the contract and that its worked example is not a source-owned declaration. The gate now lives in the standard rather than only in SCOPE.md, so a reader meets it where the contract is. Recorded as INFO-DEC-2026-002 with the reasoning in history/. INFO-WP-0019 closes: all six tasks done. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 3588@bnt-lap001 Assistant-Session: 24b80f66-e5a7-4e61-99fe-2d422e6d17da
This commit is contained in:
parent
9de170ecf9
commit
4d0851c3fc
4 changed files with 155 additions and 12 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Conformance, reproducible consumption, and maintenance"
|
||||
domain: infotech
|
||||
repo: info-tech-canon
|
||||
status: blocked
|
||||
status: finished
|
||||
flavor: implementation
|
||||
owner: codex
|
||||
topic_slug: canon-optimization
|
||||
|
|
@ -93,7 +93,7 @@ models or runtime expansion.
|
|||
|
||||
```task
|
||||
id: INFO-WP-0019-T06
|
||||
status: wait
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "b33aeb8c-ba7c-5094-9902-85565c1e721b"
|
||||
```
|
||||
|
|
@ -136,6 +136,40 @@ source owner; a second must be independent of it. Asking them is an outward
|
|||
action this workplan does not authorize, so T06 stays `wait` until the operator
|
||||
decides whether to solicit declarations, and from whom.
|
||||
|
||||
### Result — 2026-09-21 (T06)
|
||||
|
||||
Closed by restating the gate rather than by evidence arriving, on the operator's
|
||||
decision of 2026-09-21 after the third recheck found the evidence unchanged.
|
||||
Recorded as INFO-DEC-2026-002, with the reasoning in
|
||||
`history/2026-09-21_000846+0200-emission-cadence-promotion-gate.md`.
|
||||
|
||||
The gate as written — "two independent Emission Cadence source implementations"
|
||||
before draft promotion — made one sentence do two jobs: whether the contract is
|
||||
specified well enough to implement against, which this repository can answer,
|
||||
and whether it survives implementers who did not write it, which it cannot. The
|
||||
second blocked the first, so the standard sat at `draft`, a word that reads as
|
||||
"unfinished specification", when what was missing was adoption.
|
||||
|
||||
The gate is now two levels, written into the standard as section 10 rather than
|
||||
only into SCOPE.md. **Candidate** requires schema coverage of every form,
|
||||
one-command validation of an arbitrary source-owned declaration, a
|
||||
content-addressed bundle a source can pin to, separation of declaration from
|
||||
observation, and a documented external consumption path — all met and re-tested.
|
||||
**Stable** requires two source-owned declarations from independent owners
|
||||
pinned to a digest, an observer result from a third party, and a recorded
|
||||
incompatibility or recorded absence of one.
|
||||
|
||||
Emission Cadence moves to `candidate` at document version `0.2.0`. The wire
|
||||
contract is untouched at schema version `0.1`; a producer conformant yesterday
|
||||
is conformant today.
|
||||
|
||||
What was given up is stated in the decision record and worth repeating here:
|
||||
`candidate` now carries no interoperability evidence at all. The mitigation is
|
||||
that the standard says so in its own section 10, naming that no consumer has
|
||||
implemented the contract and that its worked example is not a source-owned
|
||||
declaration. The stable gate is stricter than the sentence it replaces, since
|
||||
it adds the observer result and the incompatibility record.
|
||||
|
||||
## Implementation notes
|
||||
|
||||
T01–T04 implemented in `contracts.py`, `maintenance.py`, `paths.py`, CLI,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue