Files
skills/skills/kvb-skill-cleanup/SKILL.md
T
Kevin Veen-BirkenbachandClaude Opus 5.5 3c2f6c44b5 refactor(skills): cap every SKILL.md at 600 words and cut agent messages
Every loaded SKILL.md and every listed description is paid on every turn of every session, and every delivered message costs its recipient a full turn. scripts/budget.py gains SKILL_WORDS = 600, enforced by test_lock, and test_naming forbids a skill naming its own slash command; 53 descriptions and 10 body lines drop it. The 18 longest skills move details into 31 side files read only in their situation (organize's capacity, succession, peers, offices, relay and lineage; cleanup's docker, worktrees, execute and ask; code-tune, changelog, triage, dream, split and others), so all SKILL.md files shrink from 33866 to 26291 words without dropping a rule; an independent review of HEAD against the new text found no loss in 60 of 64 skills and three weakenings, now restored (WSJF re-estimates after an objective change, cleanup's volume checklist, essence's absolute dates).

The kvb-org-organize Peer protocol sends status that asks nothing to the news board, answers nothing that asks nothing, keeps messages terse, and lets light runs admit themselves in the operator's wording; the skills follow it (operator reads the register, relax and wakeup reply through the news, evening collects them there, wsjf asks only for missing estimates, cleanup and triage batch their questions). Skills that explore code ask the codebase-memory-mcp graph first, subagent briefs scale with the stakes and cap their answers, and the skills that need the full register or council tables call show --wide or list --long.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 17:07:23 +01:00

2.1 KiB

name, description
name description
kvb-skill-cleanup Delete legacy skills that renamed or removed skills left in Claude, Codex, agent and project dirs.

${CLAUDE_SKILL_DIR}/scripts/legacy.py reads the skills repository's git history, where every rename and deletion of a skill is recorded, and classifies each installed skill directory:

legacy.py --skills-repo <skills repo> --root <dir> [--root <dir> ...] [--json]
Verdict Meaning Action
current shipped by the skills repository or its lock keep
project tracked in the git repository that holds the root keep
legacy renamed; the successor column names the current skill delete
removed deleted from the skills repository without a successor delete
unknown none of the above, for example the operator's own keep, report

Step 1: roots

Every one that exists: ~/.claude/skills, ~/.agents/skills, ~/.codex/skills, and .claude/skills and .agents/skills of the current repository and of every project the operator names.

Step 2: scan and confirm

Run legacy.py over all roots. Show the legacy and removed rows in one table (| Root | Skill | Successor |) and the unknown rows below it; the kvb-transcend skill can carry an unknown one over. Then AskUserQuestion: Delete all legacy and removed / Pick per root / Delete nothing.

Step 3: delete

  • A root that an installer rewrites as a whole (the skills repository's make install for the home roots, a project's own skill install target) is cleaned by running that installer, which also refreshes the current skills; where the sandbox blocks it, it goes to the operator as below.
  • Otherwise rm -r <path> per confirmed row where the sandbox lets the agent write; every row it does not goes to the kvb-org-operator skill as an operator command.
  • A settings file whose hook command still points into a deleted skill directory is reported with its line; settings files stay the operator's.

Step 4: verify

Run legacy.py again: no legacy or removed row may remain in a cleaned root. Report the before and after counts per root.