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
12
SCOPE.md
12
SCOPE.md
|
|
@ -11,9 +11,9 @@ with executable proofs and mixed artifact maturity**.
|
|||
|
||||
The working-tree canon version is `0.7.0`; the Python package version is
|
||||
`0.1.0`. These are separate version surfaces. Many models remain `RC1-seed`;
|
||||
ITC-CAP is a frozen draft at `0.4.0`, and Emission Cadence is a draft document
|
||||
at `0.1.0` with wire schema version `0.1`. This is not yet a stable,
|
||||
ecosystem-wide conformance release.
|
||||
ITC-CAP is a frozen draft at `0.4.0`, and Emission Cadence is a candidate
|
||||
document at `0.2.0` with wire schema version `0.1` unchanged. This is not yet a
|
||||
stable, ecosystem-wide conformance release.
|
||||
|
||||
## Ownership and boundaries
|
||||
|
||||
|
|
@ -92,8 +92,10 @@ Current limitations include:
|
|||
- limited external mapping and independent consumer interoperability evidence;
|
||||
- interface templates and evaluation packs without a complete set of
|
||||
source-owned, version-pinned consumer declarations;
|
||||
- draft promotion and compatibility questions, including the requirement for
|
||||
two independent Emission Cadence source implementations;
|
||||
- no independent adoption evidence for Emission Cadence: the standard is at
|
||||
candidate, which asserts a specified and machine-checkable contract, and stable
|
||||
still requires two source-owned declarations from independent owners plus an
|
||||
observer result from a third party (INFO-DEC-2026-002);
|
||||
- upstream full-application packaging limitations and consumer-owned adoption evidence.
|
||||
|
||||
INFO-WP-0019 adds reusable arbitrary Emission Cadence declaration validation,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
# Emission Cadence promotion gate — restatement
|
||||
|
||||
Date: 2026-09-21 (Europe/Berlin)
|
||||
Decision: **INFO-DEC-2026-002 — split the gate; promote to candidate.**
|
||||
Origin: INFO-WP-0019-T06, waiting since 2026-09-05, rechecked 2026-09-09 and
|
||||
2026-09-20 with no change in the evidence. Operator chose restatement over
|
||||
soliciting declarations.
|
||||
|
||||
## The problem with the gate as written
|
||||
|
||||
SCOPE.md required "two independent Emission Cadence source implementations"
|
||||
before draft promotion. One sentence was doing two different jobs:
|
||||
|
||||
1. **Is the contract specified well enough to implement against?** A question
|
||||
about this repository's own work, answerable here.
|
||||
2. **Does the contract survive contact with implementers who did not write it?**
|
||||
A question about other people's systems, unanswerable here by construction.
|
||||
|
||||
Because both sat behind one gate, the second blocked the first. The standard
|
||||
stayed at `draft` — a word that reads as "unfinished specification" — when what
|
||||
was actually missing was adoption. A reader could not tell which.
|
||||
|
||||
The canon-side work has been complete since 2026-09-05 and was re-tested on
|
||||
2026-09-20: `emission-review` validates an arbitrary source-owned declaration
|
||||
against the named schema and reports `operational_truth_assessed: false`;
|
||||
`export-emission-contract` produces a content-addressed bundle at digest
|
||||
`972c0b6701d1693f` whose manifest states the adoption requirement in words; the
|
||||
consumption path is documented for a consumer outside this repository. Nothing
|
||||
in that set needs an external party.
|
||||
|
||||
## Decision
|
||||
|
||||
Split the gate into two levels, recorded in the standard itself as section 10
|
||||
rather than only in SCOPE.md, so a reader meets it where the contract is.
|
||||
|
||||
- **Candidate** — the contract is specified, machine-checkable, and stable
|
||||
enough to implement against. Met today. Asserts nothing about adoption.
|
||||
- **Stable** — the contract survives independent implementation: two
|
||||
source-owned declarations from owners independent of each other and of this
|
||||
repository, pinned to a contract digest, plus an observer result from a party
|
||||
other than the declaring source, and a recorded incompatibility or recorded
|
||||
absence of one.
|
||||
|
||||
Emission Cadence moves to `candidate` at document version `0.2.0`. The wire
|
||||
contract is unchanged at schema version `0.1`, and `0.x` still means
|
||||
incompatible change remains possible with migration guidance.
|
||||
|
||||
## What was given up
|
||||
|
||||
The original gate, honestly read, meant the standard could not be promoted at
|
||||
all until two external owners acted. Splitting it means this repository can now
|
||||
say the specification work is finished while adoption is not — but it also means
|
||||
**the word "candidate" no longer carries any interoperability evidence**. That
|
||||
is a real reduction in what a status word tells a reader, and it is mitigated
|
||||
only by the standard stating plainly, in section 10, that no consumer has
|
||||
implemented the contract and that its own worked example is not a source-owned
|
||||
declaration.
|
||||
|
||||
The stable gate is deliberately *stricter* than what it replaced: it adds the
|
||||
observer result and the recorded-incompatibility requirement, which the single
|
||||
sentence never asked for. Nothing was relaxed about interoperability; what
|
||||
changed is that the claim is now made at the level where it can be earned.
|
||||
|
||||
## Limits
|
||||
|
||||
Agent review, not human sign-off. Candidate status records no consumer adoption,
|
||||
no runtime claim, and no conformance statement by any party. The promotion
|
||||
changes no field, form or validation rule; a producer conformant yesterday is
|
||||
conformant today.
|
||||
|
|
@ -6,8 +6,8 @@ type: standard
|
|||
standard_family: InfoTechCanon
|
||||
repository_context: info-tech-canon
|
||||
recommended_path: standards/emission-cadence/InfoTechCanonEmissionCadenceStandard.md
|
||||
status: draft
|
||||
version: 0.1.0
|
||||
status: candidate
|
||||
version: 0.2.0
|
||||
schema_version: "0.1"
|
||||
canonical_owner: InfoTechCanonEmissionCadenceStandard
|
||||
namespace: itc-emission-cadence
|
||||
|
|
@ -30,15 +30,19 @@ provenance:
|
|||
source_file: infospace/assimilation/emission-cadence/source/EmissionCadenceDeclaration.md
|
||||
assimilation: assimilation/emission-cadence
|
||||
decision: GH-DEC-2026-004
|
||||
promotion:
|
||||
level: candidate
|
||||
decision: INFO-DEC-2026-002
|
||||
promoted_at: "2026-09-21"
|
||||
created_at: "2026-09-04"
|
||||
updated_at: "2026-09-04"
|
||||
updated_at: "2026-09-21"
|
||||
---
|
||||
|
||||
# InfoTechCanon Emission Cadence Standard
|
||||
|
||||
**Short Name:** `ITC-EMISSION-CADENCE`
|
||||
**Document Status:** Draft
|
||||
**Version:** 0.1.0
|
||||
**Document Status:** Candidate
|
||||
**Version:** 0.2.0
|
||||
**Schema Version:** `0.1`
|
||||
|
||||
## 1. Purpose
|
||||
|
|
@ -212,3 +216,37 @@ unsupported versions and forms, and keeps observation results separate from
|
|||
the source's declaration.
|
||||
|
||||
Profile conformance is additional and is assessed by the profile owner.
|
||||
|
||||
## 10. Promotion levels
|
||||
|
||||
Promotion is assessed at two levels, because one gate was doing two different
|
||||
jobs and neither could be claimed (INFO-DEC-2026-002).
|
||||
|
||||
**Candidate** asserts that the contract is specified, machine-checkable and
|
||||
stable enough to implement against. It requires, and this standard has:
|
||||
|
||||
- a schema that covers every declared form, with an arbitrary source-owned
|
||||
declaration validatable by one command against the named schema;
|
||||
- a content-addressed contract bundle a source owner can pin to;
|
||||
- validation that keeps a source's declaration separate from observation, and
|
||||
reports that operational truth is not assessed;
|
||||
- a documented consumption path for a consumer outside this repository.
|
||||
|
||||
Candidate asserts nothing about adoption. No consumer has implemented this
|
||||
contract, and this standard's own worked example is explicitly not a
|
||||
source-owned declaration.
|
||||
|
||||
**Stable** asserts that the contract survives contact with independent
|
||||
implementers. It requires, and this standard does **not** have:
|
||||
|
||||
- two source-owned declarations from owners independent of each other and of
|
||||
this repository, pinned to a contract digest;
|
||||
- at least one observer result produced by a party other than the declaring
|
||||
source, exercising the comparison references;
|
||||
- a recorded incompatibility or a recorded absence of one, from the attempt.
|
||||
|
||||
A `0.x` version number continues to mean that incompatible changes remain
|
||||
possible with migration guidance. Candidate status does not freeze the wire
|
||||
contract, which stays at schema version `0.1`; it records that the canon side
|
||||
of the work is finished and that what remains is adoption, which the canon
|
||||
cannot perform on its own behalf.
|
||||
|
|
|
|||
|
|
@ -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