agentleFS
MikkoNumminenMikkoNumminen/claude-skills/skills/skills-quality/SKILL.md

skills-quality

Skill0 starsChanged 5 months agoMITView on GitHub

Audit Claude Code skills (project + global) for token-economy hygiene — do they push work onto the LLM that a deterministic script should handle? A Python pre-pass flags smells; only flagged or changed skills enter LLM review (manifest keyed on skill_hash + ruleset_hash, so editing the rules re-scans all). Use for "audit my skills for token waste / LLM-as-loop smells", "are my skills well-designed", or `/mikko-skills-quality`.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the table is All skills pass quality + unchanged - nothing to review., STOP.

    line 42

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

When to use

User says "audit my skills for quality", "any skills wasting tokens?", "look for LLM-as-loop smells", "are my skills well-designed", or invokes /mikko-skills-quality.

Quarterly cadence, or after writing a new skill. Companion to /mikko-skills-freshness (which checks for STALE skills); this one checks for BADLY-DESIGNED skills.

Workflow

0. First run — baseline first

Fresh install with no manifest yet? Run --update BEFORE reviewing. The script writes the manifest unconditionally and the next invocation starts from "all clean". Skip to step 5.

1. Run the audit

Pick the right script path for how the skill was installed:

Install methodScript path
install-mikko.sh (prefixed)python ~/.claude/skills/mikko-skills-quality/skills-quality.py
install.sh skills-quality --target user (unprefixed)python ~/.claude/skills/skills-quality/skills-quality.py
Library checkout (no install)python skills/skills-quality/skills-quality.py (from claude-skills repo root)

Windows PowerShell — same paths with $env:USERPROFILE instead of ~ and \ separators.

Defaults: both scopes (project under cwd/.claude/skills/, global under ~/.claude/skills/), no manifest write.

2. Read the table

SCOPE    SKILL                            STATUS     TOP FINDING
project  big-iterator                     flagged    [HIGH] 6 loop-style prose patterns with no companion script. Likely asking ...
project  no-frontmatter-skill             flagged    [HIGH] Frontmatter missing required field(s): description.
global   touched-but-clean                changed    pre-pass clean - needs LLM verify (changed since last review)

If the table is All skills pass quality + unchanged - nothing to review., STOP. Nothing further to do.

3. Per-row action

The TOP FINDING column + the optional Additional findings: block carry the full signal. Do NOT open the skill's SKILL.md by default — only when the message is ambiguous or the user asks for a fix proposal.

StatusWhat to do
flaggedRead the top finding. Decide if the smell is real; propose a concrete extraction (move iteration into a script, add the missing frontmatter field, etc.) — don't auto-fix.
changedPre-pass passed but the skill was edited since the last baseline. Three-bullet check: (a) frontmatter still has name + description; (b) description still matches what the skill does; (c) any new loop-prose the rules might have missed. No deep read needed if all three are obvious from a 10-second skim.
removedSkill directory gone. Confirm intentional; --update will drop the entry.

4. Ask before editing

Present findings as a short table first. Do not modify any skill file without an explicit per-skill go-ahead.

5. Baseline once accepted

Same path as step 1, plus --update:

python <path-from-step-1> --update

Writes the manifest at each scope root. The next audit treats today's state as baseline.

The ruleset

Lives in rules.py next to this script. Each rule's own message is self-describing in the audit output — no per-rule cheat-sheet needed here. The single non-obvious property: editing rules.py re-keys every skill, because the manifest entry's key is (skill_hash + sha256(rules.py)). A rule change forces a full re-review next audit.

install.sh (symlink mode) keeps reading the source rules.py and _lib/. If the source tree moves or you delete it, the symlinks dangle and the skill silently breaks on next invocation — re-install from a fresh checkout. install-mikko.sh (copy mode) bundles sibling copies; this makes the installed rules.py the authoritative source for the hash, so editing the installed copy re-keys everyone locally (handy for tuning thresholds without forking the source). git pull of the source repo won't propagate to copy-mode installs without re-running install-mikko.sh.

Freshness check

[[check]]
kind = "path_exists"
path = "skills-quality.py"
root = "skill_dir"

[[check]]
kind = "path_exists"
path = "rules.py"
root = "skill_dir"

[[check]]
kind = "file_contains"
path = "skills-quality.py"
pattern = "SCRIPT_VERSION"
root = "skill_dir"

[[check]]
kind = "file_contains"
path = "rules.py"
pattern = "RULES"
root = "skill_dir"

[[check]]
kind = "no_broken_md_links"

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.