governance: PENDING-44 — machine-readable graduation spec + validator (chamber)

Records the [HARDENING] establishing the enforced graduation rail for the Chamber
Library (graduation-spec.yaml + verify_graduation.py + graduate-tool gate).
Steward-authorized verbally 2026-07-01; REVIEWED-46 owed on paper.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019pnD8uNFC9Q2dbLQa3MBDc
This commit is contained in:
David F Glidden
2026-07-01 23:56:40 +02:00
co-authored by Claude Opus 4.8
parent f53d2fc341
commit fc7ba776be
+9
View File
@@ -1004,3 +1004,12 @@ The Jurist's six-phase authorization map governs sequencing. Cross-cutting succe
**Adjacent (lighter, [PROPOSAL]-class):** a shared vocabulary map between the two pods (their genome/ratchet/compass/diseases/palette ↔ our taxonomy/ladder/Symmetria-flags/register) — cheap, high-value, recommended early; co-author from the governance field guide. **Adjacent (lighter, [PROPOSAL]-class):** a shared vocabulary map between the two pods (their genome/ratchet/compass/diseases/palette ↔ our taxonomy/ladder/Symmetria-flags/register) — cheap, high-value, recommended early; co-author from the governance field guide.
**Files affected:** none yet (mapped, not acted on). On authorization, would touch the governance surfaces above. **Files affected:** none yet (mapped, not acted on). On authorization, would touch the governance surfaces above.
**Awaiting:** Steward + jurist + Seb. Do not proceed. **Awaiting:** Steward + jurist + Seb. Do not proceed.
## PENDING-44 — Machine-readable graduation spec + validator (the enforced convention rail for the Chamber Library)
**Date:** 2026-07-01
**Tag:** [HARDENING]
**Summary:** Codify the Chamber Library graduation CONVENTIONS as machine-readable data (`chamber-library/_curation/graduation-spec.yaml`) consumed by every graduation, and enforce them with a validator (`scripts/verify_graduation.py`) that gates each candidate — conventions checked at the moment of action, not narrated in prose that drifts or gets bypassed.
**Rationale:** Steward-initiated, with a live case study. Graduating Jonas + the two Mumford volumes, three parallel agents were given hand-written instructions (my error — I re-derived instead of citing `conversion-runbook.yaml`, and invented frontmatter fields `tradition_path`/`source_sha256` that are not the convention; `source_sha256` in fact belongs to the reading-index SIDECAR, spec §VI, not text frontmatter). The agents diverged (ALL-CAPS vs title-case headings, `--no-heading-recovery` yes/no, blank-comment handling) — and the divergences mapped exactly onto the runbook's GAPS. The steward's insight: "shouldn't there be a machine-readable version referred to whenever we do this work?" The spec+validator is that rail: conventions as data + an enforced gate. Proven — the validator caught every divergence on all three candidates automatically; they were then re-fixed against the spec and graduated clean (both gates PASS, verbatim intact, OCR corrections logged).
**Design commitments:** operationalizes the chamber spec §§II–VI (which governs on conflict); scope-disciplined per PENDING-42 §VI (encode what we know; grow as protocols declare themselves); the runbook now POINTS to the spec (`policy.graduation_conventions`) rather than restating it.
**Files affected:** `chamber-library/_curation/graduation-spec.yaml` (new, governed), `scripts/verify_graduation.py` (new), `_curation/conversion-runbook.yaml` (pointer added), and the 3 graduated texts + their `_curation/conversions/*.conversion.yaml` provenance records.
**Awaiting:** REVIEWED-46 placement by the steward. **Steward authorized verbally 2026-07-01** ("yes to pending/reviewed"); spec promoted drafts→governed and applied. REVIEWED text owed to close the loop on paper (as with REVIEWED-44/45).