agentsclimarketplace

Skill audit

Skill samhcus/skills/skills/skill-audit

Audit skills for quality, structure, and efficiency. Finds deterministic steps that should be scripts, duplicated logic across skills, composability gaps, and weak descriptions. Run after creating or updating any skill, or when the user says "audit my skills", "review my skills", "check skill quality", "is this skill good", or "improve my skills".From its SKILL.md

Install
npx -y skills add samhcus/skills --skill skill-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.8 KB, 827 tokens by cl100k_base, as published. Nobody here has run it

Skill Audit

Scan skills, then apply judgment to identify what should change and why. The script does detection - you do the decisions.

Input

  • $ARGUMENTS (optional) - a specific skill name to audit in focused mode. Omit to audit all skills.

Step 1 - Scan

~/.claude/commands/skill-audit/scripts/scan-skills.sh $ARGUMENTS

If $ARGUMENTS is empty, scans all skills. If a skill name is provided, scans only that skill (faster, used automatically after creation).

Step 2 - Analyze

Work through each section of the scan output:


Deterministic Step Audit

From INLINE_BASH_COMMANDS and BASH_BLOCKS_PER_SKILL:

For each bash block, classify the operation:

ClassificationWhat it looks likeVerdict
Calls an existing script~/.claude/commands/*/scripts/*.shCorrect - no change
Pure data collectioncat, ls, find, grep, uname, df, free, ssh + read-onlyExtract to script
Text transformationsed, awk, cut, tr with no conditionalsExtract to script
Conditional / judgmentif/then, case, comparisons, decisionsKeep in SKILL.md
Complex pipeline>5 piped commands doing what a script would doExtract to script

For every deterministic block: show BEFORE (the inline block) and AFTER (what the extracted script would look like). Label clearly.

Shared Script Opportunities

From SHARED_SCRIPT_OPPORTUNITIES:

For each match: the skill has inline bash that already exists as a script in another skill. Suggest calling that script directly instead. Name which skill owns it and what the call would look like.

Composability Audit

From DUPLICATE_COMMANDS and the full skill set:

  • Does any skill re-implement data collection that another skill's script already provides?
  • Could any skill call another skill's script instead of duplicating the logic?
  • Are there skills that should chain (one's output is another's input)?

For each duplication: name both skills, show the duplicated lines, suggest which one should own a shared script.

Structure Audit

From SKILL_STRUCTURES:

Flag any skill that:

  • Has inline bash blocks but no scripts/ folder - extraction candidate
  • Has a scripts/ folder but SKILL.md still has inline data collection - incomplete extraction
  • Is a flat .md file (not a folder) - needs migration to folder format

Description Quality

From DESCRIPTION_LENGTHS:

  • Under 80 chars: likely too short to trigger reliably
  • Missing trigger phrases ("use when the user says...")
  • Missing both what-it-does AND when-to-use - both are required for reliable triggering

Missing Metadata

From MISSING_ARGUMENT_HINTS:

Flag any skill using $ARGUMENTS without argument-hint in frontmatter.


Step 3 - Output

For each issue found:

SKILL: <name>
ISSUE: <what's wrong, one sentence>
SEVERITY: high | medium | low
BEFORE:
  <the current inline bash block or current description>
AFTER:
  <the extracted script content or improved description>
WHY: <the reason - reuse, token savings, trigger reliability, etc.>

Group by severity. High = duplicated logic, broken triggering, or token waste. Medium = extraction opportunity. Low = description polish.

Summary Table after all issues:

SkillExtract to ScriptShared ScriptDescriptionTotal

Action List at the end - the 3 highest-value changes to make now, in order.

What ships with it: 1 file

6.4 KB alongside SKILL.md, 1 of them executable

scripts/

Keep looking

Skills are one crate of 326,852. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.