STALE-PARK cannot be told it was already answered
The measurement
tools/progress.py, four checks that read prose or citations:
| check | by-design escape | line |
|---|---|---|
| dangling links | DANGLING LINKS BY DESIGN |
1868 |
| prose-edge-not-in-frontmatter | PROSE EDGES BY DESIGN |
2135 |
| dangling shas | DANGLING SHAS BY DESIGN |
2621 — and the emit path names it at 2697 and 2715 |
| STALE-PARK | none | — |
grep -c "STALE PARK BY DESIGN" and "PARK BY DESIGN" both return 0.
PARK-CONDITION-REWRITTEN (2060) is a sharper reading of the same hit, not a
way out of it.
Why the cost falls on the GOOD write-ups
STALE-PARK fires on a park whose prose names a now-resolved slug near a blocking phrase. Citing landed work by name, next to an explanation of what it unblocked, is what a well-written park looks like. So the check's hit rate is correlated with write-up quality, and there is no way to bank the reading.
Live case, and it was corrected the same night — read this before the design
section, because the first version of this ticket got it backwards.
feature-dynamic-compiler-tables adjudicated the report in its own body, line
341, dated 2026-08-30:
"No resume condition names another ticket: the five resolved slugs here are cited landed work, and the one open slug (
feature-opt-dynarray-grows-in-place) is a pointer, not a blocker."
blocked-by: []. It re-reported on its second run, and this ticket was filed
describing that as an adjudication paid twice.
That framing was wrong, and frankH found it by re-reading rather than trusting
the note. feature-opt-dynarray-grows-in-place — "the one open slug ... a
pointer, not a blocker" — is now in done/, and so is
feature-emission-size-dce. Both verified 2026-09-06. Both cited dependencies
landed AFTER the note that dismissed them.
The check was WRONG ABOUT BLOCKING and RIGHT ABOUT STALENESS, on the very ticket this report was filed from.
And it was not bookkeeping: in-place dynarray growth is what makes that ticket's geometric doubling amortise, so the pointer dismissed as not-a-blocker is the thing that made its conversion pattern cheaper. The note was stale in the direction that mattered.
This is the evidence FOR the scoped design below, and it is a live case rather than an argument — a blanket suppression would have hidden a true hit on this report's own worked example.
The design constraint — do NOT copy the other three
A dangling sha is dangling forever, so a permanent marker is sound there. A
park's resume condition can genuinely become met later, so a blanket
PARK BY DESIGN would suppress a true hit permanently — the same
fail-open shape as a false coverage claim, and worse than the noise it removes.
The escape has to be scoped to what was adjudicated. Something of the shape
PARK ADJUDICATED <date>: <slug>, <slug>, ... in the body, where the check
suppresses only the listed slugs and still fires when a citation resolves that
is not on the list. Then a well-written park pays once per newly-resolved
citation instead of once per run, and the record of the reading lives beside the
prose it was about.
Not urgent, and say so
Nothing is mis-ranked by this. The cost is a recurring read of a report that has already been answered, paid by the sessions holding the longest-lived tickets.