refactor-legacy-code — Claude Code skill: setup guide
Guides systematic legacy code refactoring without breaking features. Built for paying down technical debt and replacing deprecated patterns.
npx skills add aj-geddes/useful-ai-prompts --skill refactor-legacy-code -a claude-codeWhat refactor-legacy-code does
This skill establishes a step-by-step workflow for updating legacy codebases safely. It begins with code exploration, checking obsolete dependencies via npm outdated or language-specific package managers, and inspecting hotspot complexity with tools like SonarQube, eslint, pylint, or RuboCop.
The framework references modular guides covering assessment, safety nets, incremental changes, modern patterns, and dependency reduction. A strict constraint in the workflow requires passing tests before any code restructuring begins, forbidding refactoring alongside new feature additions.
What it helps with
- modernize outdated code patterns and deprecated APIs
- cut technical debt across existing project files
- extract reusable modules from monolith blocks
- prepare legacy components for new feature work
Example prompts for the agent
- Assess legacy/user_service.py and outline an incremental refactoring plan
- Refactor this legacy module using modern syntax while keeping all unit tests green
- Help extract reusable components from this monolithic handler step by step
How to install refactor-legacy-code
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill refactor-legacy-code -a claude-code2Manually: put the files in place
~/.claude/skills/refactor-legacy-code/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/refactor-legacy-code/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill refactor-legacy-code -a codex2Manually: put the files in place
.agents/skills/refactor-legacy-code/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill refactor-legacy-code -a cursor2Manually: put the files in place
.cursor/skills/refactor-legacy-code/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts refactor-legacy-code2Manually: put the files in place
.github/skills/refactor-legacy-code/SKILL.md1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill refactor-legacy-code -a gemini-cli2Platform CLI
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/refactor-legacy-codeManually: put the files in place
.devin/skills/refactor-legacy-code/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill refactor-legacy-code -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about refactor-legacy-code
How to install refactor-legacy-code in Claude Code?
Run npx skills add aj-geddes/useful-ai-prompts --skill refactor-legacy-code -a claude-code in your terminal. The configuration is placed at ~/.claude/skills/refactor-legacy-code/SKILL.md.
What does refactor-legacy-code do?
It guides the AI agent through safe, incremental refactoring steps, enforcing test coverage checks and preventing breaking behavioral changes.
Does the skill allow adding features during refactoring?
No. The guidelines explicitly separate functional changes from refactoring to keep behavioral regressions out of your codebase.
Source text
SKILL.md · MIT
--- name: refactor-legacy-code description: > Modernize and improve legacy codebases while maintaining functionality. Use when you need to refactor old code, reduce technical debt, modernize deprecated patterns, or improve code maintainability without breaking existing behavior. --- # Refactor Legacy Code ## Table of Contents - [Overview](#overview) - [When to Use](#when-to-use) - [Quick Start](#quick-start) - [Reference Guides](#reference-guides) - [Best Practices](#best-practices) ## Overview This skill helps you systematically refactor legacy code to improve maintainability, readability, and performance while preserving existing functionality. It follows industry best practices for safe refactoring with comprehensive testing. ## When to Use - Modernizing outdated code patterns or deprecated APIs - Reducing technical debt in existing codebases - Improving code readability and maintainability - Extracting reusable components from monolithic code - Upgrading to newer language features or frameworks - Preparing code for new feature development ## Quick Start First, analyze the legacy code to understand: ```bash # Review the codebase structure tree -L 3 -I 'node_modules|dist|build' # Check for outdated dependencies npm outdated # or pip list --outdated, composer outdated, etc. # Identify code complexity hotspots # Use tools like: # - SonarQube for code smells # - eslint for JavaScript # - pylint for Python # - RuboCop for Ruby ``` ## Reference Guides Detailed implementations in the `references/` directory: | Guide | Contents | |---|---| | [Code Assessment](references/code-assessment.md) | Code Assessment | | [Establish Safety Net](references/establish-safety-net.md) | Establish Safety Net | | [Incremental Refactoring](references/incremental-refactoring.md) | Incremental Refactoring | | [Modernize Patterns](references/modernize-patterns.md) | Modernize Patterns | | [Reduce Dependencies](references/reduce-dependencies.md) | Reduce Dependencies, Documentation | | [Complete Refactoring Example](references/complete-refactoring-example.md) | Complete Refactoring Example | | [Benefits Achieved](references/benefits-achieved.md) | Benefits Achieved | ## Best Practices ### ✅ DO - **Refactor incrementally**: Small, testable changes - **Run tests frequently**: After each refactoring step - **Commit often**: Create logical, atomic commits - **Keep existing tests passing**: Don't break functionality - **Use IDE refactoring tools**: Safer than manual edits - **Review code coverage**: Ensure tests cover refactored code - **Document decisions**: Why, not just what - **Seek peer review**: Fresh eyes catch issues ### ❌ DON'T - **Mix refactoring with new features**: Separate concerns - **Refactor without tests**: Recipe for breaking changes - **Change behavior**: Refactoring should preserve functionality - **Refactor large chunks**: Increases risk and review difficulty - **Ignore code smells**: Address them systematically - **Skip documentation**: Future maintainers need context
© aj-geddes · MIT · aj-geddes/useful-ai-prompts