volatile quantities in the wiki are declared, not detected
2026-08-16 · settled · DECISIONS.md line 3179
A number on a wiki page that changes when work lands is bound to machine state by an HTML-comment marker, or wrapped historical when it records a past event and cannot rot. checkers/wiki_state_bindings.py verifies every declaration against checkers/workspace_state.py --json and fails four undeclared high-risk forms: a pull-request number, and an integer immediately before claims, rounds, or priorit(y|ies).
Detection is inverted. The checker never decides which sentences are volatile — the author declares, and the checker compares strings. A gate that classified volatility in free prose would be guessing about English, and would fail in the direction that grants passes: the sentence it cannot parse is the one it lets through.
Aggregates are derived in the emitter, in a counts section seeded by demand — a key exists there because a page binds it. Two alternatives are rejected. Template substitution, generating values into the pages at sync time, makes wiki source non-literal, complicates review of a pull request whose diff no longer shows what a reader will see, and moves authority into the build; checking keeps human-authored text primary. Aggregate syntax in the marker grammar — .length or .count suffixes — moves derivation into the checker and grows toward a query language the first time a filtered count is wanted.
Source: the maintainer-dispatched wiki state-bindings round, answering the item the wiki-in-repo round filed.
Touches
Nothing named.
Nodes pointing at it
None.