Skip to content

finding(gate): two doc-gate workflow headers carry hand-copied document counts that have drifted from what the gates report #7448

Description

@os-sales

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repofindingpm:dispatchedpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions