Use when planning a new feature. Creates functional requirement documents from a Product Owner perspective - describing WHAT the user needs, not HOW to implement it technically...
Transform feature ideas into structured functional requirement documents. This skill writes plans from a Product Owner perspective - focusing on user needs, business value, and acceptance criteria. The technical implementation is left to Claude Code's plan mode.
This is NOT a technical planning tool. It documents WHAT the user needs to accomplish, not HOW to build it.
Ask the user about the feature:
If the requirement isn't clear, ask:
Para documentar este requerimiento, necesito entender:
1. ¿Qué debe poder hacer el usuario con esta funcionalidad?
2. ¿Quiénes van a usar esta feature? (roles: admin, profesional, asistente, paciente)
3. ¿Hay algún flujo o proceso especÃfico que deba seguir?
4. ¿Existe algún diseño, mockup o referencia visual?
5. ¿Hay alguna restricción o regla de negocio importante?
6. ¿Prioridad? (alta/media/baja)
Capture:
If the user mentions existing features or designs as reference, explore to understand:
Note: This exploration is to understand the FUNCTIONAL context, not to define technical implementation.
Using the template at templates/plan-template.md, create a functional specification with:
List what each role should be able to do:
### Profesional
- Ver historial de pagos del paciente
- Filtrar por rango de fechas
### Administrador
- Todo lo anterior
- Editar registros de pago
Keep it simple - one line per capability.
Describe WHAT the system must do (not HOW):
Describe the step-by-step journey:
Testable conditions from the user's perspective:
What this feature does NOT include (to set clear boundaries)
Create the file:
.claude/plans/[module]/[feature-name].mdFolder organization:
.claude/plans/
├── fichas/ # Módulo ficha del paciente
│ ├── evoluciones.md
│ ├── sesiones.md
│ └── documentos.md
├── pacientes/ # Módulo pacientes
│ ├── historial-pagos.md
│ └── importacion-masiva.md
├── calendario/ # Módulo calendario
│ ├── notificaciones.md
│ └── bloqueo-horarios.md
├── settings/ # Configuración
│ └── integraciones.md
└── general/ # Features transversales
└── autenticacion.md
Module mapping:
| Feature relacionada a... | Carpeta |
|---|---|
| Ficha del paciente | fichas/ |
| Gestión de pacientes | pacientes/ |
| Citas y agenda | calendario/ |
| Configuración/Settings | settings/ |
| OdontologÃa clÃnica | odontologia/ |
After creating the plan:
Example output:
He documentado el requerimiento para "[Feature Name]" en:
.claude/plans/[module]/[feature-name].md
Resumen:
- Módulo: [module]
- Descripción: [qué podrá hacer el usuario]
- User Stories: [N] historias de usuario
- Criterios de aceptación: [X] criterios definidos
Próximos pasos:
1. Revisa el documento y ajusta si es necesario
2. Cuando esté listo, usa plan mode para implementar
3. Claude Code leerá este archivo y lo traducirá a código
When the user wants to modify or extend an existing feature, follow this decision tree:
| Type | Action | Example |
|---|---|---|
| Bug/fix | No plan needed, commit with fix(...) |
"El botón no funciona" |
| Small enhancement | Update existing plan with ## Updates section |
"Agregar fecha de vencimiento a recetas" |
| New significant feature | Create new plan in same module folder | "Agregar plantillas de recetas predefinidas" |
Ask yourself:
When adding to an existing plan, append an ## Updates section at the end:
## Updates
### [Date] - [Brief description]
**Cambio solicitado:**
[Description of what changed]
**Nuevos requerimientos:**
- [New requirement 1]
- [New requirement 2]
**Nuevos criterios de aceptación:**
- [ ] [New acceptance criteria]
**Estado:** Pendiente | Implementado
When creating a new plan for a related feature:
## Contexto
Esta feature extiende el módulo de recetas médicas (ver `recetas-medicas.md`).
Example:
.claude/plans/fichas/
├── recetas-medicas.md # Original plan
├── plantillas-recetas.md # New related feature
└── recetas-favoritos.md # Another related feature
.claude/plans/[module]/ for existing plans## Updates section to existing planExample output for update:
He actualizado el plan existente de recetas médicas:
.claude/plans/fichas/recetas-medicas.md
Agregué la sección "Updates" con:
- Nuevo requerimiento: fecha de vencimiento
- Nuevos criterios de aceptación
El plan original se mantiene como referencia histórica.
Example output for new plan:
He creado un nuevo plan para plantillas de recetas:
.claude/plans/fichas/plantillas-recetas.md
Creé un plan separado porque:
- Es un concepto nuevo (plantillas predefinidas)
- Tiene su propio flujo de usuario
- PodrÃa implementarse de forma independiente
Hace referencia al módulo de recetas médicas existente.
## Updates section for small enhancements to existing featuresUser says:
"Quiero que los pacientes puedan ver su historial de pagos desde la ficha"
Skill creates a functional spec with:
What it does NOT include:
The functional spec serves as the contract between Product Owner and Developer:
When you enter plan mode with a task, Claude Code will:
.claude/plans/.claude/plans/[module]/ directory