simplify-skill — Claude Code skill: what it does, how to install
Simplifies complex agent skills without losing existing behavior or contracts. Cuts accidental instruction clutter while preserving all tests and outputs.
npx skills add srinitude/skills --skill simplify-skill -a claude-codeWhat simplify-skill does
This skill removes accidental complexity from agent packages without altering how they function. It is not meant for ordinary code cleanup. The only accepted outcome is reducing declared operational costs for a specific actor and task. Cutting line count never counts as proof of simplification.
The process follows a strict state machine: DISCOVER, BASELINE, CONTRACT, SELECT, REWRITE, VERIFY, and ACCEPT. Every command, path, schema, permission gate, and numeric limit remains untouched. Each observable rule gets a persistent identifier, and ledger coverage must equal 1.0. Any unauthorized loss routes the candidate straight to NEEDS_APPROVAL.
Tooling relies directly on the mise runner. The workflow checks files with mise run validate and blocks changes if dependencies fail. Final acceptance requires running mise run ci and passing ten native pressure cases. Without this test harness, the verification pipeline halts.
What it helps with
- Refactor bloated agent skills without regressing expected behavior
- Extract isolated logic into child skills with clean interfaces
- Freeze rule contracts and schemas before modifying prompt instructions
- Verify prompt simplifications against automated ledgers and test suites
Example prompts for the agent
- Simplify the skill in
skills/deploywhile keeping all paths, permissions, and output schemas. - Run a complexity audit on
skills/reviewusing the simplify-skill pipeline. - Extract a child skill from
skills/analyzerif it meets the standalone trigger and test rules.
How to install simplify-skill
1Skills CLI (Vercel)
npx skills add srinitude/skills --skill simplify-skill -a claude-code2Manually: put the files in place
~/.claude/skills/simplify-skill/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/simplify-skill/
1Skills CLI (Vercel)
npx skills add srinitude/skills --skill simplify-skill -a codex2Manually: put the files in place
.agents/skills/simplify-skill/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add srinitude/skills --skill simplify-skill -a cursor2Manually: put the files in place
.cursor/skills/simplify-skill/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install srinitude/skills simplify-skill2Manually: put the files in place
.github/skills/simplify-skill/SKILL.md1Skills CLI (Vercel)
npx skills add srinitude/skills --skill simplify-skill -a gemini-cli2Platform CLI
gemini skills install https://github.com/srinitude/skills --path skills/simplify-skillManually: put the files in place
.devin/skills/simplify-skill/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add srinitude/skills --skill simplify-skill -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about simplify-skill
How do I install simplify-skill in Claude Code?
Run npx skills add srinitude/skills --skill simplify-skill -a claude-code in your terminal, or place the skill file directly at ~/.claude/skills/simplify-skill/SKILL.md.
How does simplify-skill differ from routine code refactoring?
It strictly forbids simple line-count pruning and code-only cleanup. The workflow enforces an explicit state machine where every output schema, permission gate, hash, and boundary condition remains intact unless approved.
What tooling is required to run the verification flow?
The package relies on mise task runner routines. You must run commands like mise run validate and mise run ci, and ledger coverage must reach 1.0 across all ten native evaluation cases before changes are accepted.
Source text
SKILL.md · MIT
--- name: simplify-skill description: 'Use when simplifying a skill without losing behavior.' license: MIT metadata: author: Kiren Srinivasan version: '0.1.1' scope: 'user' --- # Simplify a skill ## When to use Use this skill when an existing skill is harder to understand, operate, verify, or maintain than its domain requires. Do not use it for an ordinary code-only cleanup. ## Outcome Reduce at least one declared complexity cost for a named actor and task. Preserve purpose, authority, behavior, safety, dependencies, outputs, and proof unless the user approves an exact loss. Never accept line count alone as evidence of simplification. ## Hard boundaries - Treat the complete current package as the baseline source of truth. - Preserve essential domain complexity. Remove accidental complexity first. - Default to lossless change. - Keep exact commands, paths, schemas, hashes, quotes, permission gates, numeric limits, and stop rules exact. - Keep component status separate from whole-skill status. - Do not claim identical prose from every model or provider. - Define determinism as a closed decision contract plus machine-checked end state. ## Required composition Resource gate: run `mise run validate` before using package files named here. Read the [dependency reconciliation](references/dependency-reconciliation.md) before changing a package. Use the collection's starting-point, human-behavior, agent-behavior, and meaning-preservation owners when their triggers apply. A native host-only load is evidence, not a portable dependency. Internalize its invariant or route to an installed public peer. If neither is possible, return `BLOCKED_DEPENDENCY`. ## Input contract Record `target`, `actor`, `task`, `environment`, `scope`, `invariants`, `measure`, and `allowed_loss`. Use `unknown` for missing data. `allowed_loss` is `none` unless the user approves an exact bound. ## State machine Use only this order: `DISCOVER -> BASELINE -> CONTRACT -> SELECT -> REWRITE -> VERIFY -> ACCEPT` A gate failure moves to `BLOCKED`. Unapproved loss moves to `NEEDS_APPROVAL`. No accepted cost reduction moves to `NO_CHANGE`. Resolve ties by authority, safety and privacy, behavior preservation, the user's exact method, lower declared cost, then `NO_CHANGE`. ## Procedure 1. **Discover.** Read the live target, every linked file, nearby owners, origin record, checks, and governing source. Stop on unexplained drift. 2. **Freeze.** Back up and hash every file. Run existing checks and representative tasks. 3. **Contract.** Give each rule and observable behavior a stable ID. Record authority, strength, conditions, protected spans, target, and evidence. Coverage must equal `1.0`. 4. **Select.** Try `deduplicate`, `clarify`, `reorder`, `progressive-disclosure`, `extract-child`, `simplify-code`, then `approved-loss`. Use the first mode that lowers the declared cost without a veto. 5. **Check claims.** Define the human or agent population and target test before claiming behavior improved. 6. **Rewrite.** Change the smallest owner. Use plain language, one rule per sentence, named actors, closed status words, defaults, and exact stop conditions. 7. **Handle code.** Use tests first and keep code proof separate from instruction proof. 8. **Verify.** Recompute hashes, ledger coverage, protected spans, links, metadata, loading, tests, package state, and end-state readback. Compare baseline and candidate in the same environment. 9. **Accept or restore.** Accept only when a declared cost fell, every invariant passed, and no veto remains. Otherwise restore or return the exact blocked status. ## Child extraction Create a child only when it has a distinct trigger, standalone outcome, explicit interface, canonical ownership, direct tests, parent-route tests, expected reuse above coordination cost, and an acyclic load graph. Never split only to reduce line count. ## Acceptance `ACCEPT` requires: - baseline and candidate packet hashes recompute; - ledger coverage is `1.0` with no unauthorized loss; - every protected span passes or has exact approval; - at least one declared cost decreases in the same environment; - native, task, package, link, and readback checks pass; - all ten native pressure cases retain their required and forbidden behavior. Package PASS, eval enrollment, behavior-eval PASS, component status, and whole-skill PASS are separate results. ## Resources - [Simplification model](references/simplification-model.md) - [Preservation contract](references/preservation-contract.md) - [Dependency reconciliation](references/dependency-reconciliation.md) - `assets/` for ledger templates - `examples/` for accepted and blocked outcomes - `evals/` for native-case lineage and portable tests - `mise run test` for package checks ## Factory execution contract The accepted outcome is: Reduce skill complexity while proving semantic parity and preserving every accepted behavior. Preserve current behavior-preserving simplification behavior while changing its smallest owner. 1. Freeze the current package with `mise run ci` and record its digest. 2. Run `mise run domain-research-policy`, then judge the current behavior-preserving simplification sources and counterevidence. 3. Run `mise run agentic-request` for the named behavior-preserving simplification operation. Keep semantic choices with the model. 4. Run `mise run decision-policy`, `mise run ci`, and the behavioral evals. Return to the lowest failed owner. 5. Run `mise run invocation-policy -- <receipt>` and account for every task or its domain-specific non-use. 6. Optionally run `mise run improvement-policy`. Keep one changed dimension only if no protected dimension regresses. Load `assets/use-case-contract.json` through `mise run use-case-policy` and `evals/evals.json` through `mise run evals` only when their contracts are needed. Mise owns repeatable mechanics, ordering, receipts, and checks. The model owns interpretation, causal judgment, creative work, and direct perception that code cannot supply. Stop on missing authority, stale evidence, or a failed gate.
© Kiren Srinivasan · MIT · srinitude/skills