Skip to content
Agentmart
Submit a tool

safe-refactor

Restructure code without changing behavior.

Skill by shankarr1503

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/shankarr1503-safe-refactor

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Restructure code without changing behavior. Use when asked to refactor, clean up, simplify, rename, extract, split a large file or function, or remove duplication. Locks behavior with tests first, then moves in small verified steps.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/safe-refactor

What's inside

Skill name
safe-refactor
Description
Restructure code without changing behavior. Use when asked to refactor, clean up, simplify, rename, extract, split a large file or function, or remove duplication. Locks behavior with tests first, then moves in small verified steps.
License
MIT
Instructions
39 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Safe refactor

A refactor changes structure, never behavior. If behavior changes, it is not a refactor — it is a rewrite with extra risk.

## 1. Lock behavior first

- Find the tests covering the code. Run them; they must be green before you start.
- If coverage is thin, add characterization tests that pin the current behavior — including odd behavior that callers may depend on. (See the `legacy-tests` skill.)
- Find every caller: search for the symbol, dynamic uses (string names, reflection, routes, DI config, templates), exports, and public API consumers outside the repo.

## 2. Move in small steps

Each step is one mechanical transformation, followed by running the tests:

- Rename (use the IDE/language server rename where possible, then search for string references).
- Extract function / module; inline function; move file (update imports).
- Replace conditional with lookup/polymorphism; introduce parameter object.
- Delete dead code — only after proving it is unused (search, coverage, logs). "Looks unused" is not proof for public or dynamically-referenced code.

Commit (or checkpoint) after each green step so you can bisect or revert.

## 3. Rules

- **No behavior changes mixed in.** Found a bug? Note it, finish or pause the refactor, and fix the bug in a separate change with its own test.
- **No formatting churn** in files you are not otherwise changing.
- **Keep public interfaces stable** unless changing them is the goal; if so, migrate callers in the same change or leave a deprecated shim.
- **Don't over-abstract.** Three similar blocks are fine; an abstraction must make the code easier to read _now_, not hypothetically flexible.
- Performance-sensitive code: benchmark before and after.

## 4. Verify

- Full test suite, typecheck, lint pass.
- The diff reads as pure structure: a reviewer can confirm no behavior changed. Large moves are easier to review as separate "move only" and "edit" commits.

## Report

What was restructured and why it is better (concretely: fewer branches, smaller function, removed duplication of X), the tests that guard it, and any bugs or follow-ups noticed but deliberately not fixed.

From shankarr1503/omnistack, MIT.

More from shankarr1503/omnistack

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 7, 2026 (22 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from shankarr1503

Cite this page

safe-refactor skill. Agent Mart. https://agentmart.dev/skills/shankarr1503-safe-refactor (last updated 2026-10-24)