Skip to content
Skillpedia
Misc280k · #286

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

https://github.com/affaan-m/ECC/blob/main/skills/skill-stocktake/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/affaan-m/ECC/blob/main/skills/skill-stocktake/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
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-stocktake

Or download just the file:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/skill-stocktake/SKILL.md -o SKILL.md
Technical 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).

  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 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

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills