The chamber-library CLAUDE.md trim is committed and pushed (c7c30ac, 54,129 -> 22,530 chars, both remotes current), so the one intentionally dirty file from ADDENDUM 1 is now closed. Carried to the next session on the steward's direction, and deliberately NOT filed as a PENDING item — the moratorium to 2026-09-15 is undecided and the instruction was "attend to it", which is scheduling rather than filing: ~/.claude/agents is not under version control. 51 hand-edited files, 0 tracked, not a symlink into dotfiles. Every other governed surface in this system is tracked, and this one holds EXECUTABLE CONFIGURATION — an agent definition determines what a delegated sub-agent is told to do — so an untracked, unattributable edit there is a governance surface rather than a convenience. It was found by accident while /doctor was looking for name collisions, and no instrument was positioned to notice it. The 15 renames still have no history, so ADDENDUM 1's mapping table remains the only undo; track the directory before anything else edits it. Open questions recorded, none answered. Also logged: a fourteenth instrument error, and this one broke a discipline the repository documents. I reported "chamber-library pushed" having pushed only origin; the github mirror was 9 commits behind and stayed behind through the whole wrap while the record said clean. The repo's own CLAUDE.md says push to both. Caught by verifying a push whose && echo had not fired, not by any control. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vKkg2EJF1rGwdFdBogwqx
314 lines
22 KiB
Markdown
314 lines
22 KiB
Markdown
---
|
||
name: Session 2026-09-01 — the gate that should have existed, and twelve errors nobody caught alone
|
||
description: "A day that began as a wake and became the quagmire it then diagnosed: a false-positive tripwire led to PENDING-178, a queueing diagnosis of the 62-item backlog, a moratorium proposal, and the 30-day-overdue FIX-lane check-in — which unblocked REVIEWED-67's per-conversion typography gate, 42 days authorized and unbuilt. Built it in an hour; it ran the corpus's first typography byte-census and found what no existing gate can see: docling renders 'tradition' as ' tradition ' . at 4,608 sites in Brown, word-boundary damage below body_word_conservation's unit. Poppler recovers all of it, so the defect is the front-end's, not the class's. Then PENDING-137 ruled as REVIEWED-133 and executed. ZERO new register items beyond -178. TWELVE instrument errors of mine, none caught by my own first pass. PULLING THREAD: the fr cell's last two steps — PENDING-134's disclosure, then ratio_A_to_B re-derived once."
|
||
type: project
|
||
metadata:
|
||
node_type: memory
|
||
type: project
|
||
modified: 2026-09-01
|
||
---
|
||
|
||
# Session 2026-09-01 — the gate that should have existed
|
||
|
||
⚠ **One session, spanning past midnight; wrapped 2026-09-02.** Dated by the work, not the wrap.
|
||
Only one session ran on 2026-09-01 — unlike 08-31, which has two live records (PENDING-174).
|
||
|
||
## PAST — what moved, and why
|
||
|
||
### The wake found a false positive, and pulling it found a real defect
|
||
|
||
The digest reported `LAST SESSION — NO HUMAN TURN … That session ran unattended. PENDING-172.`
|
||
**Opened the transcript instead of relaying it.** `435f1368` was a **Tarbuckle mumble** —
|
||
statusline-driven, one programmatic prompt, one line out. Unattended *by design*. Control (c)'s
|
||
predicate was true and its inference wrong for a class PENDING-172 never contemplated.
|
||
|
||
Pulling it: the ladder trial's counter globs one project directory that **also receives one
|
||
transcript per mumble**. 54 files = 43 real sessions + **11 mumbles**. → **PENDING-178**
|
||
`[HARDENING]`, the day's only new item. Distinct from PENDING-147 (window, perishability); this
|
||
is the **unit**, and it runs opposite: -147 argued the `>=84` trigger was probably unsatisfiable,
|
||
and the mumble makes it satisfiable **for the wrong reason**.
|
||
|
||
⚠ **Recorded in -178 as a DECLINED finding with its argument**, so it is not rediscovered as a
|
||
defect: `TRANSCRIPTS` is scoped to 1 of **8** project dirs (159 transcripts, **115 mumbles, 72%**),
|
||
which is PENDING-171's predicate class at a second site — **and benign, because 43 of the 44 real
|
||
sessions ever are in the scoped dir.** "Sees 34%" is true of files and misleading about sessions.
|
||
|
||
### The quagmire, diagnosed as a queue
|
||
|
||
Steward: *"how much longer do we find ourselves in limbo?"* **Filing is cheap for me and ruling is
|
||
expensive for him** — unbounded arrivals, one server, steady state 62 open items. The apparatus
|
||
applies τὸ πρόσφορον to everything except itself; **nothing prices the steward's attention.**
|
||
Proposed: a **filing moratorium to 2026-09-15** (detection continues, filing stops), a **hard cap
|
||
on open items**, and one **class pass** over the 62. Falsifier: if the register grows anyway, wrong
|
||
diagnosis. **Jurist accepted and bound itself to it**, and corrected the success criterion —
|
||
*a flat register with zero graduated texts is a FAILED moratorium, not a passed one.*
|
||
|
||
### The FIX-lane check-in — 30 days overdue, held, and it paid immediately
|
||
|
||
**Item 1 EXTENDED PROVISIONAL:** the lane has been exercised by the executor **exactly once in
|
||
thirty days**; n=1 settles nothing either way. The 2026-08-08 entry **ratified on merits, procedure
|
||
recorded defective** (classified under a lapsed authorization) and **explicitly not precedent**.
|
||
Trigger re-based from time to **use** (5 classifications, backstop 2026-12-01).
|
||
⚠ **Half of it is not machine-checkable** — the schema's vocabulary is `glob|path-exists|date|manual`
|
||
and a use count is not expressible. **No proxy invented**; the file's own comment says proxies are
|
||
what failed here. **Item 2 NOT DISCHARGED** — answered with two fresh instances.
|
||
|
||
### 🔑 THE TYPOGRAPHY GATE — the day's real work
|
||
|
||
The check-in unblocked **REVIEWED-67's forward item, unconditioned, 42 days unbuilt**, whose absence
|
||
is the measured cause of `verify_conversion` returning **5/5 PASS on word-damaged output**.
|
||
|
||
**Built `scripts/verify_typography.py`** — 9 controls both directions, written before first
|
||
execution. Converter-agnostic **by construction**: it names no converter and no defect in advance,
|
||
censuses typographic classes in an **independently-formed witness** (`pdftotext`/`pandoc`, never the
|
||
front-end under test), and reports retention. `V-SCAN`→ABSTAIN; no witness→UNVERIFIED; output
|
||
carrying more than the witness→**DISAGREEMENT, never retention**.
|
||
|
||
**Ran the corpus's first typography byte-census** (`_curation/typography-census-brown-2026-09-01.md`):
|
||
|
||
- **`curly_single` 4,608 → 4.** Read at the referent, not the count: **`‘tradition’` → `' tradition ' .`**
|
||
— docling *inserts spaces around the flattened quote*. **Tier-3 word-boundary damage**, the class
|
||
that barred docling's EPUB path in July, at 4,608 sites vs the pilot's 16. `pypdfium2` does not
|
||
touch it: the flattening is in docling's document model at parse time.
|
||
- ⚠ **`body_word_conservation` is structurally blind to it** — punctuation-stripped tokenization
|
||
reduces both forms to `tradition`. The gate's unit is the word; **the damage lives below it.**
|
||
- **`ligatures` 2,013 → 0** — *nobody predicted this*, and on reading it is **benign**
|
||
(`specification`→`specification`). **The instrument reported the vanishing; the judgement that it
|
||
is harmless is a human's, made in the artifact.** That division is the pattern to keep.
|
||
- **Poppler recovers all 4,608 and all 2,013 from the same bytes** ⇒ **the defect is the FRONT-END's,
|
||
not the class's.** ⚠ But `pdftotext` and `pdftohtml` are **both poppler** — one engine read twice,
|
||
**not corroboration** — and the 14,374-word excess is only **54%** accounted for.
|
||
|
||
**Chain updated:** lane **HELD** at routing + pipeline (not re-routed — poppler yields no structured
|
||
markdown, and no replacement pipeline exists). Gate wired to **all three terminal lanes** with the
|
||
rationale stated **once** under a new top-level `typography_gate:` key.
|
||
|
||
### REVIEWED-133 (PENDING-137) — ruled and executed
|
||
|
||
**PENDING-134 was already ruled 18 days ago** (REVIEWED-121); `MEMORY.md` said "NEXT: rule
|
||
PENDING-134" and was **stale**, aiming the steward at the wrong target. The live blocker was
|
||
**PENDING-137**, needing the *jurist*. The steward's Desktop restart was exactly right: it gave the
|
||
jurist substrate eyes.
|
||
|
||
⚠ **Checking that surface found it FAILING.** `governance-mcp.py --selftest` — five undeclared
|
||
mutating calls in `wake-digest.py`, all in `selftest()`, all from the **previous day's** REVIEWED-131
|
||
build. **Declared, not detector-widened** (failing until someone names it *is* the design), with its
|
||
weakness stated: function-level, so a future non-tempdir write passes silently. **PASS, 62 controls**
|
||
(`cc97888`). *The jurist's read surface was unverified while it was ruling from it.*
|
||
|
||
**Two conditions of the draft ruling were corrected by executor substrate reads:**
|
||
- **Cond. 1** — the "stale" `undisclosed_days_in_force: 7` is **arithmetically correct** for the
|
||
endpoint the file already chose and documented. The jurist had read to line 70; the date rows sit
|
||
at **127–128**. Remedy became **delete the derived field**, not re-choose the endpoint.
|
||
- **Cond. 2** — its factual core **cannot be verified**: the fr cell records only *post-narrowing*
|
||
markers (F5 5/11, F8 3/11, F3 3/11, D-b 1/11); cross-lingual and archaic register appear nowhere
|
||
**because this narrowing removed them**. ⇒ recorded as **inference, never measurement**. *That is
|
||
the strongest case for the condition: the substrate can no longer supply what the ground conceals.*
|
||
|
||
Executed (`2b30425`, `496cd7e`): field deleted, `direction`+`direction_basis` added, en-cell claim
|
||
moved onto `taggable: false`, and the row placed as **`entry: REVIEWED-133`** — caught at the wrap,
|
||
since the ruling's fourth step ("then place the amendment") was still unexecuted.
|
||
`fr.stratum_amendments` now carries **REVIEWED-121 and REVIEWED-133 as siblings**, which is exactly
|
||
what cond. 4 turned on.
|
||
|
||
## PRESENT — how it stands
|
||
|
||
**The mood.** A day that *became* the thing it diagnosed. The morning went to a status-line
|
||
decoration; the afternoon produced the best library work in weeks. The jurist's line is the honest
|
||
verdict: **"the returns aren't diminishing, they're unsampled."** We took one step on the corpus side
|
||
and it paid — and the payment was **negative evidence**: the census moved Brown *away* from
|
||
graduation, which is the right outcome and had to be said plainly.
|
||
|
||
**⚠ TWELVE instrument errors of mine, and NONE was caught by my own first pass.**
|
||
1–3 the Tarbuckle wiring date, the ~8/day rate, "197 reached the generator" (steward). 4 the
|
||
`29 ≠ subset of 5` clock-hour bucketing — would have overstated concurrency **fivefold in a
|
||
governance item** (reconciliation). 5–6 two broken path encoders in a row (a control). 7 the
|
||
`RE_ID` regex guessed instead of read. 8 "does it match" when the question was "what does it
|
||
capture." 9 the runbook step landing in the wrong pipeline. 10 a pointer naming a key I had just
|
||
created differently. 11–12 the `§4 marker` handle, propagated four times without opening the file.
|
||
|
||
🔑 **Every catch crossed party lines. Nobody caught their own.** The steward caught my dates and
|
||
arithmetic; the jurist caught my numbers and my Newport overreach; I caught the jurist's unread rows
|
||
and a read surface failing beneath it. **That is Constraint 6 working — and it is the day's only
|
||
evidence *for* the apparatus, on a day that mostly produced evidence about its cost.**
|
||
|
||
**Three catch-modes, now distinguishable.** A **control** verifies an encoder. **Reconciliation**
|
||
catches a correctly-encoded measure of the wrong thing — 2 of 12, and nothing schedules it.
|
||
**Reading the substrate** catches a handle with no referent — and only one party can, at any moment.
|
||
|
||
**Confidence to recalibrate.**
|
||
- **Inherited, not re-verified:** that `pdftohtml` is poppler-based (stated, not proven); the
|
||
46% unexplained word excess; whether the mumble rate is stable.
|
||
- ⚠ **The `verify_typography` census covers ONE format class.** REVIEWED-67 Q4 stands undischarged
|
||
for every other, and today must not be read as having satisfied it generally.
|
||
- **The jurist self-reported three unsound reads.** Recorded because Constraint 6 says evidence of
|
||
correlated misses must be logged when observed — these did *not* correlate, which is the point.
|
||
|
||
**Instruments:** 4 run · 4 carrying controls written before first execution · **K = 0**.
|
||
|
||
## FUTURE — what pulls
|
||
|
||
**The pulling thread: the fr cell's last two steps.** `PENDING-134's disclosure, whose before-state
|
||
REVIEWED-133 says is complete only now` → then **`ratio_A_to_B` re-derived ONCE** (REVIEWED-116
|
||
point 5). The cell closes on that. It is two steps, both specified, neither needing deliberation.
|
||
|
||
**Actionable resumption point (as of wrap — re-judge):** ⚠ **What "PENDING-134's disclosure" now
|
||
requires is NOT obvious from the ruling and was deliberately not guessed at the end of a long
|
||
session.** REVIEWED-121's row already exists in `fr.stratum_amendments` with both dates coinciding.
|
||
Read REVIEWED-133's `If AUTHORIZED` and REVIEWED-121 point 9 together before touching the file.
|
||
|
||
**Other horizons, ranked.**
|
||
- **The moratorium decision** — steward's, to 2026-09-15. The jurist bound itself to it.
|
||
- **`RE_ID` cannot parse the register's own house form.** `## REVIEWED-133 (PENDING-137) — …`
|
||
backtracks to the bare token `REVIEWED`; entries 130–133 are invisible to the integrity control,
|
||
and any future amendment to them reports a **false orphan**. ⚠ **Fix the REGEX, not the entries —
|
||
REVIEWED-132's own disposition says "Do not touch placed headers."** Bounded `[FIX]`, ~20 min,
|
||
controls both directions. *Steward raised this at the wrap.*
|
||
- **PENDING-171's ruling** → unblocks **the 322 unread census candidates** (of 362).
|
||
- **§7 sibling markers** — verbatim same text, three blocks, nothing else touched; gated on -171.
|
||
- **PENDING-177's eligibility ruling** — now with measured evidence; the shape is Tier-3, not Tier-2.
|
||
- **PENDING-178** — the counter's unit.
|
||
- *Untouched a sixth session:* the §5 regrade gate.
|
||
|
||
**Pause statement.** I am about to be away from this, and the context is being cleared deliberately.
|
||
What I want to find still pulling is **the fr cell's last two steps** — because for the first time in
|
||
weeks the thread is *short, specified, and finishable*, and a day that ends with a closable cell is
|
||
worth more than one that ends with another finding. ⚠ And I want the next session to notice that
|
||
**this day produced twelve of my own errors and zero from a lack of care** — the care was there; what
|
||
caught them was other parties. Do not read the low error count of a quiet session as improvement.
|
||
|
||
**Literal question for next-Claude** *(checkable; turns on the record, not introspection)*:
|
||
**Of the twelve errors logged today, how many would a control written before the fact have caught?**
|
||
The record names each and its catch-mode. ⚠ The expected answer is **low** — most were wrong
|
||
*measures*, not wrong *encoders*, and a control cannot catch a measure of the wrong thing. **If the
|
||
answer is high, the moratorium is the wrong remedy and more instruments are the right one.**
|
||
|
||
---
|
||
|
||
## ADDENDUM 1 — after the wrap: `/doctor`, and two loose ends it created
|
||
|
||
⚠ **Appended 2026-09-02, after the session record above was written and committed.** The wrap
|
||
was complete; the steward then ran `/doctor`, which found and fixed real breakage. Recorded here
|
||
rather than in a new session file because it is the same session, past midnight.
|
||
|
||
### What `/doctor` found and fixed
|
||
|
||
- **8 sub-agent names collided across 21 files** in `~/.claude/agents` (51 files). Only one file
|
||
per name loads; the loser is discarded silently and the winner follows readdir order, so which
|
||
definition was live could differ between machines. **Fixed: 0 collisions, 48 unique names.**
|
||
⚠ **Confirmed by the harness itself** — 15 previously-invisible agents appeared in the listing
|
||
immediately after.
|
||
- **4 `SKILL.md` files had invalid YAML frontmatter** (unquoted `description:` containing `: `).
|
||
⚠ **Latent, not live** — verified the harness parses them leniently and the descriptions rendered
|
||
correctly; a strict consumer would have dropped every field. Re-emitted as valid YAML,
|
||
descriptions byte-identical after.
|
||
- **`plane` MCP server: 0 calls in 41 real sessions** → disabled for this project.
|
||
- **`permissions.defaultMode: "auto"`** set in `~/.claude/settings.json` (was unset in both scopes).
|
||
- **`chamber-library/CLAUDE.md` trimmed 54,129 → 22,530 chars** (13,532 → 5,632 est. tokens; now
|
||
under the ~40,000-char warning threshold). The Governance version-ledger and tool-fleet build
|
||
history became pointers. **All 42 tool names preserved, all 9 sections intact.** The warrant is
|
||
the file's own closing rule: *"keep this file a pointer… If it starts duplicating state, it has
|
||
become the drift the library exists to prevent."*
|
||
- **PENDING-169 §5a filed** (`440d18e`): `tarbuckle-wrap.py` is the `Stop` hook at **median 6.7 s,
|
||
max 13.6 s**, on the blocking path at every session end — an order of magnitude above every other
|
||
hook (`SessionStart:startup` is 1.6 s median over 50 runs). Filed against the **existing**
|
||
2026-09-08 obligation; **no second `DEFERRED-DECISION` block**, because `mumble-rate-two-week-report`
|
||
already triggers that date and a duplicate is noise in the instrument. Steward's direction: look at
|
||
it on 8 September with the rest of the Tarbuckle work.
|
||
|
||
### ⚠ TWO LOOSE ENDS — read these first
|
||
|
||
**1 · `~/_Dev/chamber-library/CLAUDE.md` IS UNCOMMITTED.** A **31,861-character deletion** sits in
|
||
that working tree, steward-approved at the `/doctor` gate but not committed — the doctor protocol
|
||
forbids the executor committing CLAUDE.md edits. **It is not abandoned work and not a mistake.**
|
||
- Review: `git -C ~/_Dev/chamber-library diff --word-diff` ⚠ `--stat` says *11 deleted lines*, which
|
||
badly understates it: the cut sections were single 16k- and 20k-char lines.
|
||
- Keep it: commit it. · Revert it: `git -C ~/_Dev/chamber-library checkout CLAUDE.md`
|
||
- Full prior text: `git -C ~/_Dev/chamber-library show HEAD:CLAUDE.md`
|
||
|
||
**2 · `~/.claude/agents` IS NOT TRACKED BY GIT** — not a symlink, not in `dotfiles`, 0 files tracked.
|
||
So the 15 renames have **no version history**, and the only backup was written to a session-scoped
|
||
scratchpad that dies when this session is cleared. **This mapping IS the undo** — each is a one-line
|
||
`name:` change in the file's frontmatter:
|
||
|
||
| file | `name:` was | `name:` now |
|
||
|---|---|---|
|
||
| `data-validation-suite-backend-security-coder.md` | `backend-security-coder` | (filename stem) |
|
||
| `code-documentation-code-reviewer.md` | `code-reviewer` | (filename stem) |
|
||
| `codebase-cleanup-code-reviewer.md` | `code-reviewer` | (filename stem) |
|
||
| `comprehensive-review-code-reviewer.md` | `code-reviewer` | (filename stem) |
|
||
| `unit-testing-debugger.md` | `debugger` | (filename stem) |
|
||
| `full-stack-orchestration-deployment-engineer.md` | `deployment-engineer` | (filename stem) |
|
||
| `observability-monitoring-network-engineer.md` | `network-engineer` | (filename stem) |
|
||
| `full-stack-orchestration-performance-engineer.md` | `performance-engineer` | (filename stem) |
|
||
| `observability-monitoring-performance-engineer.md` | `performance-engineer` | (filename stem) |
|
||
| `comprehensive-review-security-auditor.md` | `security-auditor` | (filename stem) |
|
||
| `full-stack-orchestration-security-auditor.md` | `security-auditor` | (filename stem) |
|
||
| `security-scanning-security-auditor.md` | `security-auditor` | (filename stem) |
|
||
| `codebase-cleanup-test-automator.md` | `test-automator` | (filename stem) |
|
||
| `full-stack-orchestration-test-automator.md` | `test-automator` | (filename stem) |
|
||
| `unit-testing-test-automator.md` | `test-automator` | (filename stem) |
|
||
|
||
Files that KEPT the short name: `backend-security-coder.md` · `code-reviewer.md` ·
|
||
`debugging-toolkit-debugger.md` · `cloud-infrastructure-deployment-engineer.md` ·
|
||
`cloud-infrastructure-network-engineer.md` · `backend-development-performance-engineer.md` ·
|
||
`backend-development-security-auditor.md` · `backend-development-test-automator.md`
|
||
|
||
⚠ **The wider finding, unfiled:** `~/.claude/agents` holds 51 hand-edited files with **no version
|
||
control at all**, in a system whose entire premise is that the record must be checkable. Every
|
||
other governed surface is git-tracked. Not filed — the moratorium is proposed and this is not
|
||
urgent — but it is the kind of gap this apparatus exists to notice, and it was found by accident.
|
||
|
||
### One more instrument error, making it thirteen
|
||
|
||
⚠ I reported *"dotfiles unpushed to origin"* by conflating two repos' `git status -sb` lines from
|
||
the same output block: `dotfiles` has remotes `gitea` and `github` and **no `origin` at all**; the
|
||
`origin/main [ahead 1]` belonged to `studium-engine`. Same family as the day's other twelve —
|
||
acting on a handle without checking its referent. Caught by verifying rather than by any control.
|
||
|
||
---
|
||
|
||
## ADDENDUM 2 — the trim landed; two items carried to the next session
|
||
|
||
**`chamber-library` CLAUDE.md trim COMMITTED and pushed** — `c7c30ac`, steward-directed.
|
||
54,129 → 22,530 chars. Both remotes current.
|
||
|
||
⚠ **Fourteenth instrument error, and it violated a discipline the repo documents.** My earlier
|
||
loose-ends sweep ran `git push -q origin main` and reported **"chamber-library pushed ✓"**. True
|
||
of `origin`; false of the mirror. **`github` was 9 commits behind** and stayed behind through the
|
||
whole wrap, while the record said the repo was clean and pushed. The repo's own `CLAUDE.md` says
|
||
it plainly — *"Commit locally; push to **both** (`git push github && git push origin`)"* — so this
|
||
is not a gap in the record, it is a documented discipline I did not follow and then reported
|
||
success on. **The say–do seam, at the smallest possible scale.** Caught by verifying a push whose
|
||
`&& echo` had not fired, rather than by any control.
|
||
|
||
### ⚠ CARRIED TO THE NEXT SESSION — steward-directed 2026-09-02
|
||
|
||
**`~/.claude/agents` IS NOT UNDER VERSION CONTROL.** 51 hand-edited files, **0 tracked**, not a
|
||
symlink into `dotfiles`. Established 2026-09-02 while fixing 8 name collisions across 21 of them.
|
||
|
||
**Why it matters beyond the inconvenience.** Every other governed surface in this system is
|
||
git-tracked — `PENDING.md`, `REVIEWED.md`, the memory files, the skills, the scripts, the corpus.
|
||
The agents directory is the one place where hand edits leave **no history, no diff, and no
|
||
attribution**, in a system whose entire premise is that the record must be checkable. It is also
|
||
**executable configuration**: an agent definition determines what a delegated sub-agent is told to
|
||
do, which makes an untracked, unattributable edit there a governance surface, not a convenience
|
||
one.
|
||
|
||
⚠ **It was found by accident** — `/doctor` was looking for name collisions, not for missing version
|
||
control, and nothing in the apparatus was positioned to notice. That is the part worth keeping:
|
||
the gap is old, the finding is incidental, and no instrument would have surfaced it.
|
||
|
||
**Deliberately NOT filed as a PENDING item.** The moratorium to 2026-09-15 is proposed and
|
||
undecided, and the steward's instruction was *attend to it next session*, which is scheduling
|
||
rather than filing. Whether it earns an item is itself a next-session decision.
|
||
|
||
**Open questions for that session, none answered here:** does the directory belong in `dotfiles`
|
||
(where the other governed surfaces live) or in its own repo · are all 51 files the steward's, or
|
||
are some vendored from a plugin/marketplace and therefore not his to track · does tracking them
|
||
change how they load · and is `~/.claude/skills`, which *is* symlinked into `dotfiles`, the
|
||
precedent to follow.
|
||
|
||
⚠ **The 15 renames still have no version history**, so ADDENDUM 1's mapping table remains the only
|
||
undo. Whatever is decided, tracking the directory should happen **before** anything else edits it.
|