Found while implementing #6600 step 2 (PR moves the three doc gates onto apps/*/docs/**). Recording only — not fixed there, because the drift predates that change and fixing prose counts in workflow headers is not that card's file surface.
What
Two gate workflow headers state a document count as a literal. Both were already wrong before #6600's root move, and are further off after it.
| file | header says | actual before the root move | actual after |
|---|
.github/workflows/doc-fence-languages.yml | "the same 222 documents check-doc-snippet-types covers" | 225 | 228 |
.github/workflows/doc-component-types.yml | "184 pages (144 .mdx + 40 .md, objectui#5342)" | 186 | 189 |
Read from the gates themselves on d6ceb8d29 (before) and on the #6600 branch at eba0a9b7a (after):
check:doc-fences — "every TypeScript block in 228 document(s)"check:doc-types — "Scanned 189 doc file(s) (.mdx + .md)"
Control that these are really the gates' own numbers and not a recount of mine: both figures are printed by the gate's own verdict line, not derived by hand.
Why it is worth recording
Nothing fails on a stale number written in a comment, which is exactly why it rots. This repository has already diagnosed this pattern twice and written down the remedy both times:
scripts/__tests__/check-doc-fence-languages.test.ts header: counts are "deliberately NOT asserted… a hand-copied enumeration in a test drifts by construction — the lesson lint-workflow.test.ts records for this repository at length."check-doc-snippet-types.mjs's UNGATED_DOCS header records the same fix being applied to itself: a sentence carried a literal 12 .mdx pages and 32 package READMEs until both halves had drifted, and it is now "a pointer to the list now rather than a copy of its length."
So the established remedy shape exists; these two headers just have not had it applied. The cost of leaving them is low but real: the counts read as specifications of the scan surface, and a reader checking whether a gate covers their file will compare against a wrong number.
Not a defect in any gate
Both gates compute their population by walking the tree; neither reads these comments. No verdict depends on them. This is prose accuracy only, which is why it is filed finding rather than queued.
Scope if picked up
.github/workflows/doc-fence-languages.yml, one sentence..github/workflows/doc-component-types.yml, one sentence.- The honest fix is the one the repo already chose elsewhere: replace the literal with a pointer to the gate's own output, rather than refreshing the number and re-arming the same trap.
Filed unassigned. Back-link: #6600.
Generated by Claude Code
Found while implementing #6600 step 2 (PR moves the three doc gates onto
apps/*/docs/**). Recording only — not fixed there, because the drift predates that change and fixing prose counts in workflow headers is not that card's file surface.What
Two gate workflow headers state a document count as a literal. Both were already wrong before #6600's root move, and are further off after it.
.github/workflows/doc-fence-languages.ymlcheck-doc-snippet-typescovers".github/workflows/doc-component-types.yml.mdx+ 40.md, objectui#5342)"Read from the gates themselves on
d6ceb8d29(before) and on the #6600 branch ateba0a9b7a(after):check:doc-fences— "every TypeScript block in 228 document(s)"check:doc-types— "Scanned 189 doc file(s) (.mdx + .md)"Control that these are really the gates' own numbers and not a recount of mine: both figures are printed by the gate's own verdict line, not derived by hand.
Why it is worth recording
Nothing fails on a stale number written in a comment, which is exactly why it rots. This repository has already diagnosed this pattern twice and written down the remedy both times:
scripts/__tests__/check-doc-fence-languages.test.tsheader: counts are "deliberately NOT asserted… a hand-copied enumeration in a test drifts by construction — the lessonlint-workflow.test.tsrecords for this repository at length."check-doc-snippet-types.mjs'sUNGATED_DOCSheader records the same fix being applied to itself: a sentence carried a literal12 .mdx pages and 32 package READMEsuntil both halves had drifted, and it is now "a pointer to the list now rather than a copy of its length."So the established remedy shape exists; these two headers just have not had it applied. The cost of leaving them is low but real: the counts read as specifications of the scan surface, and a reader checking whether a gate covers their file will compare against a wrong number.
Not a defect in any gate
Both gates compute their population by walking the tree; neither reads these comments. No verdict depends on them. This is prose accuracy only, which is why it is filed
findingrather than queued.Scope if picked up
.github/workflows/doc-fence-languages.yml, one sentence..github/workflows/doc-component-types.yml, one sentence.Filed unassigned. Back-link: #6600.
Generated by Claude Code