From 5c4055a0712c444e4b217e8a9327855c3c4b4fae Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Fri, 7 Aug 2026 17:22:29 +0200 Subject: [PATCH] memory: MEMORY.md trim, the engine tracker, and one superseded claim MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MEMORY.md 20,413 -> 16,887 B (19.9 -> 16.5 KB), steward-directed at the 2026-08-06 evening wrap after three deferrals. Relocation, not deletion, and verified as such: 0 dead pointers, 0 orphaned clauses, every dropped backticked span traced to a home elsewhere in the corpus. Method, derived rather than felt: an entry keeps its rule inline when it fires at a moment I would not recognise as needing a lookup (spelling, quotation, "am I deferring?"); it shrinks to a pointer when the trigger is loud enough that the file gets opened anyway (chamber work, L1 work, a jurist package); and a ⚠ constraint always travels with the workaround it limits, never relocated away from it. The mechanical diff of dropped spans caught two losses that re-reading did not: `feedback-constitution-as-block-then-pull-based-corpus` dropped by inattention (a fires-silently rule — restored), and the facet-formalism pointer for the V1-purpose decision, which existed ONLY on the index line being compressed. That second one is `removing-a-claim-is-not-removing-the-reliance` exactly: the open decision would have stayed live with its formalism unfindable. Relocated into project-chamber-versioned-releases.md, its canonical surface, rather than back into the index. project-studium-engine.md — NEW, and the gap MEMORY.md itself had flagged as "no tracker file yet". The engine's state had been living inline in the index (one 950-character line pointing at the charter, a constitutional document that holds no build state) plus per-session memories: two update surfaces and no canonical one. Now holds current state, a chronological log, and the open-thread stack captured mid-session so the day's accumulation cannot be lost. MemPalace wind-down relocated to MEMORY-reference.md — a workstream closed 2026-07-07 whose one live clause (the typography-palace exception) is carried by a standing preference that stays wake-loaded. session-2026-08-06-evening: the claim that Alexander's rating classes "compare as identical" under @3 is marked SUPERSEDED and false. Measured while landing the fix: old @3 gave COMPOST\ , COMPOST\\ , COMPOST — three distinct strings. The ratings never collided; the real defect ran the opposite way, corrupting the rating into a backslash residue and causing false REFUSALS. I carried that generalisation into the record from the package's Part III(a) without checking it against the package's own Part I table, which printed the refutation. session-ledger-2026-08-07: the day's returns, including that every defect found today was found by a COUNT rather than a read — the dropped-span diff, the span-count-versus-store (769 unreachable drawers), the adapter comparison (3 of 253) — and that twice the instrument itself was at fault in the more dangerous direction, failing healthy data in a way that invites editing the data to satisfy the checker. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NEWjLBP4quXbDPDL2byEzZ --- claude/memory/MEMORY-reference.md | 6 + claude/memory/MEMORY.md | 107 +++++----- .../project-chamber-versioned-releases.md | 4 +- claude/memory/project-studium-engine.md | 201 ++++++++++++++++++ ...ening-the-asterisk-that-carried-meaning.md | 4 +- claude/memory/session-ledger-2026-08-07.md | 91 ++++++++ 6 files changed, 356 insertions(+), 57 deletions(-) create mode 100644 claude/memory/project-studium-engine.md create mode 100644 claude/memory/session-ledger-2026-08-07.md diff --git a/claude/memory/MEMORY-reference.md b/claude/memory/MEMORY-reference.md index 15b36a6..c56bc9c 100644 --- a/claude/memory/MEMORY-reference.md +++ b/claude/memory/MEMORY-reference.md @@ -27,6 +27,12 @@ metadata: Split out of [MEMORY.md](MEMORY.md) on 2026-07-06 to keep the wake-loaded index under the harness load ceiling. **Lossless** — every line was relocated verbatim, nothing pruned. A separate future pass may prune genuinely-dead content here (much of the 2026-04/05 pending-work is long done); until then this is the complete historical record. +## Relocated from MEMORY.md at the 2026-08-07 trim (steward-directed; verbatim) + +*One tracker entry relocated: a workstream the steward closed, whose only live clause is carried elsewhere in the wake-loaded index. Everything else in the 2026-08-07 trim was compressed in place toward its own linked file, not moved here.* + +- [MemPalace wind-down](project-mempalace-winddown.md) — DONE (steward 2026-07-07): `palace-memory` wound down, wake/wrap rewired to the files layer; KG exported (`knowledge-graph.jsonl`). Typography palace KEPT (separate instance). *(Relocation note, 2026-08-07: a completed workstream. Its one live clause — the typography-palace exception — is carried by the `reference-typography-palace-cli.md` standing preference, which stays wake-loaded; and `/wake-up`'s own constraints already forbid calling `mempalace_*` for palace-memory. Nothing depends on this line at wake.)* + ## Canonical tracker — full relocated detail ### ARC — full chronological inline log (relocated verbatim from MEMORY.md line 40, 2026-07-06) diff --git a/claude/memory/MEMORY.md b/claude/memory/MEMORY.md index d795e70..6b5e6b0 100644 --- a/claude/memory/MEMORY.md +++ b/claude/memory/MEMORY.md @@ -6,69 +6,67 @@ metadata: type: note permalink: claude-memory/memory originSessionId: 22915403-bc5d-4796-9c7d-196b7c30d2f9 - modified: 2026-08-06T14:55:31.323Z + modified: 2026-08-07T09:58:34.188Z permalink: claude-memory/memory --- # Claude Code Memory ## Standing preferences -- [Chamber work: ground in constitution + charter + runbook FIRST](feedback-chamber-work-ground-in-constitution-charter-runbook.md) — **any chamber work *or talk about it*** begins by reading the **library constitution · engine charter · conversion runbook** (incl. `reanchor:`). Repo CLAUDE.mds are pointers, not state. Corpus claims come from a self-tested tool, never a hand grep. **Enforcement mechanism owed.** -- [CapableHands standing authorization](reference-capablehands-standing-authorization.md) — M4 mini david@10.0.1.136 durably authorized for remote OCR/inference; don't re-ask permission to use it (steward 2026-07-01). -- [Every canon doc's source lives in Chamber Sources](feedback-resolve-source-through-chamber-sources.md) — a canonical's source = whatever `resolve_archived_source` returns (**never** the master library or a path in a doc/frontmatter); read the banked source record before calling a mismatch a defect. -- [Steward maps live in ~/dotfiles/maps](reference-steward-maps-home.md) — a **map** = an artifact David reads *directly* to orient. Write it into `~/dotfiles/maps/` and symlink to the Desktop, **never** straight onto the Desktop; `wake-digest.py` reports strays. -- [Governance files are dotfiles symlinks](reference-governance-files-are-dotfiles-symlinks.md) — `~/PENDING.md`/`~/REVIEWED.md`/`~/CLAUDE.md` → `~/dotfiles/…`; Edit/Write refuse to write through a symlink, so **edit the real dotfiles path** when appending PENDING/REVIEWED — **`PENDING`/`REVIEWED` only.** ⚠ That refusal is a tool artifact, **not** a permission check, and this note is the documented route past the only friction guarding the constitution (PENDING-107: no `permissions` key; the one hook fires on `~/CLAUDE.md` and exits 0 by design; `Bash` isn't gated at all). **`~/CLAUDE.md`/`~/REVIEWED.md`/L2 = `[ESCALATE]`, steward's hand — a jurist sign-off does not authorize one.** -- [Typography palace — query via CLI](reference-typography-palace-cli.md) — type masters (~20-21 sources) in a dedicated MemPalace at `~/.mempalace/palace-chamber-typography`; query `mempalace --palace search "…"` (CLI). For ARC typography — don't re-ask where it lives. -- [The central path — answerability, not purity](feedback-central-path-answerability-not-purity.md) — the contamination recursion is **probably irresolvable**, so **stop certifying the parties, bind the claims.** Route by claim-type: *checkable* → produce the check + a falsifier; *judgment* → disclose standpoint in one line, decide, record; *undecidable* → name it open. **One layer of disclosure, then act — never audit the audit.** -- [Fowler's rules for quotation](feedback_fowlers_rules_quotation.md) — single quotes primary, double for nested, logical British punctuation order. Apply across all writing. -- [Canadian spelling in ARC prose](feedback-canadian-spelling-arc-prose.md) — centre/colour ("almost EU"); corpus "center" = autocorrect drift (10 files, cleanup open). Draft all steward-voiced prose in Canadian spelling. -- [Rank on fields you actually write](feedback-rank-on-fields-you-actually-write.md) — a consumer that ranks by an evaluative field (importance/weight) nothing populates silently degrades to trivial order while claiming to rank; verify scoring fields end-to-end, prefer signals already captured (recency). For BMF/CapableMind/studium-engine tool-building. -- [Shorter, concentrated sessions](feedback-shorter-concentrated-sessions.md) — steward preference (2026-07-13): shorter but very concentrated — ONE tightly-scoped high-leverage bite taken all the way, then wrap; hold the rest as ranked horizons. +*Entries keep their rule inline when they fire at a moment I would not recognize as needing a lookup; they shrink to a pointer when the trigger is loud enough that I'd open the file anyway. A ⚠ constraint always travels with the workaround it limits.* + +**Rules that fire silently — keep these in front of me** +- [Fowler's rules for quotation](feedback_fowlers_rules_quotation.md) — single quotes primary, double for nested, logical British punctuation order. All writing. +- [Canadian spelling in ARC prose](feedback-canadian-spelling-arc-prose.md) — centre/colour ("almost EU"). Draft all steward-voiced prose this way; corpus "center" = autocorrect drift (cleanup open). +- [Close thoroughly — no frequent deferrals](feedback-close-thoroughly-no-frequent-deferrals.md) — **frequent deferrals ARE how the cloud accumulated.** Close ALL of a block that's closable-now; for the rest, **name the specific dependency**. +- [Shorter, concentrated sessions](feedback-shorter-concentrated-sessions.md) — ONE tightly-scoped high-leverage bite taken all the way, then wrap; hold the rest as ranked horizons. - [Constitution-as-block, then pull-based corpus](feedback-constitution-as-block-then-pull-based-corpus.md) — finish the **constitution as one block FIRST**, then corpus-into-spec **pulled by what each engine phase needs**. **Bounded question → bounded answer**; keep open-thread count LOW. -- [Close thoroughly — no frequent deferrals](feedback-close-thoroughly-no-frequent-deferrals.md) — **frequent deferrals ARE how the cloud accumulated**; close ALL of a block that's closable-now; distinguish closable-now from genuinely-blocked (**name the specific dependency**). -- [Removing a claim ≠ removing the reliance](feedback-removing-a-claim-is-not-removing-the-reliance.md) — cutting an unsupported sentence can **hide** the gap rather than close it; the dependency survives, now invisible to every check. Test isn't 'is the bad sentence gone' but '**does the conclusion still need it**'. -- [Checkable claim surfaces bugs](feedback-checkable-claim-surfaces-bugs.md) — insisting on a checkable claim (number, substrate-fact, discriminating test) over a soft classification repeatedly EXPOSES a real bug; the demand for verifiability is itself a defect-detector. Steward-named 2026-07-13. (Caught F-5 + the "finally" overclaim, 2026-07-17.) -- [Derive the rule from the consumer, not the survivor](feedback-derive-the-rule-from-the-consumer-not-from-the-survivor.md) — picking between two disagreeing implementations is **selection, not derivation**; derive from what a CONSUMER must do. Complementary-correctness defeats sampling. -- [Census by mechanism, not proxy](feedback-census-by-mechanism-not-proxy.md) — census by RUNNING the real pipeline, not a proxy; distrust the finite-feeling bucket that arrives when you want to feel done. -- [Completion is a tripwire](feedback-completion-is-a-tripwire.md) — the *feeling* of "done" is the cue to verify the tail (census/gate/scan-check), not the signal to ship; the last 10% is invisible from inside the first 90%. Ninety-Ninety as a security property (steward 2026-07-06). -- [Studium Engine charter](reference-studium-engine-architectural-charter.md) — the engine's constitutional doc (`studium-engine/docs/the-studium-engine-architectural-charter.md`): reasoner-at-centre over a BOUNDED provenanced corpus; three cognitions; boundedness=trust. Read before building the engine. -- [Studium Engine = Sixtus-V craftsman collaboration](feedback-studium-engine-sixtus-v-collaboration.md) — work the ground freely (I build, surface only vision-forks); **constraint-candidates** = 3rd governed instrument (I name, steward applies). Studium-engine only; heavier loop for L1/L2. -- [Trust prior pass frame](feedback-trust-prior-pass-frame.md) — when extending a prior verification, **re-run it at the scope of the extension**. The prior pass tested what it tested; your extension claims what it did not test. -- [MemPalace is an unaffiliated stopgap](mempalace-is-unaffiliated-stopgap.md) — third-party; steward/Seb build BMF/CapableMind. Don't conflate them. MemPalace PRs await MemPalace's maintainers, **not Seb**. -- [Skill-harvest register](skill-harvest-register.md) — **canonical home for proposed skills** (governed analog of PENDING.md for tooling); `/wrap-up` §1.6 proposes, steward authorizes. **Register compaction + ladder batch-append owed** — it exceeds read caps (tripwire 2026-07-22). Built: `/jurist-package`, `/model-handoff`. Ruled/held detail in the file. -- [Copy-paste-clean governance drafts](feedback-governance-drafting-copy-paste-clean.md) — draft PENDING/REVIEWED placement blocks as plain fenced markdown; display formatting leaks into the placed record (REVIEWED-59 header, 07-16). -- [Verification ladder](reference-verification-ladder.md) — the named instruments (byte-identical compile gate, delta classification, censused-routes, fresh-clone gate, measure-toolchain-before-spec…); reach for the gate the claim's shape demands instead of re-deriving. -- [Plane coordination workflow](reference-plane-coordination-workflow.md) — CENTRAL to steward↔Seb: `app.plane.so/capablemind`, thin effort-tasks `[BM #N]` over canonical GH issues. ⚠ BBF = BetterBridge *product*, NOT the board. Detail + MCP setup in file. -- [Resurface banked notes before re-deriving](feedback-resurface-banked-notes-before-rederiving.md) — when an idea was already captured (runbook known_gaps, skill-harvest, prior note), **READ the note before re-deriving**; re-derivation drifts. -- [Verify-before-compose hook](feedback-verify-before-compose-hook.md) — chamber constitutional writes are BLOCKED by a PreToolUse hook without `` + verbatim Grounding. Don't fight the block. -- [Tool review after each use](feedback-tool-review-after-each-use.md) — review every tool we built after each run (success OR failure); iterate until reliable. **PASS-BUT-FALSELY is the priority signal.** Log at `chamber-library/_curation/tool-evolution-log.md`. -- [Engine sources graduate to the permanent chamber](feedback-engine-sources-become-permanent-chamber-collection.md) — any work added for the engine ALSO becomes permanent chamber collection unless expressly stated; take it ALL the way (clean→verify→graduate→catalogue→sidecar). Never leave staged. -- [Notes are part of the work](feedback-notes-are-part-of-the-work-keep-footnotes-endnotes.md) — steward directive (2026-06-28): footnotes/endnotes are integral — KEEP+CONVERT them (``→`[^N]`), never drop on graduation. (Caught dropping Taylor's endnotes — wrong.) -- [The maturation of the chamber — a dialogue](~/_Dev/studium-engine/docs/the-maturation-of-the-chamber-a-dialogue-2026-06-28.md) — the pivotal 2026-06-28 exchange on the chamber's telos (fidelity-without-trust; reading-is-unsolvable-is-the-feature; L2/engine=answerable-not-pure). Companion to [[project-studium-engine-telos-chamber-of-voices]]. +- [Removing a claim ≠ removing the reliance](feedback-removing-a-claim-is-not-removing-the-reliance.md) — cutting an unsupported sentence can **hide** the gap; the dependency survives, now invisible. Test: does the conclusion still *need* it? +- [Derive the rule from the consumer, not the survivor](feedback-derive-the-rule-from-the-consumer-not-from-the-survivor.md) — choosing between two disagreeing implementations is **selection, not derivation**. Derive from what a CONSUMER must do. +- [Rank on fields you actually write](feedback-rank-on-fields-you-actually-write.md) — a consumer ranking by an evaluative field nothing populates degrades to trivial order while claiming to rank. Verify scoring fields end-to-end; prefer signals already captured. +- [The central path — answerability, not purity](feedback-central-path-answerability-not-purity.md) — the contamination recursion is probably irresolvable, so **bind the claims, don't certify the parties**. Route by claim-type: *checkable* → produce the check + a falsifier; *judgment* → disclose standpoint in one line, decide, record; *undecidable* → name it open. **One layer, then act — never audit the audit.** +- [Notes are part of the work](feedback-notes-are-part-of-the-work-keep-footnotes-endnotes.md) — footnotes/endnotes are integral: KEEP+CONVERT (``→`[^N]`), never drop on graduation. +- [Resurface banked notes before re-deriving](feedback-resurface-banked-notes-before-rederiving.md) · [Checkable claim surfaces bugs](feedback-checkable-claim-surfaces-bugs.md) · [Census by mechanism, not proxy](feedback-census-by-mechanism-not-proxy.md) · [Completion is a tripwire](feedback-completion-is-a-tripwire.md) · [Trust prior pass frame](feedback-trust-prior-pass-frame.md) — the five epistemic disciplines. Kernels: **read the banked note before re-deriving** · **a checkable claim over a soft classification is itself a defect-detector** · **census by RUNNING the real pipeline** · **the feeling of "done" is the cue to verify the tail** · **re-run a prior verification at the scope of your extension**. ⚠ Also carried as Symmetria §3 flags — *two surfaces, deliberately*: §3 loads only when Symmetria is invoked, so these stay here for sessions where it isn't. + +**Loud trigger — pointer suffices** +- [Chamber work: ground in constitution + charter + runbook FIRST](feedback-chamber-work-ground-in-constitution-charter-runbook.md) — **any chamber work *or talk about it*** begins there (incl. `reanchor:`). Repo CLAUDE.mds are pointers, not state; corpus claims come from a self-tested tool, never a hand grep. +- [Governance files are dotfiles symlinks](reference-governance-files-are-dotfiles-symlinks.md) — Edit/Write refuse to write through a symlink, so **edit the real `~/dotfiles/…` path** when appending — **`PENDING`/`REVIEWED` only.** ⚠ That refusal is a tool artifact, **not** a permission check, and this note is the documented route past the only friction guarding the constitution (PENDING-107). **`~/CLAUDE.md`/`~/REVIEWED.md`/L2 = `[ESCALATE]`, steward's hand — a jurist sign-off does not authorize one.** +- [Verification ladder](reference-verification-ladder.md) — the named instruments; reach for the gate the claim's shape demands instead of re-deriving one. +- [Skill-harvest register](skill-harvest-register.md) — canonical home for proposed skills (governed analog of PENDING.md for tooling); `/wrap-up` §1.6 proposes, steward authorizes. **Compaction + ladder batch-append owed** (exceeds read caps). +- [Copy-paste-clean governance drafts](feedback-governance-drafting-copy-paste-clean.md) — draft PENDING/REVIEWED blocks as plain fenced markdown; display formatting leaks into the placed record. +- [Verify-before-compose hook](feedback-verify-before-compose-hook.md) — chamber constitutional writes are BLOCKED without `` + verbatim Grounding. Don't fight the block. +- [Tool review after each use](feedback-tool-review-after-each-use.md) — review every tool we built after each run, success OR failure. **PASS-BUT-FALSELY is the priority signal.** Log: `chamber-library/_curation/tool-evolution-log.md`. +- [Every canon doc's source lives in Chamber Sources](feedback-resolve-source-through-chamber-sources.md) — a canonical's source = whatever `resolve_archived_source` returns, **never** the master library or a path in frontmatter. Read the banked record before calling a mismatch a defect. +- [Engine sources graduate to the permanent chamber](feedback-engine-sources-become-permanent-chamber-collection.md) — work added for the engine ALSO becomes permanent collection unless stated otherwise; take it all the way (clean→verify→graduate→catalogue→sidecar). Never leave staged. +- [Studium Engine charter](reference-studium-engine-architectural-charter.md) — the engine's constitutional doc. Read before building. · [Sixtus-V collaboration](feedback-studium-engine-sixtus-v-collaboration.md) — build freely, surface only vision-forks; **constraint-candidates** = 3rd governed instrument. Studium-engine only. +- [CapableHands standing authorization](reference-capablehands-standing-authorization.md) — M4 mini `david@10.0.1.136` durably authorized for remote OCR/inference; don't re-ask (steward 2026-07-01). +- [Typography palace — query via CLI](reference-typography-palace-cli.md) — ~20 type masters at `~/.mempalace/palace-chamber-typography`; `mempalace --palace search "…"`. For ARC typography; don't re-ask where it lives. +- [Steward maps live in ~/dotfiles/maps](reference-steward-maps-home.md) — a **map** = an artifact David reads *directly* to orient. Write to `~/dotfiles/maps/`, symlink to Desktop, **never** straight onto the Desktop. +- [Plane coordination workflow](reference-plane-coordination-workflow.md) — CENTRAL to steward↔Seb: `app.plane.so/capablemind`, thin effort-tasks `[BM #N]` over canonical GH issues. ⚠ BBF = BetterBridge *product*, NOT the board. +- [MemPalace is an unaffiliated stopgap](mempalace-is-unaffiliated-stopgap.md) — third-party; don't conflate with BMF/CapableMind. MemPalace PRs await MemPalace's maintainers, **not Seb**. +- [The maturation of the chamber — a dialogue](~/_Dev/studium-engine/docs/the-maturation-of-the-chamber-a-dialogue-2026-06-28.md) — the 2026-06-28 exchange on the chamber's telos (fidelity-without-trust; reading-is-unsolvable-is-the-feature). Companion to [[project-studium-engine-telos-chamber-of-voices]]. ## Canonical Workstream Trackers -*Read the tracker for any active workstream at /wake-up before composing the briefing. Append substantive moves at /wrap-up. Per `feedback-canonical-workstream-tracker-discipline.md`.* -- **[Chamber as versioned releases](project-chamber-versioned-releases.md) — THE GOVERNING FRAME for all library work.** Realize the 2000-year Chamber as versioned releases with soft borders, each serving a PURPOSE. Scope every library bite through this. **Open decision: which purpose anchors V1** — see the facet formalism in `studium-engine/docs/parallel-tracks-…2026-08-03.md`. -- [The Chamber touchstone — the *why*](~/_Dev/studium-engine/docs/the-chamber-touchstone.md) — seven questions to test work against when lost in the trees. **Read at Step 0 of any chamber work**, before constitution/charter/runbook. Holds no state; does not decay. -- [The Chamber vision is NOT in one place](project-chamber-vision-is-not-in-one-place.md) — it lives in **seven** sources across two repos + memory (census in file). A single home would become an eighth unless it supersedes or points. -- [MemPalace wind-down](project-mempalace-winddown.md) — DONE (steward 2026-07-07): `palace-memory` wound down, wake/wrap rewired to the files layer; KG exported (`knowledge-graph.jsonl`). Typography palace KEPT (separate instance). -- [ARC open-work register](project-arc-open-work-register.md) — **the single code-verified source of truth for what is OPEN on ARC** (post-Stage-G, built 2026-06-11). Read THIS for remaining ARC work (A1 Vignette, A2 cul-de-lampe, content sweeps, Phase-2/held set, REVIEWED-placement debt), not the chronological tracker. -- [ARC](project-arc-rework.md) — canonical ARC workstream tracker (chronological record 2026-04-16 →). **Status: STAGE G DONE/SEALED (GPG `ac0a7ee`, 2026-06-10) — reactive mode governs.** Open work → [[project-arc-open-work-register]] (A1 Vignette · A2 cul-de-lampe · content sweeps · Phase-2 held set). Chronological detail in the tracker file. -- Chamber-typography — *tracker not yet established*; substantive moves live in per-session memories (2026-05-11 onward) + `project-chamber-cruft-restoration.md` + `project-chamber-typography-mining-plan-2026-05-15.md`. -- [Studium engine telos — the chamber of voices](project-studium-engine-telos-chamber-of-voices.md) — **the ultimate goal, above the build plan**: David's childhood chamber of hero-voices → discourse with his library + voices conversing, this time *accountably* (v1 was eloquent/unaccountable; same ambition built grounded/citable). Why verbatim fidelity is load-bearing. -- [Studium = CM's unfettered sandbox](project-studium-cm-sandbox-and-transfer.md) — Studium/chamber are personal projects Seb now sees as fundamental to CM; experiment freely on the library/engine without risking CM's runtime, breakthroughs transfer back (V2 verifier = live example). Steward-framed 2026-07-08. -- [Making sequence source set](project-making-sequence-source-set.md) — **COMPLETE against the ReadingList** (2026-06-18, reconciliation-verified). Sourced ≠ ingested; the Handke-German decision; Levi drop-cap gate RESOLVED STALE. Read before any Making/studium source work. -- [Source library — link + dedupe](project-source-library-link-and-dedupe.md) — steward's master ebook library = `~/Documents/___The Library [ePub_AWZ3]/` (2190 ebooks, messy nested). GOAL: link chamber↔sources (provenance index) + dedupe; real link needs EPUB/PDF internal metadata + edition-identity, not filenames. Detail + seed in file. -- [Character-as-image hazard](feedback-character-as-image-hazard.md) — EPUBs rendering diacritics as inline images are SILENTLY MUTILATED by image-drop. Mechanism built (`apply_char_glyphs.py`, REVIEWED-70/v2.5.0), wired as a born-digital precondition; per-source glyph-maps still owed. VIEW the glyph; map to SOURCE form. -- [Sidecar typology — protocol-dependent reading-indexes](project-sidecar-typology-protocol-dependent.md) — TWO layers: `.meta.json` structural sidecar = PROTOCOL-NEUTRAL (the graduated bar); reading-indexes (rich YAML) = PROTOCOL-DEPENDENT, probably PLURAL — **don't design the schema yet**; settle corpus to gold, let protocols declare themselves. Steward 2026-06-29. -- Studium Engine — *no tracker file yet*; moves in per-session memories + the **[architectural charter](reference-studium-engine-architectural-charter.md)** + **`docs/tool-evolution-log.md`** (read its §0). Steps 0–7 built; corpus CLEAN + gate-validated 13/13. **V1 `verify-quote` + `fidelity_equivalence@3` GOVERNING** (REVIEWED-87 now PLACED) — ⚠ **but @3 is under challenge: PENDING-111 + jurist package filed 08-06**, it strips escaped literal `\*` and erases Alexander's invariant rating; ruling sets the V-track course. **The parse fix LANDED `27b79ca`** — `retrieve.py` accepts a sentence; 26 crashes → 0; **HIT 0/22, MISLOCATED 0, FALSE-POSITIVE 0**; `tests/test_retrieve.py` (21) + `tests/chavruta_harness.py` are the read side's first test floor. **PENDING-97 is now the live blocker and measurable** (13–19 term conjunctions). ⚡ **Embeddings already score 22/22 recall@20 on the same items** — never landed; V2 gates it. **NEXT: N1 → V2.** -- [Instrument censuses — have our gates ever fired?](../governance/fool/census-02-have-they-ever-fired-RESULT.md) — `~/dotfiles/claude/governance/fool/`: **census 01** (does each gate have a real negative instance? → decay, not construction, is the failure mode) + **census 02** (has it ever fired at all? → the record divides by whether a human invokes it). Both pre-registered before the look; both had prediction 5 invert. Read before trusting any gate's silence. -- [L1 reliability](project-L1-reliability.md) — canonical L1 tracker. **BLOCKED ON SEB (PENDING-94) — nothing moves until he rules; BMF is down and staying down.** The replay **has never resumed, only restarted**: `minCursor` is a minimum over all 11 modules and two never participate ⇒ every start rebuilds from seq 0 (13/13, 0 catch-up). Completion is gated by **uninterrupted run length, not rate** — which is why ANALYZE/B1.1/N6 were all real and all changed nothing. **Recall never worked either** (`retrieval_count = 0` across the whole April–June graph). Yesterday's "ingest mystery solved" was **corrected 2026-08-04**. **Read the tracker before ANY L1 work** — walked past once on 2026-08-03. -- [Be (laundromat)](project-be-laundromat.md) — canonical Be tracker (est. 2026-06-08). Be = Skemantix startup (Seb+David) funding CapableMind's ladder; **bridge, not venture**. Decisions LOCKED (entity/pricing/infra in file); a11y gate MERGED. **Pre-revenue WTP gate = renovate Pat → charge her; discipline: no new spec until it clears → nothing for executor on be.** Repo @ `f43a0fd`. +*Read the tracker for any active workstream at /wake-up before composing the briefing. Append substantive moves at /wrap-up — to the **chronological log**, not only "current state". Per `feedback-canonical-workstream-tracker-discipline.md`.* +- **[Chamber as versioned releases](project-chamber-versioned-releases.md) — THE GOVERNING FRAME for all library work.** The 2000-year Chamber as versioned releases with soft borders, each serving a PURPOSE; scope every library bite through this. **Open decision: which purpose anchors V1.** Read the file, not this line — it holds the reframe that resolved the purpose/scope paralysis. +- [Studium Engine](project-studium-engine.md) — canonical engine tracker (est. 2026-08-07). Steps 0–7 built, corpus gate-validated 13/13; V1 `verify-quote` + `fidelity_equivalence@3` GOVERNING but **@3 under challenge (PENDING-111, unruled)**. Parse fix landed `27b79ca`: **HIT 0/22 — the number to beat**; PENDING-97 is the live blocker. **NEXT: N1 → V2.** +- [Studium engine telos — the chamber of voices](project-studium-engine-telos-chamber-of-voices.md) — **the ultimate goal, above the build plan**: the childhood chamber of hero-voices, rebuilt so the counsel is *accountably* theirs. Why verbatim fidelity is load-bearing. +- [The Chamber touchstone — the *why*](~/_Dev/studium-engine/docs/the-chamber-touchstone.md) — seven questions to test work against when lost in the trees. **Read at Step 0 of any chamber work.** Holds no state; does not decay. +- [The Chamber vision is NOT in one place](project-chamber-vision-is-not-in-one-place.md) — it lives in **seven** sources across two repos + memory. A single home would become an eighth unless it supersedes or points. +- [L1 reliability](project-L1-reliability.md) — canonical L1 tracker. **BLOCKED ON SEB (PENDING-94); BMF is down and staying down.** The replay **has never resumed, only restarted** (`minCursor` is a minimum over 11 modules, two never participate ⇒ every start rebuilds from seq 0). Completion is gated by **uninterrupted run length, not rate**. Recall never worked either (`retrieval_count = 0`). **Read the tracker before ANY L1 work** — walked past once on 2026-08-03. +- [Instrument censuses — have our gates ever fired?](../governance/fool/census-02-have-they-ever-fired-RESULT.md) — census 01 (has each gate a real negative instance? → **decay, not construction**, is the failure mode) + census 02 (has it fired at all? → the record divides by whether a human invokes it). Both pre-registered. **Read before trusting any gate's silence.** +- [ARC open-work register](project-arc-open-work-register.md) — **the single code-verified source of truth for what is OPEN on ARC.** Read THIS for remaining ARC work, not the chronological tracker. · [ARC](project-arc-rework.md) — chronological record; **Stage G DONE/SEALED (GPG `ac0a7ee`) — reactive mode governs.** +- [Source library — link + dedupe](project-source-library-link-and-dedupe.md) — master ebook library `~/Documents/___The Library [ePub_AWZ3]/` (2190 ebooks). GOAL: link chamber↔sources + dedupe; a real link needs EPUB/PDF internal metadata + edition-identity, **not filenames**. +- [Sidecar typology — protocol-dependent reading-indexes](project-sidecar-typology-protocol-dependent.md) — `.meta.json` structural sidecar = PROTOCOL-NEUTRAL (the graduated bar); reading-indexes = PROTOCOL-DEPENDENT and probably PLURAL — **don't design the schema yet.** +- [Character-as-image hazard](feedback-character-as-image-hazard.md) — EPUBs rendering diacritics as inline images are SILENTLY MUTILATED by image-drop. Mechanism built + wired; per-source glyph-maps still owed. **VIEW the glyph; map to SOURCE form.** +- [Making sequence source set](project-making-sequence-source-set.md) — **COMPLETE against the ReadingList** (reconciliation-verified). Sourced ≠ ingested. Read before any Making/studium source work. +- [Studium = CM's unfettered sandbox](project-studium-cm-sandbox-and-transfer.md) — experiment freely on library/engine without risking CM's runtime; breakthroughs transfer back. Steward-framed 2026-07-08. +- [Be (laundromat)](project-be-laundromat.md) — Skemantix startup (Seb+David) funding CapableMind's ladder; **bridge, not venture**. Decisions LOCKED. **Pre-revenue WTP gate = renovate Pat → charge her; no new spec until it clears ⇒ nothing for executor on be.** +- Chamber-typography — *tracker not yet established*; moves live in per-session memories (2026-05-11 →) + `project-chamber-cruft-restoration.md` + `project-chamber-typography-mining-plan-2026-05-15.md`. ## Active Session -> 🧹 **STEP 0 = the MEMORY.md trim — steward-directed at the 2026-08-06 evening wrap.** 19.9 KB vs a <17.1 KB target. **Relocation, not deletion**; back up first. Weight is Standing preferences (~9.6 KB) + Trackers (~6.9 KB) — judgement work, *not* a fast pass (fast trimming IS the compression-drops-the-load-bearing-clause failure). No truncation risk today (4.8 KB headroom); the reason it goes first is that it has been deferred three times. -> ⛔ **THEN N1, the navigation-tree builder** (decided with the steward at the 2026-08-06 evening wrap; then **V2**). The N0 contract is written and names all four primitives — read `studium-engine/docs/spec/n0-navigation-tree-contract.md` §1–§2, don't re-derive. +> ✅ **STEP 0 DONE (2026-08-07) — the MEMORY.md trim.** 19.9 → **16.5 KB**, verified: 0 dead pointers, 0 orphaned clauses, every dropped span has a home. Method: entries keep their rule inline when they fire silently, shrink to a pointer when the trigger is loud. Two relocations — [[project-studium-engine]] **created** to hold engine state the index was carrying inline, and the MemPalace wind-down entry moved to `MEMORY-reference.md`. Verification caught two things a fast pass would have shipped: one preference dropped by inattention (restored) and the facet-formalism pointer that lived *only* on the index line (relocated into [[project-chamber-versioned-releases]]). +> ⛔ **NOW: N1, the navigation-tree builder** (decided with the steward at the 2026-08-06 evening wrap; then **V2**). The N0 contract is written and names all four primitives — read `studium-engine/docs/spec/n0-navigation-tree-contract.md` §1–§2, don't re-derive. > ⚠ **N1 will NOT move 0/22** — that is N2. Finishing N1 with the number unchanged is the expected outcome, not a failure. > ⚠ **Build the tree from the READING INDEX, not by parsing headings.** `chamber-library/reading-indices/*.yaml` carries the authoritative number→name→line map (Alexander: all 253, re-found *by name*, sha-bound). Heading text hits three documented OCR defects. Today's harness regex is a reference, not the input. > ⏳ **Not my thread:** the **PENDING-111 ruling** (relayed 08-06 evening — sets the V-track course, does **not** gate N1) · the Seb package · the L2 design note · PENDING-109 census + PENDING-104 brief, both **needing dates, not "later."** @@ -76,7 +74,8 @@ permalink: claude-memory/memory - [Session 2026-08-06 evening — the asterisk that carried meaning](session-2026-08-06-evening-the-asterisk-that-carried-meaning.md) — **The parse fix LANDED (`27b79ca`): 26 crashes → 0, MISLOCATED 0, FALSE-POSITIVE 0** across all 5 items where silence is the correct answer — both deciding buckets empty, so the revert condition was not met. **HIT 0/22**: the engine now grounds nothing *honestly*, needing 13–19 terms to co-occur. **0/22 is the number to beat.** ⚡ **The embedding arm already scores 22/22 recall@20 on the identical items** — capability measured in June, never landed; V2 is the gate that makes surfacing it safe. **Governance: the register could not answer "how many rulings do I owe"** (23, not the digest's 26) — REVIEWED-87→94 placed, five of them **reconstructions** with provenance lines; PENDING-99/-105/-106 closed (106 **by split**); PENDING-108/-109/-110/-111 filed. ⚡ **The steward's printed A Pattern Language found that `fidelity_equivalence@3` erases Alexander's invariant rating** (81/114/54 across the corpus) — jurist package filed, containment 13/13. **Instruments caught 4 corrections; the jurist 1; the steward 2 — and his came from reading a physical book.** ## Historical reference → MEMORY-reference.md -Older archived-session pointers and the stable reference layer (steward profile · project-state detail · L1/L2/Chamber inventories · legacy pending-work · reference-file list) live in [MEMORY-reference.md](MEMORY-reference.md) — consult on demand; not loaded at wake. Recent cross-session trajectory comes from the Active Session entry above + the recent `session-*.md` files (wake §2.b.1; the MemPalace `handoffs` glance was retired 2026-07-07 with the wind-down). +Older archived-session pointers and the stable reference layer (steward profile · project-state detail · L1/L2/Chamber inventories · legacy pending-work · reference-file list) live in [MEMORY-reference.md](MEMORY-reference.md) — consult on demand; not loaded at wake. Recent cross-session trajectory comes from the Active Session entry above + the recent `session-*.md` files (wake §2.b.1). ## Index discipline (self-bounding — keep this file lean) -Wake-loaded live index; hard budget well under the harness load ceiling. Keep to: Standing preferences · Canonical Trackers *as one-line pointers* (chronological detail lives in the linked tracker files, **not** here) · Active Session · these pointers. Rotation + budget-breach handling are wired into `/wrap-up` (demote prior Active Session on promote) and `/wake-up` (truncated load = flag + trim). Back up before restructuring. (Compacted 2026-07-17: entries re-slimmed to tight one-liners, 20.5→<17.1KB.) +Wake-loaded live index; hard budget well under the harness load ceiling. Keep to: Standing preferences · Canonical Trackers *as one-line pointers* (chronological detail lives in the linked tracker files, **not** here) · Active Session · these pointers. Rotation + budget-breach handling are wired into `/wrap-up` (demote prior Active Session on promote) and `/wake-up` (truncated load = flag + trim). Back up before restructuring. +*Compaction history: 2026-07-17 re-slimmed to one-liners, 20.5→17.1 KB. 2026-08-07 trim (steward-directed): 19.9→~15 KB by the fires-silently/loud-trigger split, plus `project-studium-engine.md` created to hold engine state MEMORY.md had been carrying inline. **⚠ 17.1 KB is a prior achievement, not a derived ceiling** — the real harness load limit is unmeasured; if it ever matters, measure it rather than inheriting this number.* diff --git a/claude/memory/project-chamber-versioned-releases.md b/claude/memory/project-chamber-versioned-releases.md index a672f55..5bc4204 100644 --- a/claude/memory/project-chamber-versioned-releases.md +++ b/claude/memory/project-chamber-versioned-releases.md @@ -5,7 +5,7 @@ metadata: node_type: memory type: project originSessionId: 58ba5886-9bb6-415f-9440-a4b87099ffa0 - modified: 2026-07-25T08:04:23.830Z + modified: 2026-08-07T09:58:00.358Z --- **Steward reframe (2026-07-25):** the full Chamber — all the voices across 2000 years, including the image-based works (Warburg's *Mnemosyne Atlas*, Jung's *Red Book*) and the personally-foundational Berger and Christopher Alexander — **cannot be realized all at once, and shouldn't be attempted that way.** The Chamber is realized as **versioned releases with soft borders**: "**Chamber V1** = constitution vX + engine vY + a *bounded voice-set*, serving a **specific purpose**"; then with capability *x*, "**Chamber V2**", and so on. The full Chamber is the **horizon**, not the V1 deliverable. @@ -22,6 +22,8 @@ metadata: **The open decision (holds for a purpose-scoping bite):** which purpose anchors Chamber V1, and what bounded voice-set + capability envelope does it need? That decision scopes the constitution version, the engine version, and the corpus subset for V1 — and tells us which of the open library questions are V1-blocking vs V2-deferrable. +> **Where the facet formalism lives:** `~/_Dev/studium-engine/docs/parallel-tracks-library-engine-and-capablemind-2026-08-03.md`. *(Relocated here 2026-08-07 at the MEMORY.md trim. This pointer had existed **only** on the MEMORY.md index line — compressing that line would have left the open decision live and its formalism unfindable. Recorded here because this file, not the index, is the canonical surface for the decision.)* + --- **2026-07-28 — the precondition surfaced, and it re-bounds the scoping rule.** Chasing "which purpose anchors V1" reached the corpus itself, and the corpus was never in the frame. Verified scope (fresh `corpus-quality-ledger.tsv`, self-test PASS): **952/1297 clean · 69 apparatus-class defects · but only 11 of 1297 pass current graduation** (323 fail, 963 never assessed). **The gap is conformance, not content** — the corpus predates its own constitution. So neither "rebuild" nor "retrofit" is the right word: it is **re-gate**. diff --git a/claude/memory/project-studium-engine.md b/claude/memory/project-studium-engine.md new file mode 100644 index 0000000..0987da2 --- /dev/null +++ b/claude/memory/project-studium-engine.md @@ -0,0 +1,201 @@ +--- +name: project-studium-engine +description: "Canonical Studium Engine workstream tracker — build state, governing instruments, live blocker, and the chronological log of substantive moves. Established 2026-08-07 at the MEMORY.md trim, filling the gap MEMORY.md had flagged as 'no tracker file yet'; state seeded verbatim from the MEMORY.md line it replaces." +metadata: + node_type: memory + type: project + originSessionId: 033cfe63-c9d0-4fad-accf-c45de561f09a + modified: 2026-08-07T15:08:08.484Z +--- + +# Studium Engine — canonical workstream tracker + +**Established 2026-08-07**, at the steward-directed MEMORY.md trim. Until now the engine had +*no tracker file*, so its build state lived inline in `MEMORY.md` (one 950-character line) and in +per-session memories. That is two update surfaces and no canonical one — the drift shape recorded +as skill-harvest proposal #183. This file is now the canonical surface; `MEMORY.md` carries only a +pointer. + +**This file holds state. It does not hold the *why* or the *law*:** +- **Why** → [[project-studium-engine-telos-chamber-of-voices]] (the telos — above the build plan) +- **Law** → [[reference-studium-engine-architectural-charter]] (`studium-engine/docs/the-studium-engine-architectural-charter.md`) +- **Touchstone** → `~/_Dev/studium-engine/docs/the-chamber-touchstone.md` (read at Step 0 when lost in the trees) +- **How we work here** → [[feedback-studium-engine-sixtus-v-collaboration]] (Sixtus-V: build freely, surface only vision-forks) +- **Tool review** → `studium-engine/docs/tool-evolution-log.md` (read its §0) + +--- + +## Current state (as of 2026-08-07 wake) + +**Build:** Steps 0–7 built. Corpus CLEAN and gate-validated **13/13**. + +**Governing instruments:** V1 `verify-quote` + `fidelity_equivalence@3` — ratified 2026-08-05, +**GOVERNING** (REVIEWED-87 placed 2026-08-06). + +⚠ **`@3` is under challenge.** PENDING-111 + a full jurist package filed 2026-08-06 +(`studium-engine/docs/fidelity-3-literal-asterisk-JURIST-PACKAGE-2026-08-06.md`, containment +13/13): `_MARKUP_EMPHASIS = re.compile(r"[_*]")` strips the **escaped literal** `\*`, erasing +Alexander's confidence rating (two asterisks = a true invariant, one = progress, none = far from +invariant; "Using this book", pp. 14–15). Measured **81 / 114 / 54** across the manifested corpus. +The ruling sets the V-track course. **Verified 2026-08-07: no ruling yet** — zero occurrences of +`PENDING-111` in `~/dotfiles/REVIEWED.md`. It does **not** gate N1. + +**Read side — the parse fix LANDED, `27b79ca`.** `retrieve.py` now accepts a sentence; the query +was previously passed to `MATCH ?` where FTS5 parses it as a *query expression*, so `?` and `:` +were syntax errors. Result, answer-keyed against `tests/chavruta_harness.py`: + +| | | +|---|---| +| crashes | **26 → 0** | +| HIT | **0/22** ← *the number to beat* | +| MISLOCATED | **0** | +| FALSE-POSITIVE | **0** (across all 5 items where silence is the correct answer) | + +Both deciding buckets empty ⇒ the revert condition was not met. **The engine now grounds nothing +*honestly*** — every question needs **13–19 terms to co-occur**. Recorded explicitly as *the number +to beat* so a later pass cannot mistake silence for progress. + +**Test floor (the read side's first):** `tests/test_retrieve.py` (21 checks) + +`tests/chavruta_harness.py`. **`test_conjunction_is_monotonic` is the tripwire** against every +future answer-more change — it must stay green. + +**Live blocker: PENDING-97** — retrieval AND-s bare tokens and has no semantic layer. Now +reachable and *measurable* for the first time (the 13–19 term conjunctions above). + +⚡ **The embedding arm already scores 22/22 recall@20**, voice-scoped, on the identical 22 items +where FTS scores 0/22 (`corpus/measure-rerank-voicescoped.json`, verified same id-set). Capability +measured in June, **never landed**. recall@20 means the right passage is in the top 20 *alongside +nineteen others* — the answer-more direction — so **V2 is the gate that makes surfacing it safe.** +Landing embeddings first would be the make-the-demo-nicer move. + +**NEXT: N1 → V2.** + +- **N1** — the navigation-tree builder. Contract written: `docs/spec/n0-navigation-tree-contract.md` + §1 (the tree) and §2 (the four primitives: `list-children`, `open-node`, `expand-to-parent`, + `load-whole-work`), including that `open-node` refuses citable text for a non-citable node. Do not + re-derive it. ⚠ **N1 will NOT move 0/22** — that is N2, where the reasoner navigates; N1 lays the + ground it walks on. ⚠ **Build the tree from the READING INDEX** (`chamber-library/reading-indices/*.yaml` + — Alexander: all 253, re-found *by name*, ascending order verified, sha-bound), **not by parsing + headings**: heading text hits three documented OCR defects (179 misnumbered 178 → a duplicate node; + 187 lost its `##`; 195 has no heading). The harness's heading regex is a working reference, not the input. +- **V2** — gold set + pre-registered thresholds. Follows N1 rather than PENDING-97 for the reason above. + +--- + +## OPEN THREADS — the stack as of 2026-08-07 (captured mid-session, before the TEI detour) + +*Written because the session went N1 → `@3` → R0 → TEI-decision and each step opened threads. That +accumulation is the thing the steward abhors; this block is the guard.* + +**Owed to the steward, not startable by the executor** +1. **REVIEWED-87 amendment — DRAFTED, NOT PLACED.** `studium-engine/docs/REVIEWED-87-amendment-DRAFT-2026-08-07.md` + §A is the block to place. `~/REVIEWED.md` is `[ESCALATE]`, steward's hand. +2. **Three measured findings for relay to the jurist** (same draft, §B): the package's `≡` claim is + false and its own table refutes it; condition (a)'s "verdicts that may have overclaimed" has an + empty referent (the risk ran the other way — false *refusals*); Q1's grounds hold on the corpus + side only. Q3 census: escaped emphasis in **3 of 13** sources, not "Alexander only". +3. **The TEI ruling itself** — agreed in shape (MD+sidecar canonical, proxy trigger retired, + deferral becomes a design window), **not yet recorded**. Blocked on the mechanism below. + +**Executor-startable, in rough priority** +4. **N2** — the agentic navigation loop + embedding entry-finder fallback; discovery emits + hypothesis-labelled output. This is the next N-track station and **the one that can move 0/22**. +5. **V2** — gold set + pre-registered thresholds; the gate that makes surfacing the embedding arm + safe (22/22 recall@20 measured in June, never landed). +6. **Alexander `front_matter` re-anchor** — all five anchors stale (+20/+20/+22/+26/+32). Now + *mechanical*: `python3 -m engine.reading_index recover` proposes; nothing is applied. Unblocks → +7. **The "Using this book" FIX** — a composite-span misclassification, **not** a D-4 policy change. + D-4's own text: *"citability is a function of **convocation**, not an intrinsic byte property"*, + with `citable:false` reserved for matter that is **nobody's** quotable voice. Alexander's framing + essays are his own words (the sidecar's own note says so). Partition the span; don't flip a flag. +8. **R0 emit / migration** — `reading_index emit ` renders native R0; **nothing has been written + to `chamber-library`** (D-3). Steward review before any write. +9. **The collision census** — count characters ambiguous between markdown syntax and authorial + content, per source. The number the TEI question will eventually turn on; deferred behind the + mechanism by steward call 2026-08-07. +10. **56 regions unverified** (Mauss 23 + after-the-reply 33) — editorial/synthetic titles, so + name-landing cannot test them. A content probe at the declared boundary is owed. + +**Not this thread:** the Seb package · the L2 design note · PENDING-109 census + PENDING-104 brief, +both still **needing dates, not "later."** + +## Chronological log + +*Append substantive moves here at `/wrap-up` — not only to "Current state" above. A tracker with two +update surfaces drifts between them (skill-harvest #183).* + +### 2026-08-07 — PENDING-111 RULED, `@3` corrected in place (`4be9378`) +Jurist: **Q1 AUTHORIZE** (narrow to *unescaped* delimiters), **Q2 correction-in-place** not an `@4` +bump (mechanism defect against standing doctrine), **Q3** census follows non-gating, **Q4** steward's. +`FIDELITY_VERSION` stays `@3`; **`@4` reserved.** Implemented as one left-to-right scan, not +lookbehind-plus-unescape (that form mis-reads `\\*`). Falsifier incl. the jurist's **nested** case; +suite 33, fleet **153/153**; gold **6/17 before and after — no verdict moved either way**. + +⚠ **The REVIEWED-87 amendment is DRAFTED, NOT PLACED** — `docs/REVIEWED-87-amendment-DRAFT-2026-08-07.md`. +`~/REVIEWED.md` is `[ESCALATE]`, steward's hand; a jurist sign-off does not authorize a REVIEWED write. + +⚡ **Three measured findings contradict the package's own premises** (draft §B, for relay): (1) the +`COMPOST\* ≡ COMPOST\*\* ≡ COMPOST` claim is **FALSE** — old `@3` gave three distinct strings and the +package's own Part I table printed the refutation; (2) so condition (a)'s "verdicts that may have +overclaimed" has an **empty referent** — the real failure was false *refusals*, the opposite risk +direction; (3) Q1's grounds hold on the **corpus side only** — a human's bare `COMPOST**` still +normalizes to `COMPOST`. **Census: escaped emphasis in 3 of 13 sources, not "Alexander only"** +(Alexander 293 · Musil 16 · Arendt 1); ratings **83/114/56 over all 253**. + +**Also opened by this ruling (Q4):** D-4's primary text says *"citability is a function of +**convocation**, not an intrinsic byte property"* and reserves `citable: false` for matter that is +**nobody's** quotable voice. Alexander's framing essays are his own words — the sidecar's own note +says so — so fencing them is a **misclassification against D-4, not D-4 working**. The `frontmatter` +section is a **composite span** (YAML+TOC furniture + four Alexander essays) never partitioned. +⚠ Blocked: its partition points live in the reading index's `front_matter` block, and **all five of +those anchors are stale** (offsets +20/+20/+22/+26/+32; three land on blank lines) while the +`patterns` block in the same file is exact 253/253 — **the 2026-06-12 re-anchor was partial** and +the manifest reports one status, `RE-ANCHORED-BOUND`, for a file bound in one region and stale in +another. + +### 2026-08-07 — N1 BUILT +`engine/navigate.py` + `tests/test_navigate.py` (32 checks) + `docs/spec/n1-navigation-tree-note.md`. +Tree: **9 works · 13 expressions · 359 divisions · 5,685 spans**; four N0 primitives + a browsable +CLI. Fleet **142/142**, retrieval untouched. **0/22 unchanged, as expected.** + +**The derivation that mattered:** every sidecar declares exactly ONE served section (Alexander's +`body` = 10,832 lines, "Patterns 1-253"), so the sidecar is the *envelope* and the reading index is +the *articulation*. Adapters declared per index filename; unknown shape → `UndeclaredIndexShape`. + +**Three defects, all caught by measurement, none by reading the code:** 455 spans orphaned in gaps +between declared divisions → 314 more in the no-sidecar source → citability reimplemented and +diverged from `chunker.section_is_served` (latent). In the first two `load_whole_work` would have +**silently under-returned**. `test_every_drawer_is_reachable` is the invariant; red-witnessed at +1,970. + +**Owed / open:** ⚠ **6 of 8 indexed sources cannot be name-tested** (editorial or synthetic division +titles) — reported as an OPEN GAP, a content probe at the declared boundary is owed. ⚠ **Mauss's +reading index is not sha-bound** to the manifested file yet the manifest declares `VERIFIED-BOUND`. +**Two constraint-candidates for the steward:** (1) Alexander's confidence rating is in the source but +*not declared* by the reading index, so the tree cannot carry it without a chamber-side change — +converging with PENDING-111, where `@3` erases the same semantic; (2) a manifest `role: +reading-source` with no sidecar is chunked as `role: text, citable: true` — citable by absence. + +### 2026-08-07 — tracker established +Created at the steward-directed MEMORY.md trim. State above seeded from the `MEMORY.md` line it +replaces plus `session-2026-08-06-evening-the-asterisk-that-carried-meaning.md`; nothing dropped. +Substrate-verified at creation: PENDING-111 has no ruling; `engine/` contains no navigation module +and the four N0 primitives appear only in docs (N1 genuinely unbuilt); the N0 contract and the +Alexander reading index both exist at the paths named. + +### 2026-08-06 evening — the parse fix landed; the asterisk that carried meaning +`27b79ca` — 26 crashes → 0, HIT 0/22, MISLOCATED 0, FALSE-POSITIVE 0. Semantics measured unchanged +(old path vs new over all 27 items, not one disagreement); whole-query phrasing rejected because it +answers *less* (1 where the conjunction returns 4). Silence path reached for the first time by long +questions, so a silence now names its term count and states it cannot distinguish *"the voice is +silent"* from *"the terms did not co-occur"*; an unsearchable query is marked **`✗ NOT SEARCHED`**, +never coverage-warranted. Then the steward's printed *A Pattern Language* exposed the `@3` asterisk +defect → PENDING-111 + jurist package. Manifest fixes `41527be`, `cbd6a9b` (a disarmed +absent-sidecar tripwire; a usage fact in a bibliographic field; a defect record cited at +`corpus_findings[1]`, a key existing in zero files fleet-wide). Full account: +[[session-2026-08-06-evening-the-asterisk-that-carried-meaning]]. + +### Before 2026-08-06 +Not reconstructed here. Per-session memories carry it (`session-*.md`, 2026-07-05 onward for the +Stage-1 rebuild), together with `studium-engine/docs/stage-1-rebuild-plan-2026-07-05.md` and +`docs/tool-evolution-log.md`. Backfill on demand rather than speculatively. diff --git a/claude/memory/session-2026-08-06-evening-the-asterisk-that-carried-meaning.md b/claude/memory/session-2026-08-06-evening-the-asterisk-that-carried-meaning.md index cde8a77..f7d2b76 100644 --- a/claude/memory/session-2026-08-06-evening-the-asterisk-that-carried-meaning.md +++ b/claude/memory/session-2026-08-06-evening-the-asterisk-that-carried-meaning.md @@ -5,7 +5,7 @@ metadata: node_type: memory type: project originSessionId: f1b95970-e482-41f2-9b0b-d74edf74a24d - modified: 2026-08-06T20:26:22.470Z + modified: 2026-08-07T10:54:59.228Z --- # Session 2026-08-06 (evening) — the asterisk that carried meaning @@ -28,7 +28,7 @@ Three arcs: a governance register that could not answer a simple question, the c The fix's second half was mandatory, not scope creep: long questions now reach the silence path for the first time, so a silence names its term count and states it cannot distinguish *"the voice is silent"* from *"the terms did not co-occur"*; an unsearchable query is marked **`✗ NOT SEARCHED`**, never coverage-warranted. `tests/test_retrieve.py` (21 checks) is the read side's first test floor; **`test_conjunction_is_monotonic`** is the tripwire against every future answer-more change. -**Then the steward read his printed copy of A Pattern Language.** The asterisks after each pattern name are Alexander's **confidence rating** — two = a true invariant, one = progress, none = far from invariant; the convention is set out in "Using this book", pp. 14–15. Measured: **81 / 114 / 54** across the manifested corpus. The conversion preserved them, correctly escaped. **`fidelity_equivalence@3` — ratified 2026-08-05, governing — deletes them**: `_MARKUP_EMPHASIS = re.compile(r"[_*]")` strips every asterisk including the escaped literal. A pattern Alexander holds to be a true invariant compares identical to one he holds far from invariant. **PENDING-111 + a full jurist package** (`studium-engine/docs/fidelity-3-literal-asterisk-JURIST-PACKAGE-2026-08-06.md`, containment 13/13). The decisive ground is internal: `fidelity.py` already states the correct principle for the sibling footnote class one line above the defect. +**Then the steward read his printed copy of A Pattern Language.** The asterisks after each pattern name are Alexander's **confidence rating** — two = a true invariant, one = progress, none = far from invariant; the convention is set out in "Using this book", pp. 14–15. Measured: **81 / 114 / 54** across the manifested corpus. The conversion preserved them, correctly escaped. **`fidelity_equivalence@3` — ratified 2026-08-05, governing — deletes them**: `_MARKUP_EMPHASIS = re.compile(r"[_*]")` strips every asterisk including the escaped literal. ~~A pattern Alexander holds to be a true invariant compares identical to one he holds far from invariant.~~ **⚠ SUPERSEDED 2026-08-07 — that sentence is FALSE and was measured false while landing the fix.** Old `@3` produced `COMPOST\` · `COMPOST\\` · `COMPOST` — **three distinct strings; the ratings never collided.** The package's own Part I table printed `COMPOST\`, so the refutation was inside the document I relayed; its Part III(a) generalized it to `≡` and I carried that generalization into this record without checking it. **The real defect runs the opposite way:** the escaped rating was corrupted into a backslash residue no human would transcribe, so affected comparisons **failed** — false refusals, not false acceptances. Also corrected: the census is **83/114/56 over all 253 patterns** (reading index), not 81/114/54 — that figure summed to 249 because it came from a heading regex missing four. See `studium-engine/docs/REVIEWED-87-amendment-DRAFT-2026-08-07.md` §B. **PENDING-111 + a full jurist package** (`studium-engine/docs/fidelity-3-literal-asterisk-JURIST-PACKAGE-2026-08-06.md`, containment 13/13). The decisive ground is internal: `fidelity.py` already states the correct principle for the sibling footnote class one line above the defect. **Also landed:** `CLAUDE.md` currency (`e691ea4`); manifest fixes (`41527be`, `cbd6a9b`) — a **disarmed tripwire** (`sidecar: none-yet` meant a deleted sidecar would pass silently on Harrison and Alexander), a usage fact sitting in a bibliographic field, and a defect record cited at `corpus_findings[1]`, **a key that exists in zero files fleet-wide**. diff --git a/claude/memory/session-ledger-2026-08-07.md b/claude/memory/session-ledger-2026-08-07.md new file mode 100644 index 0000000..daaea61 --- /dev/null +++ b/claude/memory/session-ledger-2026-08-07.md @@ -0,0 +1,91 @@ +--- +name: session-ledger-2026-08-07 +description: "Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses." +metadata: + node_type: memory + type: feedback + originSessionId: 033cfe63-c9d0-4fad-accf-c45de561f09a + modified: 2026-08-07T10:38:26.133Z +--- + +# Session Ledger — 2026-08-07 + +## Returns + +- **2026-08-07T11:45 — the wake digest's "PREVIOUS SESSION DID NOT WRAP" was checked, not + inherited.** The tempting move was to accept the flag and treat the thread as possibly stale; + the opposite temptation was to dismiss it because the wrap file looked complete. Read the + transcripts: `f1b95970` (884 lines) ended 22:29 and its id matches the memory file's + `originSessionId`; the flagged `67e2310d` is 7 lines containing a `/clear`. **False positive, + nothing lost.** This is skill-harvest proposal #179's case (a digest contradicting itself) + occurring a second time — evidence for the patch, still unauthorized. + +- **2026-08-07T12:10 — the trim's own verification caught two losses I had already called clean.** + I built a discriminator specifically to prevent dropping load-bearing clauses, applied it, and + still lost two things: (1) `feedback-constitution-as-block-then-pull-based-corpus` dropped + entirely by inattention during the restructure — a *fires-silently* rule, the exact class my + discriminator says must stay; (2) the facet-formalism pointer + (`parallel-tracks-…-2026-08-03.md`) existed **only** on the MEMORY.md index line, so compressing + that line left the V1-purpose open decision live and its formalism unfindable — textbook + [[feedback-removing-a-claim-is-not-removing-the-reliance]]. **Both found by running the check, + neither by reading my own work.** Fixed: (1) restored inline; (2) relocated into + `project-chamber-versioned-releases.md`, its canonical surface, rather than back into the index. + **The lesson is not "be more careful" — it is that a mechanical diff of dropped spans against the + rest of the corpus is cheap and finds what re-reading does not.** + +- **2026-08-07T13:30 — N1: three defects, and not one was visible from inside the code.** + 455 spans orphaned in gaps between declared divisions; 314 more in the no-sidecar source; + citability reimplemented and diverged from `chunker.section_is_served`. The first two surfaced + only from **comparing the span count to the store** — reading the code showed nothing wrong, + and in both `load_whole_work` would have silently under-returned. The third came from reading + the consumer instead of the contract's role *enumeration*. **The counted check found what the + careful read did not**, which is the same lesson as this morning's trim. +- **2026-08-07T13:45 — my validator failed healthy data, and the tempting repair was to "fix" the + data.** First version asserted every division title appears on its start line; Mauss's titles are + editorial and after-the-reply's are synthetic `§` labels, so it reported FAILED for six sound + sources. Had I trusted it, the next move would have been to edit the reading indices to satisfy + the checker — a §V Tier-3 violation reached by way of an instrument bug. Fixed by making the + validator declare *per index* whether titles are verbatim, and report untestable sources as an + **open gap** rather than a pass. **PASS-BUT-FALSELY has a sibling: FAIL-BUT-FALSELY, and it is + more dangerous because it prompts action on the data.** + +## What held + +- **Substrate-checked every item reported as outstanding**, per the wake skill's + disposition-clause rule. Four checks, four confirmations: MEMORY.md is 20,413 B (the trim is + genuinely unbuilt); `engine/` holds no navigation module and the four N0 primitives appear only + in docs (N1 genuinely unbuilt); `REVIEWED.md` contains zero `PENDING-111` (the ruling has + genuinely not arrived); the N0 contract and the Alexander reading index both exist at the paths + the wrap named. +- **Reported a closure the ledger had left open.** Yesterday's open horizon — `fidelity.py` citing + REVIEWED-87 as ratified while `REVIEWED.md` held zero occurrences — is closed; the record is + now placed (2 occurrences). Carrying a stale open-horizon forward would have cost the steward a + re-check. + +## Open horizons + +- **[banked, from yesterday's wrap] The literal question is unanswered and is the session's real + frontier:** are there other manifested works where the *printed* artifact carries semantics the + conversion cannot express, and can that be checked without owning every book? If it cannot, the + limit belongs in `RETRIEVAL_BLINDNESS` or beside it — **stated rather than discovered.** +- **[unresolved] PENDING-111 has no ruling** (verified absent from `REVIEWED.md`). It sets the + V-track course; it does **not** gate N1. +- **[unresolved, dateless] PENDING-109's kind-(a) census and PENDING-104's design brief still + need dates, not "later."** Named at yesterday's wrap; unchanged. +- **[watch] The steward-named drift is the one N1 is most exposed to** — + *measured-the-artifact-correctly-and-misread-what-it-was-for.* N1's whole discipline is + building the tree from the reading index rather than from heading text I already parsed: the + headings are the artifact I measured correctly and would misread the purpose of. + +## Confidence to recalibrate + +- The wake briefing's factual claims are **verified against substrate, not inferred** — each of + the four above was a direct file/grep check run this session. What is *inherited* rather than + re-verified: everything in yesterday's session memory about what landed (`27b79ca`, the 0/22 + measurement, the 81/114/54 asterisk counts). Those were measured yesterday, not today. + +## Authorization moves + +## Sub-agent dialogues + +## Bypasses