jk
Writing

Why I deleted 43,000 lines of agent skills

26 July 2026

jko-claude-plugins is my plugin marketplace for Claude Code. In spring it grew big per-language handbooks. By the 2.0.0 releases in May, the rust and swiftui plugins had 22 and 18 reference files, including an index of what was current in 2026.

They had three problems. They used up context the agent needed for the actual work. They were pinned to a moment: rust 2.1.0, in June, tracked Rust 1.96. And they made things up. The rust 2.0 commit corrected its own earlier claim: “Cranelift remains nightly-only (not stable since 1.79 as previously claimed)”. The swiftui 2.0 rewrite removed “Fictional numeric gates” and “Made-up FB / CVE / Sentry IDs”.

In July a review fixed an ESP-IDF timer task priority the skill had wrong (“1, not 24”) and removed “invented thresholds/numbers”. It also added lint-plugins.py, where “Every check here corresponds to a bug found in a real review”.

On 25 July I deleted most of it: 243 files, 2,572 lines added and 43,480 removed. Plugins went from 12 to 8 and commands from 34 to 10. The rust, python-backend, dotnet-backend, dead-code and claude-mastery plugins went, swiftui lost 14,878 lines and esp32 5,571.

The agent can read the repo, run its tools and look up the current API. A skill should carry what it can’t work out on its own: an opinion that is hard to infer, or a tool it can run. Two rules went into the repo’s CLAUDE.md: “Do not create generic language handbooks.” and “Preserve model judgment. Use hard rules only for safety invariants or observed failure modes.”

A month later dead-code came back as code-cleanup, and this time it is built around a 592-line audit script with tests.

The first sign was in March. I had PostToolUse hooks that ran cargo check and an ESP32 pattern check after every edit, and I removed them because they “were interrupting ongoing work by flagging in-progress code as problematic.”