🔧 Auto-commit from sysupdate on 2026-07-05 22:41

This commit is contained in:
David F Glidden
2026-07-05 22:41:29 +02:00
parent d707c5f670
commit 9ca673fe50
4 changed files with 65 additions and 2 deletions
+46 -1
View File
@@ -361,4 +361,49 @@ DONE + DEPLOYED (a9e5196).
**Date:** 2026-06-11
**Decision:** AUTHORIZED (inline, render-review-gated throughout)
**Notes:** Built the one spec'd-but-unbuilt apparatus (§VII.f, the post-Stage-G W1.2 session) + coupled W1.15. Zero-JS view-timeline reveal; progressive-enhancement fallback; per-type matrix binding. Steward render-rulings: body-column-axis alignment, soft fading rule, full-width dissolving ground anchored below the rule. W1.15 false-premise (frontispiece doesn't scroll) surfaced not papered — reframed scroll→presence-reveal. Grid-token move to _variables byte-identical. Specs reconciled.
**If AUTHORIZED:** Deploy running head + compass reveal together. Tag commit REVIEWED-43.
**If AUTHORIZED:** Deploy running head + compass reveal together. Tag commit REVIEWED-43.
## REVIEWED-44 — Machine-readable graduation spec + validator
**Date:** 2026-07-01 (authorized) · formal record 2026-07-05
**Decision:** AUTHORIZED
**Notes:** Steward-initiated and verbally authorized 2026-07-01 ("yes to pending/reviewed"), recorded here to close the paper loop. The Chamber Library graduation *conventions* are codified as machine-readable data (`chamber-library/_curation/graduation-spec.yaml`) consumed by every graduation, and enforced by a validator (`scripts/verify_graduation.py`) that gates each candidate — conventions checked at the moment of action, not narrated in prose that drifts or is bypassed. Operationalizes the chamber spec §§II–VI (which governs on conflict); scope-disciplined per PENDING-42 §VI. Proven in the live case that prompted it: three parallel agents given hand-written instructions diverged exactly along the runbook's gaps; the validator then caught every divergence across all three candidates (Jonas + two Mumford volumes), which were re-fixed against the spec and graduated clean (both gates PASS, verbatim intact, OCR corrections logged). The runbook now *points to* the spec (`policy.graduation_conventions`) rather than restating it — the seed of the generative-from-spec principle later ratified in REVIEWED-46 (gap 7).
**If AUTHORIZED:** Proceed — the spec was promoted drafts→governed and applied; it is now the enforced convention rail. Tag related commits REVIEWED-44.
## REVIEWED-45 — Family-D (stem-suffix) footnote handler in `clean_epub_residue.py`
**Date:** 2026-07-02 · formal record 2026-07-05
**Decision:** AUTHORIZED
**Notes:** A tool addition within the standing "build the tool the batch needs" discipline, recorded for the paper loop alongside REVIEWED-44. Extended the graduation rail's footnote converter with a 4th anchor family (stem-suffix: ref `[¹](#…_{stem})` ↔ def `[N.](#…_{stem}a)`, keyed by the globally-unique stem), unblocking recovery of per-chapter endnote apparatus in z-library/Kindle-derived EPUBs. First use recovered **294 endnotes** in Sennett's *The Craftsman* that the prior calibre conversion had silently unlinked. Load-bearing because `clean_pandoc_html_residue`'s `INTERNAL_LINK` unwrap silently *destroys* any footnote-link it doesn't recognize — an uncovered family = silent linkage loss (the exact defect being repaired). Verified: 294↔294 paired, 0 orphans, both gates PASS, prose verbatim-preserved; regression-tested Families B (Winnicott) + C (Virilio) and caught+fixed a real C regression (`r`-prefixed def targets read as phantom D-refs). Reviewed in `_curation/tool-evolution-log.md`.
**If AUTHORIZED:** Proceed — the extension stands. **Known follow-on:** Crawford's `filepos` positional family (ref/def don't share a stem — a different pairing model) remains an open tool-gap, documented in the tool docstring.
## REVIEWED-46 — Spec gaps 1–8 + the generative-from-spec principle + Chamber Library v2.0 ratification
**Date:** 2026-07-03 (rulings) · formal record 2026-07-05
**Decision:** AUTHORIZED — with the corrections and conditions ruled across the arc (this entry summarizes a multi-ruling doctrine phase; the sub-rulings are recorded in the PENDING-46 progression and `chamber-library/docs/spec-revision-RULING-2026-07-03.md`).
**Notes:**
- **Unifying insight (jurist condition):** gaps 2 (apparatus ref↔def), 3 (PROV "original" as resolvable reference), and item-8 (§III CTS-URN citation) reduce to ONE logical-passage addressing/pointer substrate — design it once, three consumers. Do-it-once made concrete.
- **Gap-6 promotion criterion RATIFIED** — three evidence tiers (converted / verified / fenced); tier-1 (verified-deterministic) requires source-identity (author+edition via item-8) then word-identical re-convert. V-SUSPECT and V-NONE kept as **distinct** ledger values (condition 6).
- **Gap-7 generative meta-principle RATIFIED `[ESCALATE]`** — no tool may encode a convention independently of the declared, machine-readable spec; a tool re-encoding a convention is drift. Reshapes how we build.
- **Amendment process RATIFIED** — RFC-style supersession + change-class (`FIX`→`PROPOSAL` when it changes what a gate accepts) + semver + PENDING/REVIEWED + no-new-organ. The amendment-authority question (who may amend the spec) co-ratified with gap 7.
- **§III citation posture RATIFIED** — cite the Loeb by its recovered canonical anchor (edition-as-identity); the "structured-but-unanchored → work-level" extension **voided as active doctrine, retained as a labeled dormant contingency** (a principle that now governs nothing shouldn't stand as active).
- **Three-questions ruling:** (A) strip Loeb print-run page markers via a per-genre recognized-locator registry; (B) tier-2 conversion verification = redundant independent human passes vs the scan image (numeric bar deferred to a calibration batch); (C) re-verify-pending is its own ledger status with `verified_under:<criterion-semver>`.
- **Outcome:** the spec was drafted spine-first, jurist editor-gated per section, superseded v1.0 via the RFC pattern, and **ratified + shipped as v2.0.0 (OPERATIVE 2026-07-03).**
**If AUTHORIZED:** Doctrine phase complete; v2.0 OPERATIVE. The corpus stress-test (REVIEWED-47) is the first exercise of the ratified doctrine. Open, non-blocking: the per-genre locator table (living data, reviewed during Loeb extraction) and the tier-2 numeric bar (calibration).
## REVIEWED-47 — Corpus stress-test + source-match remediation + the exclusion path
**Date:** 2026-07-04 (stress-test + remediation rulings) → 2026-07-05 (exclusion path) · formal record 2026-07-05
**Decision:** AUTHORIZED — across the arc, with the conditions ruled (a multi-ruling remediation; sub-rulings recorded in the PENDING-47 progression + `chamber-library/docs/` relay briefs).
**Notes:**
- **Pre-registration gated** (thresholds locked before any test data). Jurist gate-with-method-change: Q1 grade Seam-1 on two axes (structural-blindness → PROPOSAL, independent of rate); Q2 grade on the **one-sided 90% Clopper-Pearson upper bound** (a point estimate at n=40 can't tell 1% from 5%); Q3 added Seam-1-bis (V-DSL work-mis-attribution); Q4.
- **Seam-1 run → `[ESCALATE]`:** the cited ~1% source-match false-positive rate is **refuted** (p̂=5.0%, U₉₀=12.8%; robust to drop-one). The "~1%" was an eyeball over the matcher's own `author_disagrees` warning — structurally blind to same-author-wrong-work and whole-for-part.
- **Differentiated remediation ruled (not a-or-b):** (1) detection-blindness (Axis-A fingerprint gate) = PROPOSAL; (2) **process-integrity elevated to "the most important thing"** → the persistence investigation ran FIRST and found there was **no persistence mechanism at all** (any hand-fix was regenerated away); (3) **scope doctrine ruled asymmetric** (whole←part = §IV under-coverage; work←collection = extraction-precision) and unified with Seam-1-bis as **one scope-identity principle**; (4) remediation ordered.
- **RATIFIED:** the persistence layer (`source:` pin, Option A + a non-optional **attestation** — a bare/pipeline-authored value is not a pin) and the **hash-locality principle** (`source_file_sha256` distinct from the reading-index's `source_sha256`). Work-identity & scope study delivered and **routed as its own [PROPOSAL]** (item-4; own timeline). FIX-list applied (5 verified false-positives re-pinned to the permanent Chamber Sources home) and an archive-contamination class found + corrected.
- **2026-07-05 — the exclusion path (Region 1.1) RATIFIED-with-2-corrections:** (§1a) attested absence lives in its own honest top-level key `source_excluded:` (not a verdict inside `source_verified:`); (§1b) `result: verified` explicit + required on pins (the 5 existing pins migrated). Vocabulary `confirmed-wrong`/`none-on-disk` ratified (closed-but-extensible); the auditable `excluded` record ratified. **Region 1.2 applied:** the 4 no-source false positives (reverie/meditations/écrits/nietzsche) attested `confirmed-wrong` with Instrument-B 0/5 evidence; the `source-matches.json` change bounded to exactly the 4.
- **Standing standard set:** CI-upper-bound grading + drop-one robustness for every ESCALATE.
**If AUTHORIZED:** Region 1 closed for the known cases (5 pinned, 4 excluded). **Open under this entry, re-entering as their own work:** item-4 (work_id/scope pipeline, its own PROPOSAL); the frontmatter sweep (`[needs-authorization]`; unblocks the 2 stuck FPs orthotypo-vol-2 + semaison); Region 2 source hunts + the `ulysses` verify; Region 3 (2 no-frontmatter, 4 stubs, works-eliot, 2 scope calls); full archive reconciliation.
## REVIEWED-48 — Studium Engine V0 (verifier contract) — jurist method-gate
**Date:** 2026-07-05
**Decision:** AUTHORIZED — gate cleared, with two required §2 corrections and the §5 conditions (recorded in `studium-engine/docs/spec/v0-verifier-contract.md` and PENDING-48).
**Notes:** V0 is the **one named exception** to the engine's steward-direct D-1 governance — it defines what the engine may assert as verified and when it must abstain, so its method routed through the jurist.
- **§2 — the "unaltered" relation:** (B) `normalizer@1`-class equivalence ratified (typographic-convention folded, orthography untouched). Ruled **DOCTRINE, not D-1**, with a code-level consequence: **fork it to `fidelity_equivalence@1`** — a frozen constant distinct from the retrieval-side `normalizer@N`, so a D-1 search-tuning change can never silently drag the trust floor; every future `fidelity_equivalence@N` requires jurist ratification. Diacritics stay out; hard-hyphen-linebreak is a cleaning-gate concern, not the checker's. Cross-cutting flag resolved by the executor: the current gold is *modernized*, so the fork's glyph-folding is moot on it (caveat recorded if future gold is diplomatic).
- **§5 — the pre-registered V2 thresholds:** ratified as stated (trust `U≤5%` & recall `≥0.75`; revise `5–15%`; gate-to-abstain `>15%` or absent gold), graded on the CP upper bound. Gate-to-abstain ruled **doctrine-consistent** (refusing false coverage in advance), not merely tolerated. **Added condition:** negatives-expansion must preserve the original proportional distribution across the five adversarial classes (or pre-register a new one). **Coupling recorded:** the threshold values are calibrated *with* the §1 evidence-first display rule — weakening that display requires re-gating. Doctrine = the values + the relation; D-1 = the CP calc, perturbation code, gold-pair selection.
**If AUTHORIZED:** Proceed — V1 (`verify-quote`, against `fidelity_equivalence@1` + the §3 deliberate-mismatch suite) and N1 (the navigation-tree builder) are unblocked. The §5 display-coupling, the proportional-expansion rule, and the diplomatic-gold caveat travel as standing conditions into the build.
@@ -16,6 +16,8 @@ metadata:
## Open horizons
- 2026-07-05 — **Repo CLAUDE.md files + frontmatter census + freshness mechanism.** Drafted `chamber-library/CLAUDE.md` + `studium-engine/CLAUDE.md` (pointer-style; chamber=governed, engine=D-1; uncommitted, for steward review). Ran the read-only frontmatter census → `chamber-library/_curation/frontmatter-census-2026-07-05.md`: **332 non-Loeb, only 11 (3%) conformant**; 204 missing ≥1 un-fabricatable provenance field; 109 no-frontmatter. **Loeb (952) OUT of the sweep** — their v2 frontmatter comes at Region 4 reconversion (steward-confirmed; matches the map). Migration plan drafted (generative-from-spec; phased M/P/C; honest-unknown marker needs ratification) — sweep is `[needs-authorization]`. **Freshness → skill-harvest register:** event-based `/wrap-up` check (challenged the steward's count-threshold: pointer docs → count fires on noise; event = tool/discipline/governance/term change) + optional git staleness canary (prompts, never auto-writes). All uncommitted (chamber can't push — skemantix down).
- **Engine (build day, Opus):** V0 + N0 — the two contracts, together (plan §7). V0 = verifier contract + pre-registered thresholds → routes to the jurist (the one named D-1 exception). N0 tree contract must exist before any hand touches the Loeb extractor rebuild (reciprocal obligation, §3.4). N1 can proceed while V0 sits with the jurist.
- **Corpus:** Region 1.1 — the exclusion path, test-first, surfaced for jurist ratification (chamber corpus-work-map-2026-07-05).
- **Held literal question:** normalizer@N "unaltered" — engineering (D-1) or doctrine ("the bound must name the edition")? Will the jurist gate V0 clean, or does "what counts as the same words" surface an unanticipated ruling?
+14
View File
@@ -325,3 +325,17 @@ The single place proposed skills live so they don't evaporate between sessions.
| **MEMORY.md deeper-reduction** (proposed 2026-06-08, condition-gated) | **CONDITION NOW MET — authorize the focused pass** | The 06-08 proposal deferred the risky deeper reduction "only if 157KB still trips 'only part loaded'." Tonight the index is **204.5KB vs a 24.4KB load limit** and a PostToolUse hook actively demanded compaction to ~17KB mid-wrap. NOT executed (the proposal explicitly names it "its own focused pass, not a tail-of-session move" — steward-unauthorized). Evidence is now decisive: ~88% of the index doesn't load at wake. Recommend authorizing the focused pass (compress archived one-liners further + move stable reference sections to a consult-on-demand `MEMORY-reference.md`; backup first, as 06-08). | PROPOSED (trigger met; awaiting steward authorization for a dedicated pass) |
*(Two, neither manufactured: the first is the strongest evidence yet for an already-standing proposal plus one earned authoring rule; the second converts tonight's hook pressure into the governed channel rather than a tail-of-session mutation of real memory.)*
### Harvest 2026-07-05 (V0 ratified + exclusion path + repo CLAUDE.md files)
**BUILT + AUTHORIZED + COMMITTED this session:**
- **`chamber-library/CLAUDE.md`** (`2238b65`, local — skemantix push pending) + **`studium-engine/CLAUDE.md`** (`4ad82d6`, pushed) — steward-authorized 2026-07-05. The two missing project-local orientation docs (ARC already had one; steward-flagged the gap). Pointer-style by design: they carry the *stable* layer (disciplines, governance posture, terminology, tool-fleet groups, layout) and delegate current-state to the trackers they name (corpus-work-map / PENDING / graduation-spec.yaml for chamber; rebuild-plan / charter for the engine). Chamber = governed (NOT D-1); engine = D-1 with the one V0 jurist exception.
**PROPOSED (awaiting steward) — how to keep the CLAUDE.md files fresh:**
| Element | Kind | One-line | Where it lands | Status |
|---|---|---|---|---|
| **`/wrap-up` — CLAUDE.md freshness check** | `/wrap-up` patch | At session close, ask: did this session change a **tool** (fleet add/remove), a **discipline** (a tool-evolution-log entry that generalizes), a **governance rule** (a PENDING/REVIEWED shifting posture), or a **term/mechanism** (like the exclusion path today)? → update the relevant repo `CLAUDE.md` line. **Event-based, NOT count-based** (the steward proposed a change-count threshold; challenged: these are POINTER docs, so most repo churn — files graduated, sources pinned, reports regenerated — doesn't touch them; a count fires on noise and misses the real triggers). Rides the §1.6 harvest slot, which already asks "did we change something that should be recorded?". | `~/.claude/skills/wrap-up/SKILL.md` | **BUILT 2026-07-05 (steward-authorized)** — §1.6 4th bullet + provenance note; mechanical-updates-apply / discipline-changes-surface split |
| **CLAUDE.md staleness canary (git tripwire)** | create (small) OR git hook | If the `scripts/` set or `graduation-spec.yaml` changed but `CLAUDE.md` didn't since, flag "may be stale." Bounded, low-false-positive — the two most CLAUDE.md-relevant change classes. **Prompts; never auto-writes** (a bot rewriting the disciplines is the automation-of-recognition risk — the loop stays load-bearing). Sibling of the proposed **wake-canary** (MEMORY.md pointer-resolution). | git pre-commit / a `/repo-doc-canary` | **PROPOSED (optional; pairs with the wake-canary)** |
*(Two proposals + two docs built. The freshness mechanism is the load-bearing one — it answers the steward's live question and applies this whole session's thesis [storage isn't memory; a protocol that exercises it is] to our own orientation docs. Not manufactured: the docs were just built, so the "how do they stay true" question is real and now. The count-vs-event correction is the substantive contribution — a raw threshold would institutionalize decorative maintenance.)*
+3 -1
View File
@@ -3,7 +3,7 @@ name: wrap-up
description: Capture session state for future restoration. The quality of the next wake-up depends entirely on the quality of this wrap-up. Captures not just what we did but what is still pulling, what is the live concern, and what question we want to find still open when we return.
---
<!-- Provenance: 2026-05-18 S-cluster §8 fields (REVIEWED-24); 2026-05-26 chaîne-d'union clasp + actionable-resumption-point; 2026-05-27 §1.6 skill-harvest step (PENDING-23); 2026-06-02 §4.0 MemPalace liveness-check before write (steward-authorized; #1495 cold-start drop resilience); 2026-06-05 §6.5 dotfiles session-state commit+push (steward-authorized; paired with wake-up §2.c check). Improvements to this skill are themselves harvested per §1.6 — propose, authorize, record here. -->
<!-- Provenance: 2026-05-18 S-cluster §8 fields (REVIEWED-24); 2026-05-26 chaîne-d'union clasp + actionable-resumption-point; 2026-05-27 §1.6 skill-harvest step (PENDING-23); 2026-06-02 §4.0 MemPalace liveness-check before write (steward-authorized; #1495 cold-start drop resilience); 2026-06-05 §6.5 dotfiles session-state commit+push (steward-authorized; paired with wake-up §2.c check); 2026-07-05 §1.6 CLAUDE.md-freshness check (steward-authorized). Improvements to this skill are themselves harvested per §1.6 — propose, authorize, record here. -->
# Session Wrap-Up
@@ -72,6 +72,8 @@ Drawing on the session and the merged ledger (1.5), ask:
- **Create?** Did a recurring or hard-won procedure emerge that a *new* skill should carry — something we'd otherwise re-derive next time (a diagnostic method, a build sequence, a review pass)?
- **Patch?** Did an existing skill prove wrong, incomplete, or stale *in use* this session — a missing step, an instruction that misfired, a reference that drifted?
- **Retire?** Did a skill, or part of one, prove decorative — named but not load-bearing?
- **Repo CLAUDE.md fresh?** Did this session change something a project-local `CLAUDE.md` carries — a **tool** added/removed from a repo's fleet, a **discipline** that generalized, a **governance ruling** that shifts the repo's posture, or a **term/mechanism** entering its vocabulary? This is **event-based, not change-count**: a pointer-style CLAUDE.md is untouched by ordinary corpus/state churn (files graduated, sources pinned, reports regenerated), so update it only when the *class of thing it carries* changes. **Mechanical updates** (a fleet line, a term, a pointer) apply at wrap like a tracker; a change to a **discipline or governance posture** is surfaced for steward review, not auto-applied (the same FIX-vs-PROPOSAL split, one level up). <!-- 2026-07-05: CLAUDE.md-freshness check, steward-authorized; keeps repo orientation docs from drifting into the false-confidence they warn against -->
The yardstick is the steward's own: *did the steward have to re-explain something a skill could have carried next time?* If yes, that is a harvest candidate.