Validate Counts
Checks that hook, skill, and agent counts are consistent across all authoritative sources in OrchestKit. Outputs a comparison table and flags drift with precise file references.
Quick Start
Full validation: counts src/ vs CLAUDE.md and manifests (run from repo root)
bash src/skills/validate-counts/scripts/validate-counts.sh
Just get raw counts from src/
bash src/skills/validate-counts/scripts/count-all.sh
Rules
Category Rule Impact Key Pattern
Count Sources rules/sources-authoritative.md (load ${CLAUDE_SKILL_DIR}/rules/sources-authoritative.md ) HIGH Filesystem is authoritative; derived sources must match
Drift Detection rules/drift-reporting.md (load ${CLAUDE_SKILL_DIR}/rules/drift-reporting.md ) HIGH Comparison table + flag with file:field references
Total: 2 rules across 2 categories
Workflow
-
Run scripts/validate-counts.sh for full validation (counts + drift comparison), or scripts/count-all.sh for raw counts only
-
Read CLAUDE.md — extract counts from Project Overview and Version section
-
Read manifests/ork.json — check skill/agent/hook array lengths
-
Build the comparison table (see rules/drift-reporting.md for format)
-
Flag any mismatches with file + field references; otherwise output "All counts consistent."
References
Load on demand with Read("${CLAUDE_SKILL_DIR}/references/<file>") :
File Content
count-locations.md
Where every count lives and why drift happens
Related Skills
-
release-checklist — Uses validate-counts as step 5 of the release gate
-
doctor — Broader health check that includes count validation
-
audit-skills — Quality audit for skill structure and completeness
Common Mistakes
-
Counting from plugins/ instead of src/ — plugins/ may be empty after an interrupted build
-
Comparing against deleted alias manifests — only manifests/ork.json exists in v7
-
Forgetting the hook breakdown: global + agent-scoped + skill-scoped must sum to total