About skill-prune
skill-prune is a maintenance skill for removing obsolete, orphaned, or redundant material from agent skills. It evaluates candidates against explicit signals and safety rules, then requires an approved deletion plan rather than deleting automatically.
Key features
- 01Four criteria for pruning content
- 02Safety checks for protected files
- 03Deletion plan with rationales
- 04Post-prune link and duplicate checks
Use cases
- 01Quarterly skill maintenance
- 02Reviewing orphan reports from the linter
- 03Trimming oversized skill files
- 04Removing content for retired challenges
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill skill-pruneAfter installing, type/skill-prunein Claude Code to confirm it loaded.
Details
From the project READMESkill Prune
Inverse of /skill-update. Removes content rather than adding it. Run during quarterly maintenance, after engagements, or when scripts/skill_linter.py reports orphans / duplicates.
When to invoke
- Quarterly cadence.
- After
scripts/skill_linter.py --check-orphansreports orphan reference files. - After a SKILL.md or reference file grows past its cap and needs trimming.
- After a de-specialization sweep, to drop content tied to retired challenges.
Prune criteria (the four signals — same shape as /skill-update, inverted)
A reference / scenario / line is a prune candidate when it satisfies any of:
- Orphan — not linked from any SKILL.md or other reference file in the last 60 days.
- Referenced only by failed engagements — appeared in
attack-chain.mdof runs that endedstatus=BLOCKED, never in a successful chain. - Contradicted by newer content — a later scenario / pattern supersedes it; the older entry no longer reflects current technique.
- Redundant with newer content — same technique covered more clearly elsewhere.
Removing content fails any of these → keep it.
Safety rules
- Never prune a file with
<!-- KEEP: <reason> -->annotation. - Never prune content cited in a still-open engagement's
OUTPUT_DIR/attack-chain.md. - Never prune the canonical-home file for a single-owner rule (brute-force, output-discipline, env-reader, skill-update).
- Bias toward keeping technique-rich content over operational lore.
Procedure
- Run
scripts/skill_linter.py --check-orphansto surface orphans. - For each candidate file or block, evaluate the four signals.
- Build a deletion plan — show files / lines to remove with one-line rationale per item.
- Apply deletions only after the plan is approved (skill-prune does not auto-delete during invocation).
- Re-run
scripts/skill_linter.pyto confirm the change broke no other links and didn't reintroduce duplicates.
Output
Concise change report:
- Removed. File or block + one-line rationale per item.
- Kept (flagged for follow-up). Items that failed all four signals but are worth revisiting next quarter.
- No prunes. State explicitly when nothing warranted removal.
Anti-Patterns
- Pruning content because it's old — age alone is not a signal; relevance is.
- Pruning a reference because its parent SKILL.md is bloated — fix the SKILL.md instead.
- Removing a single-owner canonical file (brute-force / output-discipline / env-reader).
- Pruning during an active engagement that may still cite the content.
Comments
Markdown supported