diff --git a/claude/memory/MEMORY.md b/claude/memory/MEMORY.md index b38f94d..68d6e87 100644 --- a/claude/memory/MEMORY.md +++ b/claude/memory/MEMORY.md @@ -65,18 +65,19 @@ permalink: claude-memory/memory - [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.** +- [Obsidian vault — from archive to practice](project-obsidian-vault-practice.md) — canonical vault tracker. **Frontmatter Spec v1.0.0 ratified + 2 passes applied** (511 edits / 268 files, pushed). ⚠ The vault is **NOT a git repo** — it mirrors to `~/_Dev/david-root-and-branch-vault-git`. **The actual goal — a capture workflow — has not been started**; don't let the frontmatter tail stand in for it. - 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 -> ⏸ **DEFERRED BY THE STEWARD to the morning of 2026-08-20** (said 2026-08-19 ~11:15 CEST). The fence work below stands untouched and in its ruled order, because **two other pieces of work come first and may reshape it** — the steward's own stated reason, so this is *sequencing, not drift*. ⚠ **The two are not yet named — name them here once they are**, because "what could reshape this" IS the dependency, and a deferral whose dependency cannot be named is the shape `feedback-close-thoroughly-no-frequent-deferrals` warns about. Nothing in (A)/(B)/(C) has begun, so REVIEWED-122's binding order (answer key first, alone, hash recorded, before any implementation) is unharmed by the delay. ⚠ **Cost carried with eyes open:** the citation exposure behind PENDING-131 (c) has been live since 2026-08-10. -> 🔑 **PULLING THREAD — THE FENCE, and the answer key behind it.** Steward stopped 2026-08-17 tired, with three live options and no pick made. **(A) MOVE 2** — disposition the 25 line-addressable blockquote runs: **closable in ONE SITTING, needs no ruling**, and it is the fence itself rather than the scaffolding. **(C) MOVE 1** — fence the citation *at emission*, engine-side under D-1, covering all **532 spans** including sources added later; a build direction, carrying ADDENDUM 4's own control requirement (controls from **each structural class present**, `NOT ESTABLISHED` rather than zero where a class has none — four of that census's five defects escaped Mauss-only controls). **(B) THE ANSWER KEY** — session-sized, gates all of PENDING-142. *Recommendation absent a preference: (A), then (C). (B) when there is a full session.* +> 🔑 **PULLING THREAD — THE FENCE. The deferral has EXPIRED: 2026-08-20 is the morning it named, and both shaping pieces have run.** ⚠ **The two, finally named** (this block carried "not yet named" for a day): **(1) the Obsidian vault spec** — ran all the way to a ratified v1.0.0 and two applied passes; **(2) Trial 09, the jester arm** — **PREPARED AND HELD, never executed.** One reshaping input arrived, one did not; whether either reshapes the fence is a steward call the record cannot make. Nothing in (A)/(B)/(C) has begun, so REVIEWED-122's binding order (answer key first, alone, hash recorded, before any implementation) is unharmed. ⚠ **Cost carried with eyes open:** the citation exposure behind PENDING-131 (c) has been live since 2026-08-10. +> **(A) MOVE 2** — disposition the 25 line-addressable blockquote runs: **closable in ONE SITTING, needs no ruling**, and it is the fence itself rather than the scaffolding. **(C) MOVE 1** — fence the citation *at emission*, engine-side under D-1, all **532 spans** incl. sources added later; carries ADDENDUM 4's control requirement (controls from **each structural class present**, `NOT ESTABLISHED` rather than zero where a class has none — four of that census's five defects escaped Mauss-only controls). **(B) THE ANSWER KEY** — session-sized, gates all of PENDING-142. *Recommendation absent a preference: (A), then (C).* > ⚠ **THE KEY'S SPEC CHANGED BEFORE IT WAS DRAFTED — PENDING-146.** REVIEWED-122 cond. 1 says "per-item". **If "item" resolves to *id*, the key reproduces the very unit that caused Class E and grades green.** Key it on `##` **BLOCKS**, recording per block whether a live `Awaiting:` exists **and at what tag** (ADD-2 §5 re-tags (c) `[PROPOSAL]` inside a `[HARDENING]` row). Caught only because the key was not yet written. -> ⚠ **CLASS E (PENDING-146): the open list's unit is the `id`; the decidable unit is the `##` BLOCK.** Upstream of everything PENDING-142 reaches. Worse than a wrong verdict **because the verdict is right** — (d) reports PENDING-131 OPEN, correctly, and still hides that it carries four separate asks. **`governance_state()` shows ZERO rows for `131`.** -> ⚠ **FOUR blocks under PENDING-131 carry a live `Awaiting:`** — parent, ADD-1, ADD-2, ADD-4 — **not the two I reported.** The jurist ruled on my testimony *and disclosed it had not verified ADD-1*; running that check overturned my count. The disclosure is what made it findable. -> ⚠ **REPORT AT EVERY WAKE — N-now = 47/84, AND IT WENT DOWN** (60 on 08-17, 61 on 08-18, **47 on 08-19**). **The counter is a 30-DAY ROLLING WINDOW, not a cumulative count** — `governance-drift-check.py` globs `~/.claude/projects/-Users-davidglidden/*.jsonl`, whose oldest file is *exactly* 30 d old (`cleanupPeriodDays` default). At the observed ~1 session/day it converges to ~30, so **`transcripts 84` can very likely never fire**, and every "N remaining" report — including mine — was a **false countdown**. ⚠ **The trial's evidence is PERISHABLE: only 13 post-intervention transcripts survive, and the 2026-08-07 cohort is deleted 2026-09-06.** Ladder still FROZEN generally (cond. 1); 4 rows queued in PENDING-141. **Filed PENDING-147; needs a steward/jurist decision.** -> ✅ **Filed today: PENDING-142/143/144/145/146; REVIEWED-122 + REVIEWED-123 executed; three transcription errors in the placed records corrected by the steward.** Wake detector rebuilt (4 defects, the scoped one was not the cause); 16 trackers stamped superseded; 39 files' frontmatter repaired; deferral checker was skipping the register at 546 KB. All pushed `7f891de`. +> ⚠ **CLASS E (PENDING-146): the open list's unit is the `id`; the decidable unit is the `##` BLOCK.** Upstream of everything PENDING-142 reaches. Worse than a wrong verdict **because the verdict is right** — (d) reports PENDING-131 OPEN, correctly, and still hides that it carries four separate asks; **`governance_state()` shows ZERO rows for `131`.** ⚠ **FOUR blocks under PENDING-131 carry a live `Awaiting:`** — parent, ADD-1, ADD-2, ADD-4 — **not the two I reported**; the jurist ruled on my testimony *and disclosed it had not verified ADD-1*, and that disclosure is what made it findable. +> ⚠ **REPORT AT EVERY WAKE — N-now = 47/84, AND IT WENT DOWN** (60 on 08-17, 61 on 08-18, **47 on 08-19**). **A 30-DAY ROLLING WINDOW, not a cumulative count** — the checker globs a directory the harness prunes at 30 d, so at ~1 session/day it converges to ~30 and **`transcripts 84` very likely never fires**; every "N remaining" report was a **false countdown**. Ladder still FROZEN generally (REVIEWED-123 cond. 1); 4 rows queued in PENDING-141. **PENDING-147 filed; needs a steward/jurist decision.** ✅ **Leg (i) DISCHARGED 2026-08-19** — 47 transcripts copied to `~/.claude-transcript-archive/raw/` outside the pruned tree, **46/47 sha256-verified by readback**, the 47th recorded as a snapshot. The evidence no longer expires; the counter still cannot fire. +> ⚠ **TRIAL 09 IS HELD, NOT ABANDONED — and the hold IS the finding.** Prompt hashed, corpus built (11 docs / 166,088 words), exclusion hash-list **PASSED** — and the run was blocked anyway: `PENDING.md:92-96`, **inside an open item the wake surfaces every session**, names Fault Lines 5/3/4 with their substance, and FL5's proposition sits in `~/CLAUDE.md` Constraint 6 **stated more sharply than the ground truth**. Under the design's own rule **every STRONG grade would be an ECHO.** The exclusion was verified at the wrong granularity — absence of the *file*, not of the *content*. **Resume at the leak, not at the run.** +> ⚠ **2026-08-19 DIED UNWRAPPED** (`Request timed out` 21:05, host down overnight). Its record was **reconstructed 2026-08-20 from the transcript** — pointer below. The vault work is real and pushed, and it left **one defect of ours**: `see_canonical: "[[Index]]"` resolves to the wrong note or none — 1 of the 3 §3 pointers. The vault tail is small and **NOT urgent**. -- [Session 2026-08-17 — the instruments audited themselves and lost](session-2026-08-17-the-instruments-audited-themselves-and-lost.md) — every instrument examined was wrong; two of the wrongs were made by the hand fixing the others. **Read the CODA for the revised resumption point.** **LITERAL Q: across the last ~10 sessions, when a defect in the executor's own instrument was found, WHO found it — a mechanism firing unbidden, the executor re-checking, the jurist, or the steward?** Mostly-executor ⇒ the practice works and the mechanisms are decorative; mostly-jurist/steward ⇒ every "verified" between reviews does less work than it appears to. +- [Session 2026-08-19 — the vault got a spec, and the links were already broken](session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken.md) — **RECONSTRUCTED, not wrapped.** Vault spec v1.0.0 + two passes; Trial 09 prepared and HELD; transcript archive discharged. · [Session 2026-08-17](session-2026-08-17-the-instruments-audited-themselves-and-lost.md) — every instrument examined was wrong; two of the wrongs made by the hand fixing the others. **LITERAL Q, STILL OPEN: across the last ~10 sessions, when a defect in the executor's own instrument was found, WHO found it — a mechanism firing unbidden, the executor re-checking, the jurist, or the steward?** Mostly-executor ⇒ the practice works and the mechanisms are decorative; mostly-jurist/steward ⇒ every "verified" between reviews does less work than it appears to. **08-19 adds four data points that do NOT point one way** (2 executor, 1 jurist, 1 steward) — and the `[[Index]]` defect was found by none of them, surfacing only because the crash forced a reconstruction. ## 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). diff --git a/claude/memory/project-obsidian-vault-practice.md b/claude/memory/project-obsidian-vault-practice.md new file mode 100644 index 0000000..e6af950 --- /dev/null +++ b/claude/memory/project-obsidian-vault-practice.md @@ -0,0 +1,105 @@ +--- +name: project-obsidian-vault-practice +description: "Canonical tracker for the Obsidian vault workstream — turning root-and-branch from an archive into a practice, beginning with a ratified Frontmatter Specification v1.0.0. Holds the operational facts (the vault is NOT a git repo; it mirrors to ~/_Dev/david-root-and-branch-vault-git), the applied-pass record, and the open tail. Read before any vault work." +metadata: + node_type: memory + type: project + modified: 2026-08-20T09:08:17Z +--- + +# Obsidian vault — from archive to practice + +**Steward's goal, stated 2026-08-19:** *"optimizing my Obsidian usage and setting up a regular +workflow to have the important parts of our work captured there… My instinct is that I could +make better use of it. I want to create an Obsidian 'spec' like we have done for all of our +serious projects."* + +**The tool boundary, from the steward, so it is not re-elicited:** + +| tool | role | +|---|---| +| **Drafts.app** | scratchpad; ephemeral text, or text destined elsewhere. Kept essentially empty at the end of every week. | +| **Notes.app** (Mac/iOS) | confidential material, as locked notes. | +| **Obsidian** (`root-and-branch`) | notes that must not be lost. *"So far, a sort of archive."* | + +**Scope note:** the vault is *also* the Compass — the steward's personal operating system. +`~/CLAUDE.md` says: reference it, never write to it. **That standing rule was suspended for this +workstream by explicit authorization** (`"I authorize the Compass ones too"`, 2026-08-19), for +the named mechanical passes only. It is not a general licence. + +--- + +## Operational facts — do not re-derive + +- **The vault folder is NOT a git repository.** `~/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch` + has no `.git`. +- **It mirrors to `~/_Dev/david-root-and-branch-vault-git`** (remote: + `git.skemantix.com/David/david-root-and-branch-vault-git`). An automated job commits + `Mirror sync ` on its own schedule — so steward hand-edits land in git without + anyone asking. +- **Working reports and machine-readable changelogs live in `~/dotfiles/obsidian/`**: + `vault-frontmatter-inventory-2026-08-19.md`, `vault-frontmatter-pass1-followups-2026-08-19.md`, + `vault-governance-block-round2-2026-08-19.md`, `vault-round3-archive-and-relations-2026-08-19.md`, + plus `fm_inventory.json`, `pass2-changelog.json`, `pass2-flags.json`. +- **The spec is in the vault, not in dotfiles:** `00. Compass/Frontmatter Specification.md`. +- ⚠ **`verify-before-compose.sh` fires on `Write|Edit`, and this work runs through Bash.** A vault + hook wired the same way would not fire on how the work actually runs. Noted 2026-08-19, unfixed. + +--- + +## Chronological log + +### 2026-08-19 — census, spec, two passes (session died unwrapped; see [[session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken]]) + +- **Four read-only census rounds before any edit.** 2,519 notes parsed, no sampling. 400 distinct + keys over 5,867 instances; **68% of notes have no frontmatter at all.** 66 keys consumed, 29 + written-by-template-and-read-by-nothing, 305 orphaned. +- **Round 2/3 findings that changed the design:** `owner` was one job in three spellings (cut); + `canonical` was **one name doing two jobs** (self-descriptive vs pointer-elsewhere); the + hypothesis that pointer-form marks archival **tested negative** — 65 of 67 pointers sit outside + `99. Archive`. What actually distinguishes Archive is **decay in practice, declaration in name + only**: `status: archived` on 2.3% of it, 90% receiving no wikilink from any live note, and **no + archival policy note anywhere in the vault.** +- **Frontmatter Specification v1.0.0 ratified** and placed in `00. Compass/`. First principle: + *storage and lifecycle are orthogonal* — the folder says nothing; only `status:` declares. +- **Pass 1 and pass 2 applied and pushed.** `949ff14` `31d8e1f` `3d47bd2` `00e741d` `4c364e9` + `fab8fb0` (**511 edits / 268 files**) `aee615d`. +- **End state:** `owner` 0 · `change_log` 0 · `domain` 0 · `revisions` 90 · `canonical` 159 · + `see_canonical` 3 · `confidence` 9 · `links` 8 kept-and-flagged. **YAML parse errors 16, + unchanged.** +- **Two executor tooling defects caught before applying** (§6 handler covered block-style lists + only — would have done 29 notes of 90 and reported success; §7 logged a retirement it did not + perform). Both found by **re-censusing an applied copy, not by reading the changelog.** +- **The jurist corrected its own "88 recoverable" reading**: those were self-descriptive values + resolving to themselves by construction. **Only 3 of 66 pointers were genuinely recoverable.** + +### 2026-08-20 — the steward opened Obsidian, and the links were already broken + +Checked against the mirror's history, not inferred. **Coffee log** (`brew_temp: [[94–96°C]]`) and +**homeopathy** (`[[Ignatia amara — The Medicine of the Sigh]]` naming a *title* where the file is +`Ignatia amara.md`) are both **pre-existing**; pass 2 never touched the homeopathy note and +touched only `linked_note`→`linked_daily_note` in the coffee log. + +**But the passes are not innocent.** §7 flattened nested `links.parents` — inert YAML Obsidian did +not render — into top-level `parents/children/peers`, which **made 194 already-unresolvable targets +render as clickable-and-broken in the properties UI.** The breakage was surfaced, not created. The +pass report did not predict this, and it should have. + +--- + +## Current state — OPEN + +1. ⚠ **A defect of ours: `see_canonical: "[[Index]]"`** in `09. Atlas of Roots/00. Atlas of Roots — Index.md`, + converted from `canonical: 09. Atlas of Roots/index.md`, **a file that does not exist**. The only + `Index.md` notes are `08. Notes/Tools & Workflow/Index.md` and a Catalan `00. Index/index.md`. + **It resolves to the wrong note or none — 1 of the 3 pointers §3 wrote.** Same basename flaw the + jurist corrected as a *number* that afternoon, landed in an applied edit as a *mechanism*. +2. **194 unresolvable `related` targets**, left bare and flagged by §6. +3. **63 residual `canonical` pointers** — each a note that named an authority for itself and lost + track of where it lives. Steward's eyes wanted here most: this is the population `canonical` was + actually describing, invisible while 157 path-strings sat behind one field name. +4. **16 YAML parse errors**, unchanged across both passes — never in scope, never addressed. +5. **The actual goal has not been started.** Everything so far is hygiene on an archive. *"A regular + workflow to have the important parts of our work captured there"* — the capture practice, the + thing that would make the vault a practice rather than a tidier archive — **has not been + designed.** Do not let the frontmatter tail stand in for it. diff --git a/claude/memory/session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken.md b/claude/memory/session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken.md new file mode 100644 index 0000000..3ee71c5 --- /dev/null +++ b/claude/memory/session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken.md @@ -0,0 +1,213 @@ +--- +name: session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken +description: "RECONSTRUCTED 2026-08-20 from the transcript — this session died unwrapped. The steward deferred the fence work and named two pieces that would come first: the Obsidian vault spec (ran to a ratified v1.0.0 and two applied passes, 511 edits over 268 files) and Trial 09, the jester arm (PREPARED AND HELD, never run — its ground truth leaks into PENDING.md:92-96, so every STRONG grade would be an ECHO). Transcript-archive leg (i) discharged: 47 jsonl preserved outside the pruned tree, 46/47 sha256-verified. PENDING-147 filed; N-now corrected 61 to 47 as a rolling window. PULLING THREAD: the fence, unblocked — the deferral has expired and both shaping pieces have run their course." +metadata: + node_type: memory + type: project + originSessionId: 0883c73d-9091-4508-aa31-592ddff5240a + modified: 2026-08-20T09:07:34Z +--- + +# Session 2026-08-19 — the vault got a spec, and the links it surfaced were already broken + +> ⚠ **THIS RECORD IS A RECONSTRUCTION, NOT A WRAP.** The session ran 2026-08-18T16:35Z → +> 2026-08-19T19:05Z and ended in `Request timed out` after a 513-second turn, with the steward's +> last message unanswered. The host or app then went down overnight — the transcript's final +> write is 01:53 local with only untimestamped metadata rows (`last-prompt`, `mode`, +> `ai-title`), the shape of a flush-on-shutdown, and the steward was asked to log in again the +> next morning to an empty terminal. **No `/wrap-up` ran.** This was written 2026-08-20 by +> reading `0883c73d-9091-4508-aa31-592ddff5240a.jsonl` and the git record. Everything below is +> sourced from those; nothing is recalled. Where the transcript is silent, this record is silent. + +## PAST — what moved, and why + +**The steward deferred the fence work, and named a reason.** 2026-08-19 ~11:15 CEST: *"I'd +actually like to defer this work until tomorrow morning because I have two other things that I +would like to do with you that could very well shape this very work."* MEMORY.md recorded the +deferral but flagged that **the two were never named**. They are: + +1. **Optimising the Obsidian practice**, beginning from a vault *spec* of the kind the serious + projects have. Steward's own framing of the tool boundary: **Drafts.app** is the scratchpad, + emptied weekly; **Notes.app** holds confidential material as locked notes; **Obsidian** is + where notes go that must not be lost — *"so far, a sort of archive… my instinct is that I + could make better use of it."* +2. **Trial 09 — the jester arm** (jurist-prepared 2026-08-17, revised 2026-08-19): proximity to + the court, no standing, questions only. A new species, not a variant of 05–08; runs + independently of the Control Kernel, uses no control document, so D-2 does not gate it. + +**First, though: "preserve the transcripts, then we shift."** PENDING-147 leg (i) discharged +under that authorization. All 47 `*.jsonl` in `~/.claude/projects/-Users-davidglidden/` copied +to `~/.claude-transcript-archive/raw/`, outside the tree the harness prunes at 30 days. **114 MB, +span 2026-07-20 → 2026-08-19. Verified by readback rather than exit code: 46/47 confirmed +sha256-identical.** The 47th was the live session's own transcript, still being appended at copy +time — recorded in `MANIFEST.json` as a **snapshot**, not silently counted as verified. + +**PENDING-147 itself was filed that morning**, `[HARDENING]`, out of the standing N-now +obligation rather than out of vigilance: re-measuring instead of relaying yesterday's figure +gave **47, not 61**. `governance-drift-check.py` globs a directory the harness prunes at 30 +days, so the counter is a **rolling window, not a cumulative count** — at ~1 session/day it +converges to ~30 and `transcripts 84` very likely never fires. Every "N remaining" report, +including the executor's own, was a false countdown. + +**Trial 09 was prepared and then HELD — it has never been executed.** Prompt file written and +hashed, corpus manifest built (**11 documents, 166,088 words**), exclusion hash-list verified. +The blocker is pre-run and structural: + +> `PENDING.md:92-96` — **inside an open item the wake surfaces every session** — names Fault +> Lines 5, 3 and 4 by number, each with its substance in a parenthetical, plus OP-CN-01. And +> Fault Line 5's proposition sits in `~/CLAUDE.md` Constraint 6, **stated more sharply than in +> the ground truth itself**. Under the design's own rule, every STRONG grade would therefore be +> an ECHO. + +The hash-list check *passed* — the excluded documents are absent **as documents**. The 2026-08-19 +revision's content scan was scoped to REVIEWED.md and PENDING.md and would have caught the +PENDING.md leak. **The exclusion was verified at the wrong granularity: absence of the file, not +absence of the content.** That is the finding, and it is why the trial did not run. + +## The Obsidian work — census, spec, two passes + +**Four read-only census rounds before a single edit.** Every `.md` parsed — **2,519 files, no +sampling** — parser carrying four controls. **400 distinct keys over 5,867 instances; 68% of +notes have no frontmatter at all.** Consumption cross-referenced against 357 dataview/tasks +blocks, 23 templates and all 39 `.obsidian` configs: 66 keys consumed (62% of instances), 29 +written-by-template-and-read-by-nothing, 305 orphaned. + +A **method correction is recorded in the report itself**: the first template pass matched key +names anywhere in a file containing Templater syntax, which tests whether the *word occurs in +prose*, not whether a template *writes the key*. Redone. + +**Rounds 2 and 3 were the jurist's doing, and they changed the answer twice.** The stop +conditions held — `tool`/`tools` was not resolved by the suggested default because inspection +gave no reason. Two fields investigated, two came back larger than their counts suggested, so the +jurist required the same treatment for the other four governance-block fields before any decision: +*"that assumption is exactly what got corrected twice already today."* + +- `owner` (153) — **one job, three spellings** (`David Glidden` 136, `David` 12, + `David F. Glidden` 5), zero discrimination. Cut. +- `canonical` (159) — **one name, two jobs**: self-descriptive (a note naming its own path) and + pointer-elsewhere (a note declaring its live version is somewhere else). +- The archival hypothesis **tested negative and that was the headline**: 65 of the 67 pointers sit + **outside** `99. Archive`. If *"the live version is elsewhere"* were functioning as an archival + marker they would cluster inside it; they do the opposite. **65 notes in the live vault declare + their live version is elsewhere and not one was moved.** The declaration exists and has never + been acted on. +- What *does* distinguish Archive: frontmatter 11% vs 46% outside; `status: archived` on **25 + notes, 2.3%** of it; **90% (965) receive no wikilink from any live note**. Seven notes inside + Archive still declare themselves `Active`/`active`, in two capitalisations. **No archival + policy note exists anywhere in the vault.** The operating criterion is **decay in practice, + declaration in name only.** + +**The spec was then ratified and applied.** `00. Compass/Frontmatter Specification.md`, **v1.0.0**, +drawn from the four-round census plus a reading of AldineXXI's Frontmatter specification (ARC) +and the Chamber Library specification. Its first design principle: *storage and lifecycle are +orthogonal* — which folder a note sits in says nothing about whether it is current; only +`status:` declares that. Placement in `00. Compass/` root was **confirmed by inspection, not +assumed** (that root already holds Vault Configuration Map, Vault Index, Pattern Index, A Guide +to Your Vault; Foundations' Protocols and Annexes hold personal practice). The spec's own +frontmatter conforms to itself. + +### Operational fact worth not re-deriving + +**The vault folder is not a git repository.** It mirrors to `~/_Dev/david-root-and-branch-vault-git` +(remote `git.skemantix.com/David/david-root-and-branch-vault-git`), and an automated job commits +`Mirror sync ` on its own schedule. Looking for `.git` inside the vault finds nothing. + +### The commits + +`949ff14` §1 spellings · `31d8e1f` §2 type instability · `3d47bd2` §3 template YAML · +`00e741d` the 12 held `00. Compass` edits (steward-authorized separately: *"I authorize the +Compass ones too"*) · `4c364e9` the spec · `fab8fb0` **pass 2 — 511 edits across 268 files** · +`aee615d` `domain`→`domains` per the jurist's ruling that a field always list-shaped should not +carry a singular name. + +**Pass 2 was one commit, not seven, and the reason is recorded**: 138 of the 268 files carry edits +from more than one section, so per-section commits would have had titles that overstate what they +contain *and* would not have given a per-section revert. An earlier attempt at per-section commits +was abandoned mid-flight for exactly that — §3 got none and §5 got one file, because the first +commit had already claimed the shared files. + +**End state:** `owner` 0 · `change_log` 0 · `domain` 0 · `revisions` 90 · `canonical` 159 +(93 boolean, 66 string) · `see_canonical` 3 · `confidence` 9 · `parents` 69 / `children` 36 / +`peers` 56 · `links` 8 kept-and-flagged. **YAML parse errors 16, unchanged across both passes.** + +## What was corrected — and by whom + +**Two defects in the executor's own tooling, caught before applying, both by re-censusing an +applied copy rather than reading the changelog:** + +1. **The §6 handler covered block-style lists only.** 82 of 121 `related` instances are inline + flow lists. It would have edited **29 notes of 90** and reported success. +2. **The §7 handler logged "links.canonical retired" without retiring it**, because it only + rewrote the block when the flatten produced output lines. + +**The jurist corrected itself, in the open.** Round 2's "88 basename-resolvable, 63 not" was +**tautological on one side**: the 88 were overwhelmingly the *self-descriptive* values, which +resolve to their own filename by construction. The real pointer population (66) was almost +entirely coincident with the unresolvable set — **only 3 of 66 were genuinely recoverable.** The +jurist named this as a wrong read rather than an imprecise one, and refused to let it pass +quietly in a changelog. The executor's share: the "88" came from *its* round-2 report, presented +as a resolvability tier without noticing one tier was measuring "does this note exist." + +**The steward caught the last one by opening Obsidian**, as asked. Unanswered message, 20:57 +CEST, the one the timeout swallowed: + +> *"coffee log link doesn't work, neither in homeopathy. in Atlas of Roots, i hand corrected the +> context rot guidlines link. otherwose the children point to pages not yet created or that are +> mislabled"* + +## FUTURE — what pulls + +**The fence work is now unblocked by its own terms.** The deferral named 2026-08-20 and named two +pieces that would come first. One ran to a ratified spec; one is held, un-run, with a live +blocking finding. **Whether either reshapes the fence is a steward call the record cannot make.** + +**Trial 09 resumes at the leak, not at the run.** The prompt is written and hashed, the corpus is +built. What is owed first is a decision about `PENDING.md:92-96` and `~/CLAUDE.md` Constraint 6 — +the ground truth is inside the proximity corpus by construction, and no re-run fixes that. + +**The vault has a tail, and none of it is urgent.** 194 unresolvable `related` targets left bare +and flagged; **63 residual `canonical` pointers** — each a note that named an authority for +itself and lost track of where it lives, invisible while 157 path-strings sat behind one field +name. Plus the defect in the CODA below. + +## CODA — 2026-08-20, checking the steward's three broken links against git + +All three were checked against the mirror's history rather than inferred. **The broken links are +pre-existing vault debt, not regressions from the passes** — but the passes are not innocent +either. + +- **Coffee log** — `brew_temp: [[94–96°C]]`, a temperature wrapped as a wikilink. Present since + the 2025-09-17 mirror sync. Pass 2 touched only `linked_note` → `linked_daily_note` in that + file. **Not ours.** +- **Homeopathy** (`Nux vomica`) — `links.related` targets `[[Ignatia amara — The Medicine of the + Sigh]]` while the file is `Ignatia amara.md`. **The link names the note's `title`, not its + filename**, which is what Obsidian resolves on. That note was one of the 8 kept-and-flagged §7 + cases; its last commit is 2025-11-02. **Pass 2 never touched it.** +- **Atlas of Roots** — pass 2 §7 flattened `links:` into top-level `parents/children/peers`, + carrying every string verbatim, including the already-broken + `[[00. Compass/00a. Foundations/Context Rot Guardrails Charter]]`. **Relocated, not authored.** + The steward fixed the path by hand and also renamed the target file, which had been literally + named `*Context Rot Guardrails Charter.md` with a leading asterisk. Both are captured in + `e879c82`, an automated mirror sync at 21:18 — **13 minutes after the timeout.** + +**The honest finding is not "not our fault."** Nested `links.parents` was inert YAML that Obsidian +did not render as links. Flattening it to top level made **194 already-unresolvable targets render +as clickable-and-broken** in the properties UI. The passes did not create the breakage; they +**surfaced** it. That is arguably the spec working, but it changed what the steward sees, and the +pass report did not predict it. + +**One genuine defect of the executor's own, found only in this reconstruction.** Of the 3 +`see_canonical` pointers §3 wrote, Atlas of Roots got `see_canonical: "[[Index]]"`, converted from +`canonical: 09. Atlas of Roots/index.md` — **a file that does not exist.** The only `Index.md` +notes in the vault are `08. Notes/Tools & Workflow/Index.md` and a Catalan `00. Index/index.md`. +**It resolves to the wrong note or to none. One of three is wrong.** This is the same +basename-resolution flaw the jurist corrected in the abstract that afternoon, landed in an +applied edit — corrected as a *number* in the report, not as a *mechanism* in the tool. + +**Still open from 2026-08-17, and this session did not answer it:** across the last ~10 sessions, +when a defect in the executor's own instrument was found, WHO found it — a mechanism firing +unbidden, the executor re-checking, the jurist, or the steward? **This session adds four data +points and they do not point one way:** two tooling defects found by the executor re-censusing; +one number corrected by the jurist; one broken-link class found by the steward opening the app. +The `[[Index]]` defect was found by neither — it surfaced a day later, in a reconstruction that +only happened because the session crashed.