session 2026-07-09: Handke de-gold graduation + archive_sources --add mode + PENDING-52; V2-review session memory + drift-patterns + skill-harvest

This commit is contained in:
David F Glidden
2026-07-09 15:42:59 +02:00
parent 3c0a73b572
commit 4089bc3a7f
8 changed files with 138 additions and 1 deletions
+16
View File
@@ -1359,3 +1359,19 @@ Disposition (verbatim capture + executor action-list: `chamber-library/docs/libr
**STATUS: gate fully passed; draft final (no edit). Ratification pending — steward places REVIEWED-51, NOT pending revision.** On ratification the executor lands: freeze `chamber-library-specification-v2.0.1.md` (byte-identical immutable) → bump canonical v2.0.1→v2.0.2 (subsection after the A2 preamble + header supersession note) → chamber `CLAUDE.md` pointer → commit tagged REVIEWED-51 (Gitea; steward's commit call).
**RATIFIED + LANDED 2026-07-07 (steward ratified; REVIEWED-51).** Committed `7d1d8d3` (local; not pushed — steward's Gitea call). v2.0.1 frozen byte-identical (`cmp`-verified, 763 lines) → `chamber-library-specification-v2.0.1.md` immutable; canonical bumped v2.0.1→v2.0.2 (subsection *'The corpus as data — and the warrant it does not carry'* after the A2 preamble + v2.0.2 header supersession note); chamber `CLAUDE.md` pointer updated. **Bounded-diff verified** — canonical change = exactly the title tag + header note + the new subsection; CLAUDE.md = only the pointer line. Audit trail committed: `library-science-A4-Biii-{FOR-JURIST,RULING}-2026-07-07.md`. REVIEWED-51 draft left on steward's Desktop for placement in `~/REVIEWED.md`. **Closes A4 + B(iii).** REVIEWED-49 tail: A1 registry (retrieve.py hot-path read first), A3 PROPOSAL, B(i)/(ii), C reconciliation-target.
---
## PENDING-52 — Wire source-archiving into graduate_to_canonical (enforced graduation step)
**Date:** 2026-07-09
**Tag:** [PROPOSAL]
**Summary:** Make source-archiving an *enforced* part of graduation — `graduate_to_canonical.py` files the source via `archive_sources.py --add`, and the graduation gate refuses a candidate whose source is not in Chamber Sources — closing the `conversion-runbook.yaml` `source_provenance.going_forward` TODO (steward directive 2026-07-02).
**Rationale:** The 2026-07-02 directive made source-archiving "a step of graduation, not a separate pass," but the *enforcement* was never built — so it depends on the executor remembering to archive. The 2026-07-09 Handke graduation proved the failure mode exactly: without enforcement, archiving got framed as a "loose end" and nearly deferred, and the source sat in the wrong place (`converted_texts/`, the .md inbox). An enforced gate makes "every new canonical work arrives WITH its source filed" a structural guarantee, not a discipline — the honest-degradation principle applied to the graduation rail: refuse to call a work graduated until its provenance is filed.
**Change-class:** PROPOSAL — it adds a precondition to *what graduation accepts* (FIX→PROPOSAL per the amendment process when gate acceptance changes). The building block (`archive_sources.py --add`, manual-archive shape) is already built (FIX, landed 2026-07-09; test_tools 68/68).
**Options:**
1. **Gate-enforced (recommended):** `graduate_to_canonical.py` archives the source via `--add` (source path resolved explicitly or from a `pending-graduation/` staging area), and the graduation gate asserts a Chamber Sources manifest entry exists for the slug — refuses otherwise.
2. **Tool-coupled, not gate-enforced:** graduate_to_canonical archives but the gate does not check — cheaper, re-opens the "remembered, not enforced" gap.
3. **Manual + checklist (status quo):** leave `--add` a manual runbook step. Honest, but relies on discipline (the very gap that bit today).
**Recommendation:** Option 1 — the only one that makes the directive structural. The one real design question: *how graduation learns the source's location.* The `source:` frontmatter names the original filename but not its path; a small convention is needed — likely a `pending-graduation/` staging area (mirroring the existing `Chamber Sources/pending-graduation/`) the gate resolves from.
**Files affected:** `scripts/graduate_to_canonical.py`, the graduation gate (`scripts/verify_graduation.py` or the `graduation-spec.yaml` gate list), `_curation/graduation-spec.yaml` (the new precondition), `_curation/conversion-runbook.yaml` (currency). No change to the verbatim guarantee or the fidelity relation.
**Awaiting:** Steward authorization + jurist review (it touches the graduation gate — the chamber's governed boundary).