Skip to content

Commit 33d9b33

Browse files
fix(pm): add per-file ceilings for the four uncovered skills (#9473) (#9535)
The skill line ratchet's header claims "the ceiling now covers the whole surface, per file" but the CEILINGS map only held the pm-dispatch surface. Add entries for checklist-test, checklist-author, dogfood-verification, and spec-property-retirement at their current line counts on origin/main (headroom 0, same convention as the existing entries). Extend the script's own self-test to assert the four are covered. Fixes #9473 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 02ebb6f commit 33d9b33

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

scripts/pm/check-skill-line-ratchet.mjs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ export const CEILINGS = new Map([
5757
['.claude/skills/pm-dispatch/references/landing-operations.md', 82],
5858
['.claude/skills/pm-dispatch/references/seat-post-protocol.md', 101],
5959
['.claude/agents/os-dev.md', 399],
60+
// #9473: the other four `.claude/skills/` are read in full by the sessions
61+
// that use them too — the erosion mechanism the ratchet exists to stop
62+
// isn't specific to the pm-dispatch surface. Set at current counts on
63+
// `origin/main` (headroom 0, same convention as the entries above).
64+
['.claude/skills/checklist-test/SKILL.md', 232],
65+
['.claude/skills/checklist-author/SKILL.md', 61],
66+
['.claude/skills/dogfood-verification/SKILL.md', 155],
67+
['.claude/skills/spec-property-retirement/SKILL.md', 328],
6068
]);
6169

6270
export function verdict(rel, lineCount, maxLines) {
@@ -117,6 +125,7 @@ function selfTest() {
117125
['SKILL.md is covered', CEILINGS.has('.claude/skills/pm-dispatch/SKILL.md'), true],
118126
['the dev-agent definition is covered', CEILINGS.has('.claude/agents/os-dev.md'), true],
119127
['all five compressed references are covered', ['dispatch-runbook', 'platform-readings', 'review-checklist', 'landing-operations', 'seat-post-protocol'].every((n) => CEILINGS.has(`.claude/skills/pm-dispatch/references/${n}.md`)), true],
128+
['the other four skills are covered (#9473)', ['checklist-test', 'checklist-author', 'dogfood-verification', 'spec-property-retirement'].every((n) => CEILINGS.has(`.claude/skills/${n}/SKILL.md`)), true],
120129
];
121130
let failed = 0;
122131
for (const [name, actual, expected] of cases) {

0 commit comments

Comments
 (0)