refactor

Improve the shape of existing code without changing behavior.

Skill file

Preview skill file
---
name: refactor
description: "Improve the shape of existing code without changing behavior."
user-invocable: true
argument-hint: "[optional files, diff, commit, or cleanup focus]"
---

# Refactor

Improve code shape without changing behavior. Use when the user asks to refactor, simplify, tidy, clean up, reduce duplication, improve design, or improve maintainability.

## Workflow

### 1. Understand

- Use `$ARGUMENTS`, specified files, `git diff`, staged changes, or the latest commit.
- If staged changes exist, review `git diff HEAD`; otherwise review `git diff`.
- If there are no Git changes, review the most recently modified files named by the user or touched in the current task.
- Read the target code, surrounding patterns, tests, contracts, invariants, and verification commands.
- Identify what behavior must stay the same before editing.
- For risky refactors, run existing focused tests first to establish the current baseline.

### 2. Find Simplifications

Find behavior-preserving changes:

- duplicated or near-duplicated logic
- unclear names and long functions doing multiple jobs
- unnecessary abstraction or indirection; missing reuse of existing helpers
- tangled conditionals, data flow, or error handling
- poor module boundaries or leaky abstractions
- comments that can become code
- code that can be deleted without changing behavior

### 3. Refactor

- Make small, targeted, behavior-preserving edits.
- Prefer deleting code, clarifying names, extracting or inlining functions, reusing existing helpers, and simplifying control flow.
- Add an abstraction only when it clearly reduces complexity or meaningful duplication.
- Preserve public contracts, data shape, error behavior, and user-visible output unless the user explicitly asks to change them.
- Skip changes that would make the code merely different rather than simpler.

### 4. Verify

- Run the relevant tests and checks after editing.
- Run broader tests when the refactor touches shared behavior or contracts.
- If no code changes were needed, say so.
- Report what changed, what stayed behaviorally the same, and what verification ran.

## Rules

- Refactoring is not feature work.
- Do not broaden scope into unrelated cleanup.
- Do not change behavior to make refactoring easier.
- Stop and ask before changing public contracts, data shape, or user-visible behavior.
- Keep abstractions only when they reduce complexity or duplication.

Source

Creator's repository · owainlewis/blueprint

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk