Item F1: Job names in prose, and root documents that classify into no layer
Workspace friction · difficulty — · project none · open · node item-f1
The residue of a merged entry whose first half is now a gate. A count or a job name repeated in prose drifts from .github/branch-protection.json with nothing to catch it, and it has bitten twice: three documents claimed eight gates where seven ran, and the read-back in .github/apply-branch-protection.sh hardcoded 8 and would have reported correct protection as wrong. Separately, an unlisted root-level document defaults to the proof layer — the right default, failing silently in the granting direction, as RESEARCH_STATE.md did while contributor-editable with every gate green.
Two checks: every CI job name in prose appears in .github/branch-protection.json, and every root-level *.md classifies into exactly one layer. Neither can pass vacuously.
The half that is done: tests/dead_pointers.py checks that every rooted path a live document cites resolves, which covers the documented-command case that opened this entry. Audited by hand on 2026-08-17 and clean on both remaining halves, so this stays insurance rather than repair — worth building alongside other work in the same area, not on its own.
Registered results bearing on this item
None registered.
Where it hangs
- held by enabling-work
Rounds and decisions that touch it
None recorded.