docs/content-model.md opens with "Engine specification". It is also where the rule lives that a leading underscore makes a file unaddressable — and the human who owns this site did not know that rule, because nothing in this repository is addressed to an author. Twelve documents named docs/ while being exclusively about building the parser is a signpost pointing at the wrong room. Naming the directory for its audience makes the gap visible instead of hiding it. docs/ is now reserved and deliberately absent: an empty docs/ is an honest statement that end-user documentation does not exist, where docs/ full of parser specs was a claim that it did. HARNESS.md stays at the root. Root holds the three entry points — README.md for a human, CLAUDE.md for an agent, HARNESS.md for whoever maintains the machine — and harness/README.md is the map of the directory, so moving the guide inside would have collided with it for nothing. Mechanical and wide: 100 path references across 24 files. Every verify.sh gate that names a doc by path, the directory lists the dangling-path and ADR-number gates scan, surface.sh's output target, the Makefile, CLAUDE.md's read order, the skill, four commands, and two Go package comments. A first pass with a shell loop silently edited only four files and the rest still said docs/; the fix was to write the file list out and check the remaining count was zero rather than trust the loop's exit status. No rule, threshold, gate or obligation moved — this is a rename, and the gates demonstrated it twice: they stayed green on the new paths, and the ADR-number gate caught ADR-0082 before the entry existed. Deferred, both on the human's call: the end-user documentation site itself, which wants its own decision about where it lives and whether its claims are gated; and moving examples/ under docs/, since demo-site is a live site root that verify.sh, the coverage test and make demo all point at, and moving it would couple a rename to a design nobody has made. 31 files, +146/-106. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reference — facts worth keeping
Durable information surfaced in conversation that would otherwise be lost: measured numbers, external constraints, how a tool actually behaves, links worth having. One file per subject.
Not decisions (harness/decisions.md), not proposals (ideas/), not the present state of the code
(harness/state.md). A fact only true today belongs in state.md; a rule belongs in the doc owning the
topic.
Each file states how the fact was established — measured, read from a spec, or asserted — so a later reader knows whether to trust it or re-check it. An unattributed number is a rumour.
Scratch code illustrating a fact is welcome; verify.sh ignores .go here entirely, so it need not
compile.
Out of agent context by default, this index included. Opened only when the human names the topic.
Index
- agent-session-costs.md — how context and token cost accumulate in an agent session
- math-on-the-web.md — rendering maths with no JavaScript, and the state of Go TeX→MathML
- syntax-highlighting-choices.md — chroma's cost, what it gives, and why there is no lighter option
- goldmark-behaviours.md — the goldmark surprises that caused or nearly caused defects