Skip to content
Back to skills

Refactor

ASecurity

Use when code quality needs improvement after implementation, without changing behavior

  • 484 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 12, 2026
code-qualitygobashrefactoringgitapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add Trevoke/org-gtd.el --skill refactor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Refactor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Refactor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/trevoke-refactor/badge)](https://www.skillsdirectory.com/skills/trevoke-refactor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: refactor
description: Use when code quality needs improvement after implementation, without changing behavior
---

# /refactor — Code Quality Pass

## Overview

**Improve code structure without changing behavior.** Propose changes, get approval, make one change at a time with tests between each.

**Core principle:** Never change behavior. Tests must stay green after every change.

## When to Use

- After implementation and QA pass
- User requests a quality check on recent work
- You notice structural issues while working

## The Process

### 1. Establish Baseline

**Run the test suite first. Actually run it.**

```bash
~/bin/eldev etest -r dot
```

Record the result. This is your safety net. If tests aren't green before you start, fix that first.

### 2. Identify What Changed

```bash
git diff main...HEAD    # if on a branch
git log --oneline -N    # user specifies range
```

Read all changed files **in full** — not just the diff. Context matters.

### 3. Find Issues

Look for:

| Issue | Signal |
|-------|--------|
| **DRY violations** | Same logic in two places |
| **SRP violations** | Function hard to name (doing too much) |
| **Naming** | Names don't match what the code does |
| **Unnecessary complexity** | Abstraction not earning its keep |
| **Dead code** | Unreachable branches, unused functions |

**Don't look for:**
- Style preferences (tab vs space, quote style)
- Missing documentation on unchanged code
- "Improvements" to code you didn't change

### 4. Propose Changes — Get Approval

Present refactorings ordered by **highest impact, lowest risk** first:

```markdown
### 1. [Title] — Impact: High, Risk: Low

**What**: [what to change]
**Why**: [why it improves the code]
**Risk**: [what could go wrong]
```

**Ask the user which to do.** Don't start changing code without approval.

### 5. Make Changes — One at a Time

For each approved refactoring:

1. **Run tests** — confirm green before starting
2. **Make one change** — a single, atomic refactoring
3. **Run tests** — confirm still green
4. **Commit** — describe the refactoring, not the code

If tests fail after a change: **revert immediately.** You introduced a bug.

### 6. Final Verification

```bash
~/bin/eldev etest -r dot
```

All tests must pass. Report the final state.

## Common Mistakes

| Mistake | Fix |
|---------|-----|
| Changing behavior ("while I'm here") | Refactoring changes structure ONLY. If tests break, revert. |
| Not running tests before starting | Run tests FIRST. No green baseline = no refactoring. |
| Making changes without user approval | Propose, get approval, then act. |
| Multiple changes at once | One change, one test run, one commit. Atomic. |
| Renaming public API | That's a breaking change, not a refactoring. |
| Proposing 10+ changes | Focus on 3-5 highest-impact items. Less is more. |
| Describing changes without making them | Actually edit the files. Actually run the tests. |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.