Skip to content
This repository was archived by the owner on Apr 5, 2026. It is now read-only.

Commit dbdccf8

Browse files
HerbHallclaude
andauthored
feat: CI accuracy checks for README skill count and verify.sh alignment (#28)
Adds two checks to the lint workflow: - README skill count must match actual claude/skills/ directory count - Every skill in verify.sh must have a corresponding directory (error), and unlisted directories get a warning Closes #24 Co-authored-by: Claude <noreply@anthropic.com>
1 parent bb5f508 commit dbdccf8

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

.github/workflows/lint.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,35 @@ jobs:
3838
exit 1
3939
fi
4040
echo "All skill routing targets exist"
41+
42+
verify-skill-count:
43+
name: Verify skill counts
44+
runs-on: ubuntu-latest
45+
steps:
46+
- uses: actions/checkout@v4
47+
- name: README skill count matches directory count
48+
run: |
49+
ACTUAL=$(ls -d claude/skills/*/ | wc -l | tr -d ' ')
50+
README_COUNT=$(grep -oP '\d+(?= skills)' README.md | head -1)
51+
if [ "$ACTUAL" != "$README_COUNT" ]; then
52+
echo "::error file=README.md::README says $README_COUNT skills but claude/skills/ has $ACTUAL directories. Update README."
53+
exit 1
54+
fi
55+
echo "OK: $ACTUAL skills match README"
56+
57+
- name: Verify script skill list matches directories
58+
run: |
59+
LISTED=$(grep 'for skill in' setup/legacy/verify.sh | sed 's/.*for skill in //;s/;.*//' | tr ' ' '\n' | sort)
60+
PRESENT=$(ls claude/skills/ | sort)
61+
62+
MISSING=$(comm -23 <(echo "$LISTED") <(echo "$PRESENT"))
63+
if [ -n "$MISSING" ]; then
64+
echo "::error file=setup/legacy/verify.sh::Skills listed in verify.sh but not found in claude/skills/: $MISSING"
65+
exit 1
66+
fi
67+
68+
UNLISTED=$(comm -13 <(echo "$LISTED") <(echo "$PRESENT"))
69+
if [ -n "$UNLISTED" ]; then
70+
echo "::warning::Skills in claude/skills/ not listed in verify.sh: $UNLISTED"
71+
fi
72+
echo "OK: verify.sh skill list is accurate"

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
- Cross-references to gotcha numbers updated in autolearn-patterns.md and workflow-preferences.md
1111
- AGENT-WORKFLOW-GUIDE.md: replaced Python pseudo-code agent examples with correct `.claude/agents/*.md` format
1212

13+
### Added
14+
15+
- CI: README skill count accuracy check (fails if count doesn't match `claude/skills/` directories)
16+
- CI: verify.sh skill list accuracy check (fails on missing directories, warns on unlisted skills)
17+
1318
### Changed
1419

1520
- Bash setup scripts moved to `setup/legacy/` with deprecation headers (PowerShell primary)

0 commit comments

Comments
 (0)