| name | improve |
| description | Makes existing code easier to understand without changing behavior. Use to simplify structure, remove duplication or dead code, improve names, or remove unnecessary abstractions. |
| user-invocable | true |
| argument-hint | [code, files, diff, branch, or improvement focus] |
Improve
Make code easier to understand without changing what it does. Reduce the layers a reader must trace and the hidden state they must remember.
Process
- Identify the target from the request, current diff, or recently changed code.
- Read the target, its tests, and relevant surrounding code. State the behavior that must not change.
- If that behavior lacks tests, add focused coverage and run it against the unchanged code. Commit the passing test-only change before refactoring. If automated tests cannot exercise the behavior, explain why and give other evidence.
- Find unnecessary complexity, duplication, dead code, weak names, awkward boundaries, and abstractions that cost more than they help.
- Make focused improvements by deleting, deduplicating, renaming, simplifying, extracting, or inlining.
- Preserve public interfaces, data shapes, errors, and user-visible behavior unless the user explicitly asks to change them.
- Run tests and checks that cover behavior the refactor can affect. Report what improved, what behavior was preserved, and the evidence.
Return
State what became simpler, what behavior stayed the same, and which checks prove it. Name any behavior that remains unverified.
Boundaries
- Do not add product scope or absorb unrelated cleanup.
- Prefer a few clear edits over a broad rewrite.
- Preserve behavior even when a redesign would be easier.