Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
affaan-m avatar

Skill Stocktake

  • 2.3k installs
  • 238k repo stars
  • Updated August 5, 2026
  • affaan-m/everything-claude-code

A repeatable audit workflow that evaluates each Claude skill against a checklist (overlap, freshness, usage, actionability) using batched subagent evaluation, returning verdicts with detailed reasoning and consolidation

About

skill-stocktake is a slash command that systematizes quality audits of Claude skills and commands across global and project-level directories. It supports two modes: Quick Scan (5-10 min) re-evaluates only recently changed skills using a cached results.json; Full Stocktake (20-30 min) performs complete inventory and holistic AI-driven evaluation. Phase 1 scans and catalogs skills with metadata; Phase 2 batches ~20 skills per subagent invocation against a checklist covering overlap, freshness, and actionability; Phase 3 summarizes verdicts (Keep, Improve, Update, Retire, Merge); Phase 4 consolidates changes with user confirmation. Results persist in ~/.claude/skills/skill-stocktake/results.json with resumable in-progress tracking.

  • Two-mode evaluation: Quick Scan (delta-only, 5-10 min) vs. Full Stocktake (complete, 20-30 min)
  • Batched subagent processing (~20 skills/chunk) with resumable in-progress state
  • Holistic AI verdict criteria: Keep, Improve, Update, Retire, Merge with self-contained reasoning
  • Covers global (~/.claude/skills/) and project-level (.claude/skills/) skill scopes automatically
  • Checklist dimensions: overlap detection, freshness via WebSearch, usage frequency, actionability

Skill Stocktake by the numbers

  • 2,269 all-time installs (skills.sh)
  • +242 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #54 of 782 Skill Development skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/affaan-m/everything-claude-code --skill skill-stocktake

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2.3k
repo stars238k
Security audit2 / 3 scanners passed
Last updatedAugust 5, 2026
Repositoryaffaan-m/everything-claude-code

What it does

Audit and quality-gate all Claude skills using checklist-driven evaluation with Quick Scan and Full Stocktake modes.

Who is it for?

Long-running Claude projects with 20+ skills; teams needing audit trails for skill curation; DevOps/SRE use cases where skill library is infrastructure.

Skip if: Single-skill projects; users who never author custom skills; one-off skill discovery (use search instead).

When should I use this skill?

After 2-4 weeks of active skill authoring/modification; before major Claude version upgrades; when skill library exceeds 15 items; quarterly maintenance cadence.

What you get

Operator gains a clear, auditable inventory of skill health with specific improvement actions ranked by impact. Skill library remains lean, current, and non-overlapping; deprecated skills are removed with full impact ana

  • JSON changed-files array

Files

SKILL.mdMarkdownGitHub ↗

skill-stocktake

Slash command (/skill-stocktake) that audits all Claude skills and commands using a quality checklist + AI holistic judgment. Supports two modes: Quick Scan for recently changed skills, and Full Stocktake for a complete review.

Scope

The command targets the following paths relative to the directory where it is invoked:

PathDescription
~/.claude/skills/Global skills (all projects)
{cwd}/.claude/skills/Project-level skills (if the directory exists)

At the start of Phase 1, the command explicitly lists which paths were found and scanned.

Targeting a specific project

To include project-level skills, run from that project's root directory:

cd ~/path/to/my-project
/skill-stocktake

If the project has no .claude/skills/ directory, only global skills and commands are evaluated.

Modes

ModeTriggerDuration
Quick Scanresults.json exists (default)5–10 min
Full Stocktakeresults.json absent, or /skill-stocktake full20–30 min

Results cache: ~/.claude/skills/skill-stocktake/results.json

Quick Scan Flow

Re-evaluate only skills that have changed since the last run (5–10 min).

1. Read ~/.claude/skills/skill-stocktake/results.json 2. Run: bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json (Project dir is auto-detected from $PWD/.claude/skills; pass it explicitly only if needed) 3. If output is []: report "No changes since last run." and stop 4. Re-evaluate only those changed files using the same Phase 2 criteria 5. Carry forward unchanged skills from previous results 6. Output only the diff 7. Run: bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"

Full Stocktake Flow

Phase 1 — Inventory

Run: bash ~/.claude/skills/skill-stocktake/scripts/scan.sh

The script enumerates skill files, extracts frontmatter, and collects UTC mtimes. Project dir is auto-detected from $PWD/.claude/skills; pass it explicitly only if needed. Present the scan summary and inventory table from the script output:

Scanning:
  ✓ ~/.claude/skills/         (17 files)
  ✗ {cwd}/.claude/skills/    (not found — global skills only)
Skill7d use30d useDescription

Phase 2 — Quality Evaluation

Launch an Agent tool subagent (general-purpose agent) with the full inventory and checklist:

Agent(
  subagent_type="general-purpose",
  prompt="
Evaluate the following skill inventory against the checklist.

[INVENTORY]

[CHECKLIST]

Return JSON for each skill:
{ \"verdict\": \"Keep\"|\"Improve\"|\"Update\"|\"Retire\"|\"Merge into [X]\", \"reason\": \"...\" }
"
)

The subagent reads each skill, applies the checklist, and returns per-skill JSON:

{ "verdict": "Keep"|"Improve"|"Update"|"Retire"|"Merge into [X]", "reason": "..." }

Chunk guidance: Process ~20 skills per subagent invocation to keep context manageable. Save intermediate results to results.json (status: "in_progress") after each chunk.

After all skills are evaluated: set status: "completed", proceed to Phase 3.

Resume detection: If status: "in_progress" is found on startup, resume from the first unevaluated skill.

Each skill is evaluated against this checklist:

- [ ] Content overlap with other skills checked
- [ ] Overlap with MEMORY.md / CLAUDE.md checked
- [ ] Freshness of technical references verified (use WebSearch if tool names / CLI flags / APIs are present)
- [ ] Usage frequency considered

Verdict criteria:

VerdictMeaning
KeepUseful and current
ImproveWorth keeping, but specific improvements needed
UpdateReferenced technology is outdated (verify with WebSearch)
RetireLow quality, stale, or cost-asymmetric
Merge into [X]Substantial overlap with another skill; name the merge target

Evaluation is holistic AI judgment — not a numeric rubric. Guiding dimensions:

  • Actionability: code examples, commands, or steps that let you act immediately
  • Scope fit: name, trigger, and content are aligned; not too broad or narrow
  • Uniqueness: value not replaceable by MEMORY.md / CLAUDE.md / another skill
  • Currency: technical references work in the current environment

Reason quality requirements — the reason field must be self-contained and decision-enabling:

  • Do NOT write "unchanged" alone — always restate the core evidence
  • For Retire: state (1) what specific defect was found, (2) what covers the same need instead
  • Bad: "Superseded"
  • Good: "disable-model-invocation: true already set; superseded by continuous-learning-v2 which covers all the same patterns plus confidence scoring. No unique content remains."
  • For Merge: name the target and describe what content to integrate
  • Bad: "Overlaps with X"
  • Good: "42-line thin content; Step 4 of chatlog-to-article already covers the same workflow. Integrate the 'article angle' tip as a note in that skill."
  • For Improve: describe the specific change needed (what section, what action, target size if relevant)
  • Bad: "Too long"
  • Good: "276 lines; Section 'Framework Comparison' (L80–140) duplicates ai-era-architecture-principles; delete it to reach ~150 lines."
  • For Keep (mtime-only change in Quick Scan): restate the original verdict rationale, do not write "unchanged"
  • Bad: "Unchanged"
  • Good: "mtime updated but content unchanged. Unique Python reference explicitly imported by rules/python/; no overlap found."

Phase 3 — Summary Table

Skill7d useVerdictReason

Phase 4 — Consolidation

1. Retire / Merge: present detailed justification per file before confirming with user:

  • What specific problem was found (overlap, staleness, broken references, etc.)
  • What alternative covers the same functionality (for Retire: which existing skill/rule; for Merge: the target file and what content to integrate)
  • Impact of removal (any dependent skills, MEMORY.md references, or workflows affected)

2. Improve: present specific improvement suggestions with rationale:

  • What to change and why (e.g., "trim 430→200 lines because sections X/Y duplicate python-patterns")
  • User decides whether to act

3. Update: present updated content with sources checked 4. Check MEMORY.md line count; propose compression if >100 lines

Results File Schema

~/.claude/skills/skill-stocktake/results.json:

`evaluated_at`: Must be set to the actual UTC time of evaluation completion. Obtain via Bash: date -u +%Y-%m-%dT%H:%M:%SZ. Never use a date-only approximation like T00:00:00Z.

{
  "evaluated_at": "2026-02-21T10:00:00Z",
  "mode": "full",
  "batch_progress": {
    "total": 80,
    "evaluated": 80,
    "status": "completed"
  },
  "skills": {
    "skill-name": {
      "path": "~/.claude/skills/skill-name/SKILL.md",
      "verdict": "Keep",
      "reason": "Concrete, actionable, unique value for X workflow",
      "mtime": "2026-01-15T08:30:00Z"
    }
  }
}

Notes

  • Evaluation is blind: the same checklist applies to all skills regardless of origin (ECC, self-authored, auto-extracted)
  • Archive / delete operations always require explicit user confirmation
  • No verdict branching by skill origin

Related skills

Forks & variants (1)

Skill Stocktake has 1 known copy in the catalog totaling 1.4k installs. They canonicalize to this original listing.

How it compares

Pick skill-stocktake over full catalog rescans when you only need mtime-based drift detection for incremental re-evaluation.

FAQ

What does skill-stocktake compare to detect changes?

skill-stocktake runs quick-diff.sh, which compares each skill file's modification time against the evaluated_at field in a results.json file from the prior evaluation run, then returns a JSON array of changed or new paths.

Which directories does skill-stocktake scan by default?

skill-stocktake defaults to $PWD/.claude/skills for project skills when CWD_SKILLS_DIR is omitted. Global skills under ~/.claude/skills are included; override paths via SKILL_STOCKTAKE_GLOBAL_DIR for testing.

Is Skill Stocktake safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.