request-refactor-plan
mattpocock/skills
Plan and break down code refactors into tiny, safe commits via structured interview, then file as GitHub issue.
What is request-refactor-plan?
This skill guides you through a detailed refactoring planning process by interviewing you about the problem, exploring your codebase, considering alternatives, and breaking the work into minimal commits. Use it when you want to create a refactoring RFC, plan a large refactor safely, or document incremental steps for a code overhaul.
- Conducts a structured interview to understand the refactoring problem and goals
- Explores your codebase to verify assumptions and assess current state
- Identifies and discusses alternative approaches before committing to a plan
- Breaks refactoring work into tiny, individually-testable commits following Martin Fowler's principles
- Checks test coverage and helps plan testing strategy for the affected code
- Creates a detailed GitHub issue with problem statement, solution, commit plan, and decision document
How to install request-refactor-plan
npx skills add https://github.com/mattpocock/skills --skill request-refactor-plan- A GitHub repository with write access to create issues
- An existing codebase to refactor
How to use request-refactor-plan
- 1.Invoke the skill when you want to plan a refactor
- 2.Provide a detailed description of the problem you want to solve and any initial ideas
- 3.Answer questions about alternative approaches and implementation details during the interview
- 4.Review the codebase exploration and test coverage assessment
- 5.Approve the final commit plan and decision document
- 6.The skill will create a GitHub issue with the complete refactor plan
Use cases
- Planning a large architectural refactor before starting implementation
- Creating a refactoring RFC to share with your team and get feedback
- Breaking down a complex codebase modernization into safe, reviewable steps
- Documenting the rationale and scope for a refactor to prevent scope creep
- Ensuring adequate test coverage exists before refactoring critical code paths
- Software engineers planning refactors
- Tech leads creating refactoring proposals
- Teams coordinating large codebase improvements
- Developers wanting to document refactoring decisions
request-refactor-plan FAQ
The skill will identify insufficient test coverage and ask you to plan your testing strategy before proceeding with the refactor.
Yes, the skill allows you to skip steps if you don't consider them necessary for your specific refactor.
The issue uses a structured template including problem statement, solution, detailed commit plan, decision document, testing decisions, and out-of-scope items.
Each commit should be as small as possible while leaving the codebase in a working state, following Martin Fowler's refactoring principles.
No, this skill only plans and documents the refactor. You implement the changes yourself following the generated plan.
Full instructions (SKILL.md)
Source of truth, from mattpocock/skills.
name: request-refactor-plan description: Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.
This skill will be invoked when the user wants to create a refactor request. You should go through the steps below. You may skip steps if you don't consider them necessary.
-
Ask the user for a long, detailed description of the problem they want to solve and any potential ideas for solutions.
-
Explore the repo to verify their assertions and understand the current state of the codebase.
-
Ask whether they have considered other options, and present other options to them.
-
Interview the user about the implementation. Be extremely detailed and thorough.
-
Hammer out the exact scope of the implementation. Work out what you plan to change and what you plan not to change.
-
Look in the codebase to check for test coverage of this area of the codebase. If there is insufficient test coverage, ask the user what their plans for testing are.
-
Break the implementation into a plan of tiny commits. Remember Martin Fowler's advice to "make each refactoring step as small as possible, so that you can always see the program working."
-
Create a GitHub issue with the refactor plan. Use the following template for the issue description:
Problem Statement
The problem that the developer is facing, from the developer's perspective.
Solution
The solution to the problem, from the developer's perspective.
Commits
A LONG, detailed implementation plan. Write the plan in plain English, breaking down the implementation into the tiniest commits possible. Each commit should leave the codebase in a working state.
Decision Document
A list of implementation decisions that were made. This can include:
- The modules that will be built/modified
- The interfaces of those modules that will be modified
- Technical clarifications from the developer
- Architectural decisions
- Schema changes
- API contracts
- Specific interactions
Do NOT include specific file paths or code snippets. They may end up being outdated very quickly.
Testing Decisions
A list of testing decisions that were made. Include:
- A description of what makes a good test (only test external behavior, not implementation details)
- Which modules will be tested
- Prior art for the tests (i.e. similar types of tests in the codebase)
Out of Scope
A description of the things that are out of scope for this refactor.
Further Notes (optional)
Any further notes about the refactor.
</refactor-plan-template>Related skills
More from mattpocock/skills and the wider catalog.

research
Delegate research to a background agent that investigates primary sources and documents findings.

resolving-merge-conflicts
Resolve git merge and rebase conflicts by understanding intent and preserving both changes where possible.

retro
Analyze coding sessions to identify improvements in environment, automation, and standards.

review
Two-axis code review: Standards compliance and Spec implementation, run in parallel.

scaffold-exercises
Scaffold exercise directories with linting validation for course content.

setup-matt-pocock-skills
Configure repo for Matt Pocock's engineering skills: issue tracker, triage labels, and domain docs.