New to Claude Skills? Learn how to install them →

Slobehub on GitHub

Skills Audit

Free

Automate checks for skill consistency and integrity.

by lobehub81.5k stars on lobehub/lobehub
1 views
Updated Aug 1, 2026
Get this skill

Free · Opens the source repo

What Skills Audit does

The Skills Audit tool is designed to help developers and designers maintain the integrity of their AI agent skill sets located in the .agents/skills/ directory. It provides a systematic approach to auditing SKILL.md files, ensuring that skills remain relevant, non-redundant, and properly documented. By conducting regular audits, users can prevent the catalog from becoming cluttered with duplicate or outdated skills, which can lead to confusion and inefficiencies in skill usage.

The auditing process begins with an inventory of all SKILL.md files, ensuring that no cached lists are relied upon. This is followed by pulling the frontmatter from each skill to review their descriptions and detect any overlaps or redundancies. The tool checks for skills with similar descriptions or overlapping trigger keywords, allowing users to identify potential duplicates or skills that may need to be merged or refined. The audit also verifies cross-references between skills, ensuring that all mentioned skills are still valid and relevant.

Additionally, the Skills Audit tool emphasizes the importance of consistent description formatting. It flags any skills that do not conform to the recommended template, helping to standardize the skill documentation across the project. Skills that have not been maintained or referenced in recent months are also flagged for archival, ensuring that only active and relevant skills remain in the catalog.

Overall, this tool is ideal for teams managing a large number of skills who want to maintain a clean and efficient skill set. By regularly auditing skills, teams can ensure that their AI agents operate smoothly and effectively, reducing the risk of errors due to outdated or conflicting skills.

When to use it

Use this tool regularly, ideally weekly or after significant changes to the skill set, to maintain clarity and organization.

When not to use it

This skill is not necessary for projects with very few skills or where skills are rarely added or modified.

What you can build with it

Weekly Skill Review

Set a weekly schedule to run the Skills Audit tool to ensure your skill set remains organized and up-to-date.

Post-Modification Check

After adding or renaming multiple skills, run the audit to catch any potential overlaps or inconsistencies.

Preparing for Deployment

Before deploying a new version of your AI agent, use the audit to ensure all skills are relevant and properly documented.

How to install Skills Audit

View source

1. Install with the skills CLI

npx skills add lobehub/lobehub/skills-audit --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by lobehub

Skills Audit

Periodic review of the project-local skill set under .agents/skills/. The goal is to catch drift before the catalog becomes confusing — too many skills, overlapping triggers, descriptions that no longer match the body, references to skills that were renamed/deleted.

Recommended cadence: weekly, or after any week where >1 skill was added/renamed.

Procedure

1 — Inventory

Build a fresh census of all SKILL.md files. Do NOT trust any prior cached list.

find -L .agents/skills -name SKILL.md | wc -l                      # total count, including symlinked skills
find -L .agents/skills -name SKILL.md -exec wc -l {} \; | sort -rn # by body length, including symlinked skills

Group by domain in a mental table (DB / state / UI / agent / testing / workflow / docs / etc.). Note new arrivals since last audit (git log --since="1 week ago" -- .agents/skills/).

2 — Pull frontmatter for all skills

# Extract name + description for each SKILL.md
for f in .agents/skills/*/SKILL.md; do
  echo "=== $(basename $(dirname $f)) ==="
  awk '/^---$/{c++; next} c==1' "$f" | head -20
done

Read the description block of every skill. The body can stay unread unless step 4 flags it.

3 — Detect overlap / redundancy

For each pair within the same domain, ask:

  • Same description? → likely duplicate (one is probably a stale rename leftover, or a global-vs-local collision).
  • Trigger keywords substantially overlap? → either merge, OR tighten one description so the model can choose unambiguously.
  • One skill's body says "see also: foo"? → confirm foo still exists, AND confirm the cross-reference is still meaningful (the referenced skill may have absorbed the referrer's concerns).
  • Skill duplicates content from AGENTS.md? → fold into AGENTS.md or slim the skill to just the delta.

Common false positives (do NOT merge):

  • db-migrations vs drizzle — distinct workflows (migration files vs schema authoring).
  • agent-runtime-hooks vs agent-tracing vs agent-signal — different surfaces of the agent system.
  • testing vs agent-testing — different test types.

4 — Description format consistency

Apply the standard template:

{Topic + key conventions or scope}. Use when {scenarios — verbs + nouns}. Triggers on {`code-symbols`, 'natural phrases', '中文'}.

Skills with disable-model-invocation: true (user-invoked only, slash commands) don't need Triggers on — they're never auto-routed.

Flag descriptions that:

  • ❌ Have NO Use when clause (model can't decide when to load it).
  • ❌ Have NO Triggers on clause (and aren't disable-model-invocation).
  • ❌ Use weird formats (numbered lists (1)(2)(3), Triggers: colon instead of Triggers on, MUST use when ... as opening word).
  • ❌ Are dramatically terse for a 200+ line body, or dramatically verbose for a 60-line body.
  • ❌ Reference deleted/renamed skills.

5 — Stale-skill check

For narrow domain skills (e.g. response-compliance, one-off CLI workflows):

# Confirm the referenced code surface still exists
rg -l "response-compliance|openresponses" packages/ src/              # adjust per skill
git log --since="3 months ago" -- .agents/skills/ < skill > /SKILL.md # is it being maintained?

If the underlying surface is gone and the skill hasn't been edited in 3+ months → flag for archival.

6 — Cross-reference integrity

Any skill body mentioning another skill by name:

# Scan all skill bodies for skill-name references
rg -o '`[a-z][a-z0-9-]+`' .agents/skills/*/SKILL.md | grep -v ':\s*$' | sort -u

For each name extracted, confirm .agents/skills/<name>/SKILL.md exists. Broken references happen after renames — fix them in the same audit pass.

7 — Output report

Produce a markdown summary back to the user with the same structure as the original audit (this skill was created during one):

## 📊 Inventory

{count, domain breakdown}

## 🎯 Recommendations

### 🔴 High confidence

- {action} — {reason}

### 🟡 Medium confidence

- {action} — {reason needs verification}

### 🟢 Low confidence / no-op

- {item considered but skipping because ...}

## 📋 Suggested order

{table of actions with risk + LOC estimate}

End by asking the user which actions to apply — do NOT auto-apply unless the user passed --apply and even then confirm destructive deletes individually.

Output rules

  • Be specific. "Skill X overlaps with Y" is useless without naming the overlapping triggers.
  • Cite line numbers when flagging description / body issues.
  • Don't recommend merges unless the call sites would actually load the merged skill in the same context.
  • Don't recommend deletes for skills that haven't been touched recently — "unused" can mean "stable", not "dead".

What NOT to do

  • ❌ Don't rename skill directories without checking for cross-references AND user memory entries that name the old slug.
  • ❌ Don't normalize a description by removing trigger keywords just to fit the template — the keywords are the routing signal.
  • ❌ Don't fold a heavy 200+ line skill into another just because they share a domain — large skills get loaded selectively and merging makes everything load.
  • ❌ Don't propose .agents/skills/INDEX.md or <domain>-<skill> prefix renames unless the user explicitly asks — costs > benefits for cosmetic reorgs.

Related history

  • First audit: chore/skills-audit branch (2026-05-25) — deleted source-command-dedupe, renamed data-fetchingdata-fetching-architecture, normalized 9 descriptions, created this skill.

Frequently asked questions about Skills Audit

Similar skills