skill-stocktake
Lets your agent review the quality of code tools and commands. It helps understand what's working well and what needs improvement.
What it does
This tool checks the quality of other tools (called 'skills') that you use with the AI. It ensures they are working well and are organized.
When to use it
- ✓When you want to make sure your AI tools are working correctly.
- ✓When adding or updating tools for the AI.
- ✓To perform a complete review of all available tools.
Example of what to ask your AI
“Check the quality of my AI tools.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool examines 'skills' (instructions for the AI) for quality issues. It can do a quick check only on tools that have changed or a full review of all of them.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add affaan-m/ECC --skill skill-stocktakeOr download just the file:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/skill-stocktake/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
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:
| Path | Description |
|---|---|
~/.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.
Directories named .trash are excluded from both scan modes: archived skills are not part of the live inventory. If an older results.json contains .trash entries, start a new Full Stocktake using the cache initialization below before resuming Quick Scan. An ordinary save merges entries and does not remove archived records.
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
| Mode | Trigger | Duration |
|---|---|---|
| Quick Scan | results.json exists (default) |
5–10 min |
| Full Stocktake | results.json absent, or /skill-stocktake full |
20–30 min |
The shell scripts require Bash, Node.js, and jq on PATH.
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).
- Read
~/.claude/skills/skill-stocktake/results.json - 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) - If output is
[]: report "No changes since last run." and stop - Re-evaluate only those changed files using the same Phase 2 criteria
- Carry forward unchanged skills from previous results
- Output only the diff
- 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 this entire block in one Bash invocation. It prints the inventory for the agent and initializes a new full run only when there is no unfinished run to resume:
(
set -euo pipefail
SCAN_JSON=$(bash ~/.claude/skills/skill-stocktake/scripts/scan.sh)
printf '%s\n' "$SCAN_JSON"
RESULTS_JSON=~/.claude/skills/skill-stocktake/results.json
CACHE_STATUS=""
if [[ -f "$RESULTS_JSON" ]]; then
CACHE_STATUS=$(jq -r '.batch_progress.status // ""' "$RESULTS_JSON")
fi
if [[ "$CACHE_STATUS" == "in_progress" ]]; then
RESUMED_RESULTS=$(jq --slurpfile saved "$RESULTS_JSON" '
. as $inventory | $saved[0]
| .skills = (.skills | to_entries
| map(.key = (.value.path // .key))
| map(select(. as $entry
| $entry.value.mtime != null
and any($inventory.skills[];
.path == $entry.key and .mtime == $entry.value.mtime)))
| from_entries)
| .mode = "full"
| .batch_progress = {
total: ($inventory.skills | length),
evaluated: (.skills | length), status: "in_progress"
}
' <<< "$SCAN_JSON")
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \
"$RESULTS_JSON" --replace <<< "$RESUMED_RESULTS"
else
INITIAL_RESULTS=$(printf '%s\n' "$SCAN_JSON" | jq '{
mode: "full", skills: {},
batch_progress: {total: (.skills | length), evaluated: 0, status: "in_progress"}
}')
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \
"$RESULTS_JSON" --replace <<< "$INITIAL_RESULTS"
fi
)
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)
| Skill | 7d use | 30d use | Description |
|---|
…
FAQ
What are 'skills'?
'Skills' are like small programs or sets of instructions that teach the AI to perform specific tasks.
What are 'Quick Scan' and 'Full Stocktake'?
'Quick Scan' checks only tools that have been recently changed. 'Full Stocktake' performs a complete review of all tools.
What happens if a tool is not found?
If a tool is not found, it won't be included in the quality check. The tool indicates which locations it searched.
Details
Original description by the author
Use when auditing Claude skills and commands for quality. Supports Quick Scan (changed skills only) and Full Stocktake modes with sequential subagent batch evaluation.
repo: affaan-m/ECC
Popularity
- GitHub stars
- 280k
- Ranking position
- #286
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
accessibility
Helps your agent create interfaces that everyone can use. Ensures websites and apps work well for people with disabilities, like those who are blind or have reduced mobility.
affaan-m/ECC
agent-architecture-audit
Makes your agent check if everything is working correctly. It finds and fixes problems in AI systems, ensuring they perform as expected.
affaan-m/ECC
agent-eval
Helps your agent compare different AI coding tools. It measures which one is faster, cheaper, and more reliable for specific tasks.
affaan-m/ECC
agent-harness-construction
Makes your agent better understand how to perform tasks. It optimizes the tools and instructions the agent uses to increase its chances of success.
affaan-m/ECC
Similar skills
template-skill
This is a generic template for new skills. It needs a specific description to be useful.
anthropics/skills
shipping-and-launch
Prepares your code to be safely launched into production. Helps ensure everything is ready, monitored, and has a rollback plan.
addyosmani/agent-skills
using-agent-skills
Has your agent discover and use other skills. It's useful for deciding which tool or workflow to use for a specific task.
addyosmani/agent-skills