Filed out-of-scope from #7358. Unassigned. No functional effect — prose only.
What
.github/workflows/skills-paths.yml's header comment says:
this gate's ENTIRE scan surface is markdown (skills/**, guide prose)
and, further down:
It needs no install and no build — a checkout plus one node call over 18 markdown files, a couple of seconds — so keep it that way if you add checks to it.
Both readings are stale, and they went stale in two separate steps:
Why it is worth a line rather than nothing
The reasoning the comment exists to record is still completely correct — the surface is still entirely markdown, ci.yml and lint.yml still list '**/*.md' under paths-ignore, and this workflow still carries no paths or paths-ignore of its own, so it still starts on a guide-only push. Only the enumeration and the count drifted. A reader who takes the parenthetical literally concludes .claude/skills is ungated, which is the exact failure mode #7358 exists to remove.
Deliberately not fixed in #7358's PR
#7358's dispatch fixed its file surface to scripts/check-skills-paths.mjs, its test, scripts/skills-path-baseline.json and any genuinely stale coordinate under .claude/skills/**. Its bounded in-place exemption needs "no other claim holds this file", and whether an open PR touches .github/workflows/skills-paths.yml was not verifiable from that seat (repo-scoped REST reads answer 403 there, and a wide PR listing is not worth a GraphQL call for a comment). So it was left alone and filed here instead.
The fix is two lines of comment: name both roots, and either restate the count as 20 or drop the number, since it is the sort of figure that goes stale on every guide added. scripts/__tests__/check-skills-paths.test.ts strips whole-line comments before asserting on this workflow, so a comment edit cannot move any pin in it.
Filed out-of-scope from #7358. Unassigned. No functional effect — prose only.
What
.github/workflows/skills-paths.yml's header comment says:and, further down:
Both readings are stale, and they went stale in two separate steps:
main@6422aa891. Skills optimization flight — skills/objectui: RESTRUCTURE (≈ −21,600 tok of 64,022, −34%) — ~19% of the package is addressed at a contributor to this repo (console-development.md, no-touch-zones.md, half of architecture.md), one rule stated up to four times, 11 vestigial guide frontmatters, and three evals that fail correct answers #7251 moved two guides out ofskills/and the reading became 16.skills/**as the entire surface was true until check-skills-paths lost 55 of its 93 assertions when the contributor guides moved out ofskills/— widen SCAN_ROOT to cover.claude/skills#7358 widenedSCAN_ROOTSto['skills', '.claude/skills']. The reading is now 20 files across two roots.Why it is worth a line rather than nothing
The reasoning the comment exists to record is still completely correct — the surface is still entirely markdown,
ci.ymlandlint.ymlstill list'**/*.md'underpaths-ignore, and this workflow still carries nopathsorpaths-ignoreof its own, so it still starts on a guide-only push. Only the enumeration and the count drifted. A reader who takes the parenthetical literally concludes.claude/skillsis ungated, which is the exact failure mode #7358 exists to remove.Deliberately not fixed in #7358's PR
#7358's dispatch fixed its file surface to
scripts/check-skills-paths.mjs, its test,scripts/skills-path-baseline.jsonand any genuinely stale coordinate under.claude/skills/**. Its bounded in-place exemption needs "no other claim holds this file", and whether an open PR touches.github/workflows/skills-paths.ymlwas not verifiable from that seat (repo-scoped REST reads answer 403 there, and a wide PR listing is not worth a GraphQL call for a comment). So it was left alone and filed here instead.The fix is two lines of comment: name both roots, and either restate the count as 20 or drop the number, since it is the sort of figure that goes stale on every guide added.
scripts/__tests__/check-skills-paths.test.tsstrips whole-line comments before asserting on this workflow, so a comment edit cannot move any pin in it.