Documentation
¶
Overview ¶
Package main implements registrycheck, the guard over docs/DIVERGENCES.md's pointers (#452).
`Tracked: #N` is a present-tense claim that work is outstanding. It is written once and falsified later, elsewhere, by an event the file cannot see — someone closing #N. Nothing in `make verify` reads GitHub, so that falsification was silent and unbounded, which is how 65 of 111 pointers came to be wrong before anyone noticed (#445). This tool re-derives the fact instead of asserting it.
It runs in two halves, because only one of them needs the network:
- The shape rungs are offline and free, so they run inside the merge gate — not through this binary but through the package's own test, which calls Check on the real file the way internal/modeltest/docs_test.go holds README's tier table to the tree.
- The state rungs ask GitHub whether each referenced issue is open or closed. `make verify` is offline and credential-free by design, so they cannot join it; `make registry-check` runs them, and .github/workflows/registry.yml runs that on a schedule, where a red run is the whole notification mechanism.
The parser exists because the two jobs a pointer does are not separable by eye. A clause reads
*Tracked: #78 (what this entry still leaves open); landed for #45.*
where the head names the LIVE tracker — the issue that will settle the entry, which must therefore be open — and everything after the first top-level semicolon is PROVENANCE, past tense and permanently true, whose issue may perfectly well be open (an entry can land for one issue while another still owns a piece of it). A head segment whose parenthetical opens with "delivered" is provenance too. Splitting on a naive strings.Split(";") or treating every "#N" alike produces false positives on both counts, which is why the rules below work on parsed segments rather than on the raw line.