A 239-point Ask HN thread and Claude Code 2.1.261 answered the same question: where skills live, how to prune them, how to prove they work. The lifecycle.
Every skill in your listing costs context on every turn whether or not the model ever uses it, so the management problem is not "where do I find more skills" but "how do I keep only the ones that pay for themselves". Two things converged on that answer this week. An Ask HN thread — "How do you manage skills files?", 239 points — produced a consistent practitioner pattern: skills in a Git repo, symlinked into each harness, scoped to your own repeatable workflows, tested with evals, pruned by deletion. And Claude Code 2.1.261, released 4 September 2026, shipped /skill-doctor, which lists which loaded skills have never been invoked and what each costs in context, then tells you where to turn them off. Put together, that is a lifecycle: store, load lazily, verify, measure, prune.
The five practices the thread agreed on
Read past the framework bikeshedding and the substantive answers in the Hacker News thread cluster tightly. First, version control with symlinks. Store skills in one Git repository and symlink them into each agent's folder across machines. One commenter's framing stuck: skills are "repeatable agent workflows written to your personal taste", updated when your workflow changes, not pulled from external collections. Second, scope to repeatable work. The leanest setups reported nine or ten project-specific skills — how to add logs, how to review code, how to cut a release — and an explicit "less is more" stance against downloading hundreds. Third, evals as integration tests. Several teams run skills through AI evals that assert on the output, and only write a skill when a problem recurs — "as a new problem arises, not just because". Fourth, drift detection. One team runs an agentic job every two weeks that diffs each skill against the official documentation it encodes and opens a PR when it has gone stale. Fifth, prune by deletion. Periodically remove skills and hooks, watch whether the model gets worse, and only restore the ones whose absence you felt.
Two smaller ideas are worth stealing. A "skill finder" skill: instead of preloading every skill summary, load one skill whose job is to search your Git repo for the relevant skill on demand. And post-session distillation: when the agent struggled through something, ask it to write what it learned into a skill file, then review before committing. That captures corrections, not just happy paths.
The one measured claim in the thread came from a commenter who reported skills cutting token output two to four times by removing the model's own self-prompting, and framed the organisational win as raising the floor — a consistent baseline across a team rather than a higher ceiling for one person. We have seen the same shape in our own transcripts.
What /skill-doctor adds
Practitioner discipline handles storage and testing. It does not tell you what each skill costs, because that number lives inside the harness. /skill-doctor does. Run it in an interactive Claude Code session (2.1.252 or later) and the report opens in the plugin manager's Stats tab: each loaded skill, whether it has ever been invoked, and its context cost. In a non-interactive -p run it prints as text, which means you can put it in a weekly cron and diff the output.
claude -p "/skill-doctor" > skill-report.txt
# then keep the last few reports and diff them:
diff skill-report.prev.txt skill-report.txt
The report flags skills that have never fired and says where to switch them off. That is the pruning signal the thread's "delete and see" method was approximating by feel. If a skill has not fired in a month of real sessions and costs a measurable slice of every turn, it goes.
Two related numbers to read alongside it. /cost now shows a per-session prompt-cache line and, since 2.1.260, a likely cause when the cache misses — tool definitions or the system prompt changed, or the session idled past the TTL. A skill listing that changes between turns is exactly the kind of system-prompt change that invalidates a cache, so a bloated or unstable skill set costs you twice: once in context and again in cache misses. We covered the cache-warm pattern in cache-warm subagent orchestration and the listing-budget setting in the skill listing budget fraction; both are worth rereading with /skill-doctor output in hand.
Comments · 0
Beta: comments are stored locally on your device and not visible to other readers.
No comments yet. Be the first to share your thoughts.