Skip to content

D1128 — Current-state docs are checked for history phrases and hand-kept counts

Decision. internal/repodocs/doc_rot_test.go fails when a current-state page (docs/ except decisions, the root contract files, area AGENTS.md, bundled and project skills, project agents) carries used to, previously, removed/dropped/retired by|in D<n>, as of D<n>, became/gained, or a number of three or more before providers clients tools checks kinds subagents agents runners skills modes tiers workflows jobs errors. Code and inline code are not read. A sentence about a retired key, tool or flag a reader can still meet goes on a file-and-fragment allow-list, each entry with a reason, pruned both ways: an uncovered hit fails and so does an entry that covers nothing.

Why. docs/index.md says current-state pages carry no history and no counts, and nothing enforced it; each fix returned at the next edit. A deterministic net removes the cheap, mechanical half of the contract reviewer's reading.

Alternatives rejected. - Also policing now, no longer, since D<n>, before D<n> and older version: about two thirds of their hits state something a reader can still hit, so the allow-list would grow to dozens of entries and lose its meaning. - Allowing by line number: drifts at every edit; a fragment survives rewrapping. - Loosening a phrase to spare a retired-key sentence: the allow-list is the only exception, so the rule stays narrow.

Consequences. The allow-list must stay small and never hold a sentence that narrates history. Semantic drift stays with the reviewer. A new phrase is added only with its measured hits on the corpus.