What
.agents/NOW.md states:
all 362 archs have rows
That number lives in .agents/model-matrix.md, which owns the architecture
inventory and its CI-enforced rollup. #620 moves it to 370, and NOW.md becomes
wrong the moment that lands.
Why this is a records defect, not a stale line
AGENTS.md § Records names this shape directly:
Never store a measurement of one file inside another — a number that moves
on every edit couples every PR to lines it does not own.
That is precisely what this is. Every PR that adds an architecture row now has a
choice between leaving NOW.md wrong or editing a file it has no business
touching — and NOW.md is explicitly operator-cadence, "never a per-row
lifecycle write" (roadmap_v1.md, ENG-NOW-DERIVED, #374). A row-adding PR
cannot satisfy both rules at once.
The same section already prescribes the fix for exactly this class:
derived at read time, so nobody writes it
scripts/now.py is already the derived-at-read-time surface, and NOW.md
already delegates the live-claims table to it for this reason.
Options
- Drop the count from
NOW.md and let the sentence carry the claim without the
number ("every architecture in the pinned registry has a row").
- Have
scripts/now.py render the count from model-matrix.md at read time,
where it cannot drift.
(1) is the smaller change and matches how NOW.md already handles per-row state.
(2) is better if the number is genuinely wanted at a glance.
Not urgent, but not free
The count has been wrong before and nothing catches it — there is no checker
tying NOW.md's figure to the matrix, deliberately, because that would be a
second description to keep in sync. Removing the figure removes the failure mode
rather than guarding it.
Found while auditing recipes.vllm.ai coverage (#609, #610); flagged by the
implementer who correctly declined to bump it.
What
.agents/NOW.mdstates:That number lives in
.agents/model-matrix.md, which owns the architectureinventory and its CI-enforced rollup. #620 moves it to 370, and
NOW.mdbecomeswrong the moment that lands.
Why this is a records defect, not a stale line
AGENTS.md§ Records names this shape directly:That is precisely what this is. Every PR that adds an architecture row now has a
choice between leaving
NOW.mdwrong or editing a file it has no businesstouching — and
NOW.mdis explicitly operator-cadence, "never a per-rowlifecycle write" (
roadmap_v1.md,ENG-NOW-DERIVED, #374). A row-adding PRcannot satisfy both rules at once.
The same section already prescribes the fix for exactly this class:
scripts/now.pyis already the derived-at-read-time surface, andNOW.mdalready delegates the live-claims table to it for this reason.
Options
NOW.mdand let the sentence carry the claim without thenumber ("every architecture in the pinned registry has a row").
scripts/now.pyrender the count frommodel-matrix.mdat read time,where it cannot drift.
(1) is the smaller change and matches how
NOW.mdalready handles per-row state.(2) is better if the number is genuinely wanted at a glance.
Not urgent, but not free
The count has been wrong before and nothing catches it — there is no checker
tying
NOW.md's figure to the matrix, deliberately, because that would be asecond description to keep in sync. Removing the figure removes the failure mode
rather than guarding it.
Found while auditing
recipes.vllm.aicoverage (#609, #610); flagged by theimplementer who correctly declined to bump it.