Record net-kingdom's Emission Cadence declaration and fix the stale digest (INFO-WP-0029)

net-kingdom published the first source-owned declaration (116643f). It passes
emission-review. Record it as feedback, and file its session-scoped-silence
incompatibility as demand/EmissionActivityScope.md. T02 is done, and T04 is in
progress until activity-core answers.

The adoption brief sent owners the 0.1.0 draft digest, because the candidate
promotion changed the standard's text after the digest was taken. The export
manifest also hard-coded status "draft". The manifest now derives status and
version from the standard, a test pins that, and the brief names the candidate
digest b08b4d95fc4b0bd3. The wire schema is unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 121421@bnt-lap001
Assistant-Session: 36f8657c-ebfa-4a2e-9ba0-bff06738f233
This commit is contained in:
tegwick 2026-09-22 16:14:10 +02:00
parent 146e461355
commit 038677ab53
7 changed files with 213 additions and 7 deletions

View file

@ -72,10 +72,17 @@ def export_emission_bundle(root: Path, destination: Path) -> dict:
"standards/emission-cadence/InfoTechCanonEmissionCadenceStandard.md",
"standards/emission-cadence/examples/qonto-assistant.yaml"]
files = {path: (root / path).read_bytes() for path in paths}
manifest = {"contract": "emission-cadence/0.1", "status": "draft",
# Status and version come from the standard itself, so a promotion cannot
# leave the manifest describing an earlier maturity.
standard = files[paths[1]].decode()
header = re.match(r"---\n(.*?)\n---", standard, re.S)
fields = dict(re.findall(r"^(status|version):\s*(\S+)", header.group(1) if header else "", re.M))
manifest = {"contract": "emission-cadence/0.1", "status": fields.get("status"),
"document_version": fields.get("version"),
"files": {name: hashlib.sha256(data).hexdigest() for name, data in files.items()},
"semantic_checks": ["unique source_id in sources"],
"adoption_evidence": "Two independent source-owned implementations required; example does not count."}
"adoption_evidence": ("Stable requires two source-owned declarations from independent owners "
"and one observer result from a third party; example does not count.")}
files["manifest.json"] = (json.dumps(manifest, sort_keys=True, indent=2) + "\n").encode()
output = io.BytesIO()
with tarfile.open(fileobj=output, mode="w", format=tarfile.USTAR_FORMAT) as archive: