Alignment Workspace

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.