skill-audit
Skill0 starsChanged 36 days agoMITView on GitHub
Audit of Claude Code skills, the person's own and third-party, for trigger quality, token cost and risk: description length and trigger wording, body size, progressive disclosure, duplication between skills, stale facts, dangerous instructions, frontmatter fields, skillOverrides, and measured always-on and on-invoke tokens, ending in a short report with concrete edits. Use when asked to review, audit, trim, vet, validate or test a skill, when a skill fails to trigger or triggers at the wrong time, when the skills listing or the context feels heavy, before enabling a third-party skill (a whole plugin is vetted with smart-mods first), and after writing or changing any SKILL.md, in any project.
58 other projects use a version of this.
Adopted by
Most recently taken up by
- aditya-vermax/skillstheir own version, first seen Nov 8, 2026
- NickKostovny/marketing-playbookstheir own version, first seen Nov 8, 2026
- KRISH-exe-29/ai-agent-skill-routertheir own version, first seen Nov 8, 2026
- jocarrd/crux-agentstheir own version, first seen Nov 8, 2026
- rafaelh/skillstheir own version, first seen Nov 4, 2026
- 0xUrsanomics/utopia-ostheir own version, first seen Nov 1, 2026
Used with
Projects with it also use root-cause, write-a-skill and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Ingramradical235Skillroot-cause
Structured root cause analysis using WHERE (MECE decomposition) then WHY (causal structure diagrams) pipeline. Includes coin-flip detection, logical-leap detection, and vicious cycle intervention. Use when buffer enters YELLOW/RED, when metrics stall, or when Actions execute but don't produce results.
Also in 3 projects that use this
simo97Skillwrite-a-skill
Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.
Also in 4 projects that use this
Microsoft AzureSkillreflect
Learning capture system that extracts HIGH/MED/LOW confidence patterns from conversations to prevent repeating mistakes. Use after user corrections ("no", "wrong"), praise ("perfect", "exactly"), or when discovering edge cases. Complements .squad/agents/{agent}/history.md and .squad/decisions.md.
Also in 5 projects that use this
sunnyclinches44Skillexplain
Explains code using real-world analogies and ASCII diagrams
Also in 4 projects that use this
eherrerosjSkillhumanize
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive 'Signs of AI writing' guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases. Triggers on: 'humanize', 'make this sound human', 'remove AI writing', 'de-AI', 'sound more natural', 'less robotic', 'too AI-sounding', or when reviewing text that reads like AI output.
Also in 3 projects that use this
MicrosoftSkillreport
Turn an exploration (threads, findings, charts) into a single Markdown report — note, blog post, executive summary, KPI dashboard, slide brief, or multi-section analytical report, with embedded charts.
Also in 3 projects that use this
Other versions58 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 58
- nyldn/claude-octopus★ 4.4ksame name
- automagik-dev/genie★ 351same name
- namastexlabs/automagik-genie★ 351same name
- Rtur2003/Claude-Code-Promts-Skills★ 53same name
- fimoklei/pm-ai-playbook★ 42same name
- cth9191/skill-audit★ 23same name
- anysiteio/agent-skills★ 20same name
- okjpg/skill-audit★ 15same name
- macintog/codex-spine★ 12same name
- sharbelxyz/skill-audit★ 9same name
48 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- clean-codeSkill
- cloud-workerSkill
- context-hygieneSkill
- coordinator-methodSkill
- git-conventionsSkill
- matt-bridgeSkill
- merge-gateSkill
- model-mixSkill
- mod-uiSkill
- overnightSkill
- release-watchSkill
- roadmap-trackerSkill
- screen-mapSkill
- smart-modsSkill
- smart-ultracodeSkill
- verified-researchSkill
- windows-opsSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 52 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Keep the scale: in one coordinator session skills were about 1% of a 1M window and messages 49%.
- Very specific: line 32
Stale facts: every version, date, model name, price, limit and path.
- Distinctive: line 34
Pointers: every skill, file and command a skill names exists on this platform, with Windows syntax where it runs here.
- Very specific: line 35
claude.ai upload: only name, description, license, compatibility, metadata and allowed-tools pass.
- Distinctive: line 47
After any override or description edit, rerun the trigger test: a skill hidden or shortened may stop firing.
- Distinctive: line 70
Every skill in scope has a verdict and measured tokens, or a stated reason it was not measured.
- Distinctive: line 71
Every finding names its file and line, and every edit is concrete.
“Common” is measured: kept by at least 6 in 10 of the 52 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Decide what each skill costs, whether it triggers when it should, and whether it is safe, then report concrete edits. Writing a new skill is skill-creator's job; this skill checks what exists. Related rules: model-mix (models and budget), smart-ultracode (fan-out over many skills), verified-research (checking a fact a skill states), release-watch (facts gone stale upstream), context-hygiene (session-level cost), smart-mods (a plugin that ships a mod), coordinator-method (how edits land). The person's own rules win: an audit may shorten or move a rule of coordinator-method, model-mix or smart-ultracode, never weaken it. Field tables, shell recipes, the danger list and the report template are in reference.md: read it when a step says so.
1. Scope
- Name what is audited: one skill, the person's folder, a skills repo, a third-party skill before install, or the whole listing. Skills live in
~/.claude/skills, a project's.claude/skills, plugins and the bundled set. - Audit the installed copy, because that is what loads, and edit the repo source. When both exist,
diff -r <repo>/<name> ~/.claude/skills/<name>: drift is a finding. - Bundled and enterprise skills are out of scope. Symlinked skills belong to another tool: measure them, change nothing in the target.
- A third-party skill is never rewritten: adapt around it, and the levers are settings (section 4).
2. Measure first, with no model
Cost model: every listed skill pays its name, description and when_to_use in every session (about 100 tokens each). The listing cuts description plus when_to_use at 1,536 characters. The body loads when the skill is invoked and then stays for the session. After auto-compaction each invoked skill is re-attached with its first 5,000 tokens, within 25,000 for all, most recent first. So the rules that must survive go first in the body.
- Inventory (lines, description characters, files, flags): the snippet in
reference.md. - Tokens per skill:
claude --plugin-dir <skill folder> plugin details <name>prints always-on and on-invoke tokens (estimates). One call per skill folder: the parent folder fails. In 2.1.292 it worked on a plain folder and through a symlink. - Validity:
claude plugin validate <skills dir> --strict --jsonnames syntax and schema errors. In tests it accepted a folder namedskillsor one containing askillsfolder, and a repo root with another name failed with "No manifest found": copy the skill into a tempskillsfolder. A broken SKILL.md loads with empty metadata, so it never triggers but still runs by/name. Validate does not follow symlinks: give it the real path. - In a session:
/skillsthentsorts by tokens;/doctorlists unused user-installed skills;/usageshows the share of recent usage by skill, subagent, plugin and MCP server (approximate, local history only);/contextshows what fills the window. /skill-doctor(v2.1.252+) reports each skill's cost and use and flags skills never invoked, excluding bundled and enterprise skills. Unverified here: it needs feature-flag fetching and was not run on this machine or in the Desktop bundle. If it is missing, use/skillsandplugin details.- Keep the scale: in one coordinator session skills were about 1% of a 1M window and messages 49%. Fix trigger quality and oversized bodies before shaving description tokens.
3. Check each skill
- Frontmatter:
nameequals the folder, lowercase letters, digits and hyphens, at most 64, noclaudeoranthropic.descriptionnon-empty, under 1,024 characters, no XML tags, third person. Unknown fields are ignored without error, so a misspelled field silently does nothing: check each key against the table inreference.md. - Trigger: the key use case comes first; it says what the skill does and "Use when" situations the person would not name; it carries the words they actually say, in Italian and English; no other description claims the same trigger (two owners and the wrong one fires); not so broad that it fires on unrelated work.
- Body: under 500 lines and 5k tokens (official limits; the house range is 40-120 lines). Catalogues, tables and templates go in files linked from SKILL.md one level deep with a "read when" line, and a reference file over 100 lines gets a table of contents. Deterministic steps become scripts that run, since only their output enters context. One default, not a menu of options.
- Duplication: a rule or table that appears in two skills, or in CLAUDE.md as well, stays in one place and the others point to it. Grep a distinctive line across folders.
- Stale facts: every version, date, model name, price, limit and path. Compare with
claude --versionand the changelog; a claim that needs a source goes toverified-research, upstream drift torelease-watch. A fast-changing fact with no date, version or "unverified" mark is a finding. - Dangerous instructions: the list in
reference.md. A skill is instructions plus scripts that run with the person's permissions. - Pointers: every skill, file and command a skill names exists on this platform, with Windows syntax where it runs here.
- claude.ai upload: only
name,description,license,compatibility,metadataandallowed-toolspass.context,pathsanddisable-model-invocationbreak the upload: flag them when the skill is meant for claude.ai, Cowork or the Skills API.
4. Triage by invocation
Pick one verdict per skill:
- keep: used often, or named in CLAUDE.md or by another skill.
- trim: description or body over the limits above. Move catalogues to a reference file.
disable-model-invocation: true: a procedure the person runs by name and never wants started on its own. Zero listing cost. It also stops preloading into subagents and, from v2.1.196, running from a scheduled task, so never set it on a skill that CLAUDE.md, another skill, a workflow or a subagent must load.skillOverrides:name-onlyfor rare skills Claude should still find by name,user-invocable-onlyfor a menu-only skill,offto hide it everywhere, Remote Control and the Agent SDK included. Plugin skills ignore it: disable those in/plugin.- merge or delete: two skills with one job, or one nobody invokes.
After any override or description edit, rerun the trigger test: a skill hidden or shortened may stop firing.
5. Test before and after
- Trigger test: at least 3 prompts that should fire it and 3 that should not, in Italian and English, none naming the skill, each in a fresh session. Check that the Skill tool fired. Run the budget check in
model-mixfirst: 6 or more fresh sessions spend plan usage. Run each prompt as a fresh headless session with--model sonnetand look for a Skill tool call in its stream-json output; the exact command is unverified, so calibrate it on one prompt and record it inreference.md.skill-creatortunes descriptions this way. claude plugin eval(v2.1.269+) runs cases with a with-versus-without baseline. It spends plan usage: run the budget check inmodel-mixfirst, pin--modelto the full ID of each model the skill will run on (Haiku 5.5claude-haiku-5-5, Sonnet or Opus, as the rows ofmodel-mixit triggers on), set--judge-modelto the full ID of Opus 5.5 (judge row ofmodel-mix, which names no ID: read it from the models page) because its default is thehaikualias, too light for a judge row, and cap--max-cost-usd. Its runs load no user settings, CLAUDE.md, MCP or other skills, so a pass says nothing about competition inside a crowded listing.- Unverified: whether eval accepts a plain skill folder through
--plugin-diror as its target. Calibrate once on one small skill with a cost cap before planning around it; until then use the trigger test.
6. Report
- One block per skill, worst first, using the template in
reference.md. Every edit names the file, the lines and the change (old to new, or "move lines a-b toreference.md"). No "consider shortening". - End with totals: always-on tokens before and after, skills changed, and what was not measured and why.
- Many skills: measure in the shell, judge a few in the main session, and fan out only when
smart-ultracodesays the list is large. Vetting a third-party skill that ships scripts or hooks is security-critical work inmodel-mix; a plugin that may contain a mod is vetted withsmart-mods. - An audit edits nothing by itself.
7. Apply, only when asked
- Edits to the person's skills go on a branch and a PR per
coordinator-method. After the merge, sync the installed copies and run section 2 again. skillOverridesanddisable-model-invocationin settings are settings changes: ask first, and useupdate-config. In/skills, Space cycles a skill's state and Esc saves it to.claude/settings.local.json.- Re-measure, and rerun the trigger test on every changed description.
Done when
- Every skill in scope has a verdict and measured tokens, or a stated reason it was not measured.
- Every finding names its file and line, and every edit is concrete.
- Unverified items (
/skill-doctor, eval on a plain folder,/usageper-skill numbers) are marked as such in the report. - Triggers were retested after each change, and nothing was edited or switched without the person's ok.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

