Systematic Code Refactoring
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
Restructure existing code safely without changing externally observable behavior.
$ npx skills add techygarg/lattice --skill refactor-safely -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install techygarg/lattice refactor-safely --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/techygarg/lattice.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/refactor-safely .claude/skills/refactor-safely && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "refactor-safely" agent skill from https://github.com/techygarg/lattice/tree/main/skills/refactor-safely into .claude/skills/refactor-safely/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactor-safely", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/techygarg/lattice/tree/main/skills/refactor-safelyType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add techygarg/lattice --skill refactor-safely -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install techygarg/lattice refactor-safely --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techygarg/lattice.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/refactor-safely .agents/skills/refactor-safely && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "refactor-safely" agent skill from https://github.com/techygarg/lattice/tree/main/skills/refactor-safely into .agents/skills/refactor-safely/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactor-safely", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add techygarg/lattice --skill refactor-safely -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install techygarg/lattice refactor-safely --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techygarg/lattice.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/refactor-safely .cursor/skills/refactor-safely && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "refactor-safely" agent skill from https://github.com/techygarg/lattice/tree/main/skills/refactor-safely into .cursor/skills/refactor-safely/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactor-safely", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/techygarg/lattice.git --path skills/refactor-safely--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add techygarg/lattice --skill refactor-safely -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install techygarg/lattice refactor-safely --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techygarg/lattice.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/refactor-safely .gemini/skills/refactor-safely && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "refactor-safely" agent skill from https://github.com/techygarg/lattice/tree/main/skills/refactor-safely into .gemini/skills/refactor-safely/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactor-safely", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install techygarg/lattice refactor-safelyInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add techygarg/lattice --skill refactor-safely -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/techygarg/lattice.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/refactor-safely .github/skills/refactor-safely && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "refactor-safely" agent skill from https://github.com/techygarg/lattice/tree/main/skills/refactor-safely into .github/skills/refactor-safely/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactor-safely", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add techygarg/lattice --skill refactor-safely -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install techygarg/lattice refactor-safely --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techygarg/lattice.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/refactor-safely .opencode/skills/refactor-safely && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "refactor-safely" agent skill from https://github.com/techygarg/lattice/tree/main/skills/refactor-safely into .opencode/skills/refactor-safely/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refactor-safely", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
refactor-safelyRestructure existing code safely without changing externally observable behavior.
Refactor Safely is an agent skill from techygarg/lattice. Restructure existing code safely without changing externally observable behavior. Composes context, design, architecture, code quality, and testing guardrails into a characterization-first refactoring workflow. Use when the user says 'refactor this', 'clean this up', 'untangle this module', 'move this to the right layer', 'simplify this code', or 'improve this structure'.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Refactoring and Code quality. The repository describes itself as: Install engineering discipline into any AI coding assistant. Composable skills for design, implementation, review, and team standards. Better process, not just better prompts. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4d6c35f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Refactor Safely loads about 3.3k tokens when it runs. Until then it costs about 98 tokens; SKILL.md has 1,665 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from techygarg/lattice at commit 4d6c35f, republished under its MIT licence (© techygarg). 1,665 words, ~3,259 tokens.
.claude/skills/refactor-safely/SKILL.md (or your agent's skills folder).Load these skills based on refactor scope (see Steps 3, 5, 6 for conditional use):
framework:knowledge-priming -- Load project context so the refactor grounds in the real codebase. (always)framework:context-anchoring -- Find and load the feature's context doc; capture approved plans and decisions in it. (always)framework:learning-harvest -- Load prior operational learnings at session start; harvest new ones at session end. (always)framework:collaborative-judgment -- Surface trade-offs in structure, seams, and migration sequence instead of silently assuming. (always)framework:clean-code -- Readability, responsibility boundaries, local craft. (always)framework:test-quality -- Characterization tests and the safety net. (always)framework:design-first -- Target-structure planning for significant structural changes. (conditional: Step 3)framework:architecture -- Layer placement and dependency direction. (conditional: responsibilities move across layers in Steps 5/6)framework:domain-driven-design -- Aggregate boundaries and domain behavior. (conditional: domain rules move or sharpen in Step 6)framework:secure-coding -- Trust bounds, authorization, sensitive data handling. (conditional: security-sensitive code touched in Step 6)Start from the current pain, not from a preferred abstraction.
framework:learning-harvest Load behavior. Focus hint: "refactoring session — focus: structural health, quality signals".framework:context-anchoring Document Discovery to check for an existing context doc covering the affected feature/module:End the step by summarizing the intent in one sentence:
"Refactor X to improve Y while preserving Z."
STOP: If you cannot state both the improvement target and the preservation target that clearly, continue clarifying with the user before planning any changes.
Persistence check:
framework:context-anchoring, then use it as the source of truth for the approved plan.Refactoring changes structure, not behavior. Make the preservation contract explicit before proposing any structural edits.
List the behaviors that must remain unchanged:
Also list explicit out-of-scope changes:
If the desired outcome requires changing preserved behavior, stop and discuss what the task actually is — a bug fix (/bug-fix), a feature change (/design-blueprint), or a broader redesign. STOP: Never proceed as a refactor after making one of those determinations.
Zero Refactor Rule: make no structural code changes until the user approves both the target structure and the transition plan.
For small refactors the plan may be brief. For larger ones, use framework:design-first selectively:
Present:
End the step with an explicit gate:
"Does this refactor plan look correct? Should I proceed to Step 4: characterization tests?"
STOP: Do not write any refactoring code until the user explicitly approves this plan.
If persistence is enabled, use framework:context-anchoring Enrich to capture the approved preservation boundaries, target structure, movement plan, and out-of-scope items. STOP: When persistence is enabled, do not proceed to Step 4 until the approved plan is written.
Before changing any structure, lock in current behavior with tests.
framework:test-quality inline while writing them.Stopping rule:
End the step with an explicit gate:
"Characterization tests in place and passing. Ready to discuss refactor strategy and pacing?"
STOP: Do not proceed to strategy selection until the safety net is verified green — or the user has explicitly accepted an unverified safety net per the stopping rule above.
With the high-level plan approved and the safety net green, choose the implementation approach.
Preferred strategies:
framework:architecture.Ask the user to choose a pacing mode:
"How would you like to review the refactor?"
- Slice-by-slice (recommended) -- refactor one safe slice at a time, pausing after each slice. Best for risky legacy code.
- Layer-by-layer -- complete the refactor for one structural layer or concern, then pause for review. Best for broader architectural cleanup.
- Full autonomy -- execute the approved refactor end-to-end and present the complete result at the end. Best for tightly scoped, low-risk refactors. (Still pause immediately if any slice reveals the approved plan unsafe or invalid — see the Deviation Rule in Step 6.)
Default to slice-by-slice when the user expresses no preference.
Implement only within the approved preservation boundaries and the approved target structure.
For each slice:
framework:collaborative-judgment and surface them before presenting the slice's code. Do not interrupt mid-slice unless the approved plan becomes unsafe or invalid.Always apply:
framework:clean-code -- better boundaries, simpler control flow, smaller focused units, clearer naming.framework:test-quality -- maintain strong characterization tests and nearby supporting tests.Conditionally apply:
framework:architecture.framework:domain-driven-design.framework:secure-coding.Deviation rule: if the implementation reveals the approved plan incomplete, unsafe, or requiring changes to preserved behavior → STOP: pause immediately and discuss before continuing.
The refactor succeeds only if both are true:
Verify preservation:
Verify structural improvement:
When reporting completion, be explicit about both sides:
Use framework:context-anchoring Enrich to preserve the important parts of the refactor:
No context doc exists and the refactor involved non-trivial structural reasoning → suggest creating one so the decisions are not lost across sessions.
Harvest learnings: run framework:learning-harvest Harvest behavior. Session context: "refactoring session — structural restructuring and debt resolution". Synthesize and propose cross-cutting patterns from this session — structural debt that accumulated, migration strategies that worked, characterization test gaps discovered. The user confirms what enters the document. STOP: run this before recommending /review below.
After the refactor is complete, recommend /review when the change:
© techygarg, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/refactor-safely of techygarg/lattice.
Open the folder on GitHubat commit 4d6c35f
Refactor Safely next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Refactor Safely this skilltechygarg/lattice | 198 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Systematic Code Refactoringluongnv89/claude-howto | 42k | — | ~3k | Automated safety check: Pass | MIT | |
| Dignified Python Standardsdocling-project/docling | 68k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Clean Code GuardamElnagdy/guard-skills | 1.3k | 2 repos | ~4.3k | Automated safety check: Pass | MIT | |
| Code Refactoring Workflowluongnv89/claude-howto | 42k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Maintainable Code for iPolloWorkDevin-AXIS/iPolloWork | 6.7k | — | ~2.7k | Automated safety check: Pass | Custom licence |
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
docling-project/docling
Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.
amElnagdy/guard-skills
Reviews generated or changed production code against Clean Code, SOLID, DRY, KISS, YAGNI and LLM-specific failure modes before it ships, in any language.
luongnv89/claude-howto
Guides systematic, test-backed refactoring in the style of Martin Fowler, moving through research, planning and small incremental changes with your approval at each phase.
Devin-AXIS/iPolloWork
A code-change gate for the iPolloWork repository: search and reuse first, keep one source of truth, justify every new file or dependency, and audit the change.
ailabs-393/ai-labs-claude-skills
This skill should be used when analyzing technical debt in a codebase, documenting code quality issues, creating technical debt registers, or assessing code maintainability.
techygarg/lattice
Architectural thinking partner for an existing repository — scans the codebase, conducts a structured interview, agrees on current architectural state and recommended direction, and produces a…
techygarg/lattice
Guided setup and upgrade-check experience for Lattice projects -- scans the repository, detects existing configuration and outdated conventions, suggests refiners and available upgrades in priority…
techygarg/lattice
Audit and fix all Lattice documentation, README, docs/, PROJECT.md, GitHub issue templates, and CLAUDE.md to ensure they are fully aligned with the current skill inventory.
techygarg/lattice
Validate any Lattice SKILL.md against all tier conventions — atoms, molecules, and refiners.
techygarg/lattice
Facilitate a structured conversation to define architecture principles for a repository.
techygarg/lattice
Facilitate a structured conversation to define clean code principles for a repository.
Categories
Restructure existing code safely without changing externally observable behavior. Refactor Safely is an agent skill from techygarg/lattice. Restructure existing code safely without changing externally observable behavior.
Refactor Safely fits situations like: the user says refactor this; untangle this module; move this to the right layer; simplify this code.
Run `npx skills add techygarg/lattice --skill refactor-safely -a claude-code`. Or copy the skill folder (skills/refactor-safely in techygarg/lattice) into .claude/skills/refactor-safely in your project. Claude Code loads it when a task matches its description.
Run `npx skills add techygarg/lattice --skill refactor-safely -a codex`. Or copy the skill folder (skills/refactor-safely in techygarg/lattice) into .agents/skills/refactor-safely in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add techygarg/lattice --skill refactor-safely -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/refactor-safely, .gemini/skills/refactor-safely, .github/skills/refactor-safely and .opencode/skills/refactor-safely in your project.
SKILL.md names no scripts, command-line tools or credentials: Refactor Safely is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Refactor Safely is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Refactor Safely: Systematic Code Refactoring (luongnv89/claude-howto, 42k stars), Dignified Python Standards (docling-project/docling, 68k stars), Clean Code Guard (amElnagdy/guard-skills, 1.3k stars) and Code Refactoring Workflow (luongnv89/claude-howto, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
techygarg (a GitHub user) maintains it in techygarg/lattice, which has 198 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 6, 2026.
Source: techygarg/lattice on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.