session 2026-06-09: PENDING-34 + REVIEWED-36 (steward-placed) W5.2/G3 guard; ARC W3R-closed/compass-fix session memory + ledger + MEMORY index + skill-harvest

This commit is contained in:
David F Glidden
2026-06-09 13:19:24 +02:00
parent 9226efde31
commit 730deaf25d
6 changed files with 174 additions and 3 deletions
+13
View File
@@ -870,3 +870,16 @@ The Jurist's six-phase authorization map governs sequencing. Cross-cutting succe
**Awaiting:** Steward authorization + jurist review.
**Status (2026-06-07):** JURIST APPROVED the truth-up (a/c/d concur; on (b) the jurist offered a disposition: re-designate the exemplar to an *After the Reply* essay with live revisions; the `edition_label` orphan must not survive the pass unresolved). **STEWARD AUTHORIZED + ruled (b) same day:** exemplar → *The Ethics of the Reply* (jurist's disposition accepted); `edition_label` **dropped from the §6 example** (field stays available; the colophon's inert carrier recorded honestly). Executed ARC `392d8c8`: spec promoted **OPERATIVE (built scope: §§1–5, §7 items 1–5; deferred: §7 items 6–8, retractation UI, version-index page)**; §4 = shipped stamp shape (verified verbatim in compiled output); `sequence_position` aligned to `sequence_order`. Closes the corpus's one materially dishonest status line. Awaiting steward REVIEWED entry.
## PENDING-34 — W5.2 / G3: single-source class→glyph (the Compass sigils)
**Date:** 2026-06-09
**Tag:** [HARDENING]
**Summary:** Make the class→glyph binding structural (or build-validated) so the Reading Compass sigils cannot silently drift from the typology — ending the "correct by naming convention, not structure" fragility the audit named (G3), the Hakyll north-star's documented fix.
**Rationale:** Audit finding G3 (2026-06-07, content-typology §5 clause 2). The class→mark relationship lives in **three loci** that agree today *only by naming convention*: (1) `data/content-types.yml` `glyph:` — the canonical Unicode mark per class (essay → ●), generated from content-typology §2; (2) the slug-derived sigil-id in `compassRowsHtml` (`site.hs:133` — listing slug `essays` → `#sigil-essays`); (3) the hand-authored SVG `<symbol id="sigil-essays">` sprite in `templates/reading-compass-points.html` (the actual drawn form). The compass rows are already data-driven (Stage-F Phase-2 generator, from `data/listings.yml`), and a listing's class is already build-validated against the enumeration (§5 clause 3). What is **not** enforced: that each compass entry's sigil-id has a matching `<symbol>`, and that the drawn mark agrees with the class's canonical glyph. A renamed slug, a new type, or a re-drawn/mis-named symbol silently desyncs the rendered mark from the typology fact — no build error, wrong glyph ships. The SVG geometry is artwork and stays hand-authored (it cannot be generated from a Unicode codepoint); what is single-sourced is the *mapping* + a *loud build check* ("unknown = build error", the north-star's own phrasing).
**Options:**
1. **Build-validation guard (minimal, output byte-identical).** Add a build check (beside `loadListingDefs`): every compass sigil-id (listings + `compass_specials`) must resolve to a `<symbol id="sigil-…">` present in the sprite, and every class carrying a `glyph:` in content-types.yml must map to exactly one surfaced sigil/symbol (or be explicitly governed-but-unsurfaced) — error, loud, on any mismatch. Keeps the current generation; closes the drift class by structure. No rendered change.
2. **Derive sigil-id from class + the guard (fuller north-star form).** Replace the slug-coincidence with an explicit class→sigil mapping consulted by `compassRowsHtml` (so the binding is structural, not conventional), plus Option-1's check. Slightly more refactor; output identical only if derived ids equal today's slugs (they do, by the current convention).
3. Status quo — documented drift risk; rejected by the audit's promotion gate.
**Recommendation:** **Option 1.** It closes the exact failure class (silent glyph drift) with minimal change, byte-identical output, and is precisely the "unknown = build error" the Hakyll north-star and §5 clause 3 call for. Option 2's derive-from-class is the purer single-source but the slug↔class↔sigil naming is already 1:1; making it structural earns its place only if that convention later strains — a clean follow-on, not required now (proportionality). The SVG sprite stays hand-authored either way. Steward to rule between 1 and 2.
**Files affected:** `site.hs` (new build-validation in/near `loadListingDefs`; Option 2 also touches `compassRowsHtml`); `templates/reading-compass-points.html` (read for the symbol-id census; not edited); `data/content-types.yml` + `data/listings.yml` (read, not edited); content-typology §5 cross-reference (records the enforcement; ships with the Stage-G promotion per the spec's own sequencing). Verification: byte-identical compiled-output gate (Option 1) + a deliberate-mismatch test proving the check fires.w
**Awaiting:** Steward authorization (choose Option 1 or 2).