refactor SKILL.md skillA

refactor from genai-io/san is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add genai-io/san/refactor@git:20260717.120e9bb

Pins git:20260717.120e9bb in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
genai-io/san
Path
.san/personas/software-engineer/skills/refactor/SKILL.md
Versions recorded
1
Latest version
git:20260717.120e9bb, committed Jul 17, 2026
Size
2,768 bytes
Repository stars
147
License
Apache-2.0

Restructure existing code without changing its behavior — extract, rename, inline, split, deduplicate, reshape — with tests holding behavior fixed before and after. Scoped to structure only: no new features, no bug fixes, no behavior changes. Use when the user says "refactor", "clean up the structure", "extract this", "split this file", "untangle", or "restructure".

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Refactor: restructure without changing behavior

A refactor changes the *shape* of code, never what it *does*. The one rule that
makes it safe: behavior is pinned by tests before you touch anything, and the
same tests stay green after. If behavior needs to change, that is not a refactor
— stop and treat it as a feature or a fix.

## Phase 1: Pin the behavior

Before restructuring, make the current behavior observable and guarded.

1. Find the tests that cover the code you intend to move. Run them and confirm
   they pass. This green run is your baseline — write it down.
2. If the code is not covered, **add characterization tests first**: tests that
   capture what the code does *today* (not what it should do), enough to catch a
   behavior change. Get them green against the current code before you refactor.
3. If you cannot get the behavior under test at all, say so and stop — an
   unguarded refactor is a rewrite in disguise, and you would have no way to know
   you broke something.

## Phase 2: Restructure in small steps

Make one structural move at a time, and keep the tests green between moves.

- Each step is a single transformation — extract a function, rename a symbol,
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add genai-io/san/refactor@sha256:103cd98082dc948a

The line at the top of this page pins the label git:20260717.120e9bb, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_35o66ibmj2ovf2wi.svg)](https://markdownregistry.com/a/art_35o66ibmj2ovf2wi)

3 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 1 version of this file, committed on Jul 17, 2026.

versioncommittedcommitsizeaudit
git:20260717.120e9bb latest2026-07-17 120e9bb 2,768 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (2768 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

genai-io/san · 147 stars · license Apache-2.0 · pushed 2026-11-06 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_35o66ibmj2ovf2wi
GET https://markdownregistry.com/api/v1/resolve?ref=genai-io/san/refactor
GET https://markdownregistry.com/api/v1/blob/103cd98082dc948ad932b457d55a36701e41646468a5bd3793baf0b7f4b981b3

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from genai-io/san

code-review SKILL.md skill
genai-io/san · .san/personas/software-engineer/skills/code-review/SKILL.md · Review changed code for correctness bugs — logic errors, nil/error handling, concurrency, resource leaks, edge cases…
git:20260717.120e9bb · audit A · 147 stars
debug SKILL.md skill
genai-io/san · .san/personas/software-engineer/skills/debug/SKILL.md · Systematic debugging that finds the root cause before changing any code — collect symptoms, trace the code path, check…
git:20260717.120e9bb · audit A · 147 stars
simplify SKILL.md skill
genai-io/san · .san/personas/software-engineer/skills/simplify/SKILL.md · Review changed code for reuse, quality, and efficiency, then clean up what you find — duplicated logic that could reuse…
git:20260717.120e9bb · audit A · 147 stars
tdd SKILL.md skill
genai-io/san · .san/personas/software-engineer/skills/tdd/SKILL.md · Test-driven development — write a failing test that names the behavior, watch it fail, implement the minimum to make it…
git:20260717.120e9bb · audit A · 147 stars
qa SKILL.md skill
genai-io/san · .san/skills/qa/SKILL.md · Regression test a San feature by name. Looks for a feature doc in docs/reference/ or docs/packages/, runs automated Go…
git:20261105.d4ea15d · audit A · 147 stars
release SKILL.md skill
genai-io/san · .san/skills/release/SKILL.md · Create a new versioned release with changelog. Bumps version in code, updates CHANGELOG.md, commits, tags, and pushes…
git:20260720.088933a · audit A · 147 stars
AGENTS.md AGENTS.md file
genai-io/san · AGENTS.md
git:20261105.d4ea15d · audit A · 147 stars
hello SKILL.md skill
genai-io/san · tests/integration/plugin/testdata/test-plugin/skills/hello/SKILL.md · A simple greeting skill for plugin testing
git:20260218.3061433 · audit A · 147 stars

Every file in genai-io/san

Other files named refactor

refactor SKILL.md skill
code-yeongyu/oh-my-openagent · packages/shared-skills/skills/refactor/SKILL.md · Guides a refactor, cleanup, or restructure with the right decomposition. Use when the user asks to refactor, simplify…
git:20261106.b98a091 · audit A · 70,763 stars
refactor SKILL.md skill
sethgammon/citadel · skills/refactor/SKILL.md · Safe multi-file refactoring with automatic rollback. Establishes a type/test baseline, plans all changes, executes…
git:20260611.0f3f8e7 · audit A · 927 stars
refactor SKILL.md skill
greenfield-inc/pane · main/src/services/paneChatBundle/skills/refactor/SKILL.md · Quality pass on a branch against its remote default branch. Runs a simple analysis (conventions and smells) and, on…
git:20261105.60e9622 · audit A · 603 stars
refactor SKILL.md skill
dcouple/pane · main/src/services/paneChatBundle/skills/refactor/SKILL.md · Quality pass on a branch against its remote default branch. Runs a simple analysis (conventions and smells) and, on…
git:20261105.60e9622 · audit A · 603 stars
refactor SKILL.md skill
rsmdt/the-startup · plugins/start/skills/refactor/SKILL.md · Refactor, simplify, or clean up code for improved maintainability without changing business logic
git:20261011.48bd3ee · audit A · 577 stars
refactor SKILL.md skill
boshu2/agentops · skills/refactor/SKILL.md · Restructure or clean up code with no behavior change, proved by before-and-after checks. Use when: asked to clean up…
git:20261031.73cbeae · audit A · 453 stars
refactor SKILL.md skill
boshu2/agentops · plugin/skills/refactor/SKILL.md · Restructure or clean up code with no behavior change, proved by before-and-after checks. Use when: asked to clean up…
git:20261026.1b5f59a · audit A · 453 stars
refactor SKILL.md skill
justxor/claude-code-pro-course · starter-kit/.claude/skills/refactor/SKILL.md · Безопасный рефакторинг маленькими шагами без изменения поведения. Используй, когда просят отрефакторить, упростить…
git:20260930.76c4189 · audit A · 341 stars

Browse by kind, by grade A, or by owner.