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.shfor full validation (counts + drift comparison), orscripts/count-all.shfor 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.mdfor 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 gatedoctor— Broader health check that includes count validationaudit-skills— Quality audit for skill structure and completeness
Common Mistakes
- Counting from
plugins/instead ofsrc/— plugins/ may be empty after an interrupted build - Comparing against deleted alias manifests — only
manifests/ork.jsonexists in v7 - Forgetting the hook breakdown: global + agent-scoped + skill-scoped must sum to total