request-refactor-plan

Crear un plan de refactorización detallado con commits pequeños mediante una entrevista al usuario, luego archivarlo como un issue de GitHub. Usar cuando el usuario quiera planificar una refactorización, crear un RFC de refactorización o dividir una refactorización en pasos incrementales seguros.

npx skills add https://github.com/mattpocock/skills --skill request-refactor-plan

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.

  1. Ask the user for a long, detailed description of the problem they want to solve and any potential ideas for solutions.

  2. Explore the repo to verify their assertions and understand the current state of the codebase.

  3. Ask whether they have considered other options, and present other options to them.

  4. Interview the user about the implementation. Be extremely detailed and thorough.

  5. Hammer out the exact scope of the implementation. Work out what you plan to change and what you plan not to change.

  6. 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.

  7. 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."

  8. 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.

Más skills de mattpocock

improve-codebase-architecture
mattpocock
Encuentra oportunidades de profundización en una base de código, informado por el lenguaje del dominio en CONTEXT.md y las decisiones en docs/adr/. Úsalo cuando el usuario quiera mejorar la arquitectura, encontrar oportunidades de refactorización, consolidar módulos fuertemente acoplados o hacer que una base de código sea más testeable y navegable por IA.
developmentcode-reviewapi
tdd
mattpocock
Desarrollo guiado por pruebas con el ciclo rojo-verde-refactorizar. Úsalo cuando el usuario quiera construir funcionalidades o corregir errores usando TDD, mencione "rojo-verde-refactorizar", quiera pruebas de integración o solicite desarrollo basado en pruebas primero.
developmenttesting
handoff
mattpocock
Compacta la conversación actual en un documento de handoff para que otro agente lo retome.
communicationproject-managementdocument
prototype
mattpocock
Construye un prototipo desechable para desarrollar un diseño antes de comprometerse con él. Enruta entre dos ramas: una aplicación de terminal ejecutable para preguntas de estado/lógica de negocio, o varias variaciones de interfaz de usuario radicalmente diferentes que se puedan alternar desde una ruta. Úsalo cuando el usuario quiera prototipar, verificar un modelo de datos o máquina de estados, maquetar una interfaz, explorar opciones de diseño, o diga "prototipa esto", "déjame jugar con ello", "prueba algunos diseños".
developmentdesigncreative
triage
mattpocock
Triage de incidencias a través de una máquina de estados impulsada por roles de triage. Úselo cuando el usuario quiera crear una incidencia, hacer triage de incidencias, revisar errores entrantes o solicitudes de funciones, preparar incidencias para un agente AFK, o gestionar el flujo de trabajo de incidencias.
developmentproject-managementcommunication
obsidian-vault
mattpocock
Buscar, crear y gestionar notas en el vault de Obsidian con wikilinks y notas índice. Usar cuando el usuario quiera encontrar, crear u organizar notas en Obsidian.
productivitydocument
edit-article
mattpocock
Editar y mejorar artículos reestructurando secciones, mejorando la claridad y ajustando la prosa. Úsalo cuando el usuario quiera editar, revisar o mejorar un borrador de artículo.
documentcreative
writing-great-skills
mattpocock
Referencia para escribir y editar habilidades correctamente: el vocabulario y los principios que hacen que una habilidad sea predecible.
documentdevelopment