skills/audit-skills/SKILL.md
Audit Claude Code skills for bloat, trigger accuracy, structural quality, redundancy, and pruning opportunities. Use when skills feel bloated, before publishing to lab repo, after building several new skills, when reviewing a single newly-created skill before publishing, or when the user says "audit my skills", "review skills", "check skill quality", "audit this skill", or invokes /audit-skills. Covers both user-level (~/.claude/skills/) and project-level (.claude/skills/) skills, and supports both full-library scans and single-skill reviews. Do NOT load for auditing data analysis scripts (use /audit-script) or project documentation (use /audit-project).
npx skillsauth add musserlab/lab-claude-skills audit-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Systematically review skills for bloat, trigger accuracy, structural quality, redundancy, and pruning opportunities. Produces a findings table with severity levels that the user works through interactively.
This is the skill-level counterpart to /audit-project (documentation health) and /audit-script
(code correctness). Where those audit what skills produce, this audits the skills themselves.
Use AskUserQuestion:
~/.claude/skills/) + project-level (.claude/skills/) scan. Common case: periodic library health check.~/.claude/skills/.claude/skills/ in current projectIf the user's invocation already names a skill or scope (e.g., "audit just the busco skill"), skip this question and proceed.
"Is there anything specific you're worried about? (e.g., 'my pipeline skills feel too long', 'I think some skills overlap')" — lets the user steer attention.
Use AskUserQuestion:
This matters because skills are sometimes created in a separate chat session that has deeper context (e.g., the reference implementation). Quick fixes (path corrections, description tweaks) can be done anywhere, but structural changes (adding code templates, reorganizing sections) are better done where the full context lives.
Default by scope:
Skip this phase if scope is a single skill — the inventory table exists to spot patterns across many skills (oversized files, missing accessory dirs, path issues at a glance). With N=1, just go straight to Phase 2 and read the skill thoroughly.
List all skills in scope. For each, report:
| Skill | Lines | Accessory Files | Quick Health |
|-------|------:|----------------|-------------|
| expression-report | 969 | none | OVER SIZE |
| hpc | 822 | none | OVER SIZE |
| conda-env | 45 | none | OK |
Quick Health indicators (computed automatically):
/Users/...)Present the inventory table and note any patterns before proceeding to detailed review.
Read each skill's SKILL.md (and accessory files if present). Evaluate against the 6 audit
categories below. Load references/quality_checklist.md for detailed per-category criteria.
Is the skill appropriately sized and organized?
references/, templates/, scripts/)Key question: If someone reads just SKILL.md, do they get the workflow and decision points without drowning in detail?
Will this skill actually load when it should?
Common problems: Too generic ("Use when working with data"), too narrow (misses common phrasings), missing exclusions (fires for wrong task).
Is the content focused, clear, and well-structured?
Key question: Could you remove any section without losing something the skill needs to function correctly?
Does this skill duplicate content found elsewhere?
Key question: If this content disappeared, would something else already cover it?
Are references and assumptions still valid?
Only check references relevant to the current project context. Don't chase every path in every skill — focus on skills that are actively used.
Would this skill work in a different context?
/Users/jm284/) instead of ~/ — the #1 skill issue~/Dropbox/Documents-Db-Work/Research/lab_software/lab-claude-skills/skills/ if that directory exists. Flag files that differ.Skip this phase if scope is a single skill. Cross-skill observations may still surface naturally during Phase 2 (e.g., "this skill defers to hpc correctly" or "the description should add a Do NOT load for X exclusion mirroring skill Y") — note those inline as findings, but don't run a full library-wide pass.
After reviewing individual skills, step back and look at the full library:
Present all findings in a single table, ordered by severity (FIX first, then PRUNE, RESTRUCTURE, REFINE):
## Skill Audit Findings
| # | Severity | Skill | Category | Finding | Recommendation |
|---|----------|-------|----------|---------|----------------|
| 1 | FIX | hpc | Portability | Absolute path /Users/jm284/ on line 45 | Replace with ~/ |
| 2 | PRUNE | expression-report | Size | 969 lines, no bundled resources | Move palette + layout specs to references/ |
| 3 | RESTRUCTURE | deep-research-genelist | Redundancy | Template format duplicated in deep-research-reports | Consolidate shared format into one reference |
| 4 | REFINE | conda-env | Triggering | Description doesn't mention "pip" or "pip install" | Add pip to trigger list |
| 5 | OK | audit-script | — | Well-structured, good progressive disclosure | — |
Summary line: "Found N findings across M skills: X FIX, Y PRUNE, Z RESTRUCTURE, W REFINE"
Then ask: "Which findings do you want to work through? (all / by severity / specific numbers)"
For each finding the user wants to act on:
For RESTRUCTURE findings that involve moving content to reference files:
references/X.md for details")For PRUNE findings:
Write a self-contained markdown report to ~/.claude/skills/{skill-name}-audit-report.md
that another chat session can use to implement fixes. The report must include:
The report is a handoff artifact — tell the user they can delete it after fixes are applied. It is NOT a skill or memory file.
new-skill skill for best practices on structure, description
writing, and organization. That skill defines the standards this audit checks against.development
Phylogenetic tree visualization and formatting with ggtree (R) or iTOL (web). Use when rendering a phylogenetic tree as a figure, choosing tree layout, coloring branches or labels by taxonomy, collapsing clades, displaying support values, or adding overlays to a tree. Do NOT load for tree inference (use protein-phylogeny skill) or domain annotation (future separate skill).
development
Configure and manage Claude Code security protections for sensitive files, credentials, and data. Use when the user invokes /security-setup to set up or modify protections against unauthorized file access, credential exposure, or sensitive data leaks.
development
Script organization for data science analysis projects with numbered scripts, data/outs/ directories, and reproducibility conventions. Use when creating new analysis scripts in projects that follow data science conventions (numbered XX_ prefix scripts, outs/ directories, BUILD_INFO.txt). Do NOT load for documentation projects (Quarto books), infrastructure repos, or projects without data/outs/ directory structure.
testing
R renv package management for data science projects. Use when working with renv (renv.lock, renv::restore, renv::snapshot) in R analysis projects. Do NOT load for projects that do not use R or renv.