manager-create-work-plan
Crea el work_plan estructurado que ejecutara el Builder, con fases, tareas, riesgos y criterios de aceptacion medibles. Usar cuando el usuario pide una funcionalidad o un cambio y el Manager debe form
SKILL.mdskills/manager-create-work-plan/SKILL.md
GitHubmanager-create-work-plan
Skill para crear planes de trabajo detallados que el Builder pueda ejecutar.
Overview
Cuando el usuario solicita una nueva funcionalidad, el Manager usa esta skill para:
- Analizar el requerimiento y contexto actual
- Identificar archivos privados necesarios (Fase 0)
- Descomponer en fases con tareas 🤖/👤
- Asignar niveles de riesgo (🟢/🟡/🔴)
- Definir criterios de aceptación medibles
- Documentar trade-offs considerados
Workflow
Paso 0: Verificar Turno
Carga de memoria: antes de planificar, ejecuta el mecanismo descrito en
prompts/_shared/memory_bootstrap.md. Motivo: el Manager que planifica sin corpus decide sin lecciones; las decisiones ya aprendidas se repiten.
python .agent/agent_controller.py
Debe indicar ROL ACTIVO: MANAGER y acción CREATE_PLAN.
Paso 0b: Cargar lecciones de cierre
Antes de analizar el requerimiento, leer si existe:
.agent/runtime/memory/closeout_lessons.md
Usar ese contexto para:
- evitar repetir errores de tickets previos
- reutilizar learnings aprobados como generalizables
- respetar learnings que siguen siendo locales al proyecto
Si el archivo no existe, continuar sin bloquear.
Paso 1: Analizar Requerimiento
Entender del usuario:
- ¿Qué problema resuelve?
- ¿Qué resultado espera?
- ¿Hay restricciones de tiempo/tecnología?
Explorar código existente:
tree src/ -L 2
find src/ -name "*.py" | head -20
Paso 2: Identificar Fase 0 (Usuario)
Determinar si se necesitan archivos en privada/:
- ¿Necesita credenciales/API keys?
- ¿Configuración personal del usuario?
- ¿Datos sensibles de empresa?
Si sí → Fase 0 con tareas 👤 para el usuario
Paso 3: Crear work_plan.md
Usar references/plan-template.md como base.
Estructura obligatoria:
# Plan de Trabajo: [Título]
## Metadata
- **ID:** WOT-[YYYY]-[NNN][x]
- **Estado:** 🟡 IN_PLANNING
- **deliverable_type:** code | documentation | research | analysis | mixed
- **Creado:** [FECHA]
- **Prioridad:** HIGH/MEDIUM/LOW
- **Asignado a:** Builder
## 🎯 Objetivo
[Descripción clara en 2-3 líneas]
## 📋 Contexto
[Situación actual, problema a resolver]
## Configuración Privada Requerida
[Lista de archivos necesarios en privada/]
## Plan de Implementación
### Tipos de Tareas
| Icono | Tipo | Ejecutor |
|-------|------|----------|
| 🤖 | TAREA AGENTE | Builder |
| 👤 | TAREA USUARIO | Usuario |
### Fase 0: [Nombre] (👤/🤖)
#### 0.1: 🤖/👤 [Nombre tarea]
- **Tipo:** 🤖/👤 TAREA [AGENTE/USUARIO]
- **Archivo:** `ruta/archivo.py`
- **Acción:** Crear/Modificar
- **Descripción:** [Qué hacer]
- **Riesgo:** 🟢/🟡/🔴 [Bajo/Medio/Alto]
- **Criterio de Aceptación:** [Medible y verificable]
- **Si falla:** [Acción a tomar]
### Fase 1: [Nombre]
...
## Trade-offs Considerados
| Opción | Pros | Contras | Decisión |
|--------|------|---------|----------|
| A | [+] | [-] | [Aceptada/Descartada] |
## 🚨 Guía de Riesgos
| Nivel | Significado | Acción del Builder |
|-------|-------------|-------------------|
| 🟢 Bajo | Rutinaria | Intentar 3 veces antes de escalar |
| 🟡 Medio | Requiere atención | Intentar 2 veces, escalar si dudas |
| 🔴 Alto | Crítica | Escalar al primer fallo |
## 🧪 Criterios de Aceptación Global
- [ ] [Criterio medible 1]
- [ ] [Criterio medible 2]
Paso 4: Asignar Riesgos
Para cada tarea, usar guía en references/risk-guide.md:
🟢 Bajo:
- Crear archivos nuevos
- Modificar templates
- Tests simples
🟡 Medio:
- Modificar lógica existente
- Cambios en configuración
- Integraciones
🔴 Alto:
- Cambios arquitectónicos
- Migraciones de datos
- Cambios en seguridad
Paso 5: Definir Criterios de Aceptación
Cada tarea necesita criterios SMART:
- Specific: Qué exactamente
- Measurable: Cómo se verifica
- Achievable: Realista
- Relevant: Al plan
- Time-bound: Cuándo listo
Ejemplo bueno:
"Crear
validate_all.pyque detecte 9 directorios de skills y valide frontmatter YAML con campos: name, version, description, author, tags"
Ejemplo malo:
"Crear script de validación"
Paso 6: Documentar Trade-offs
Si hay decisiones arquitectónicas:
## Trade-offs Considerados
| Opción | Pros | Contras | Decisión |
|--------|------|---------|----------|
| SQLite local | Simple, sin servidor | No escalable | ✅ Elegida |
| PostgreSQL | Escalable | Requiere setup | Descartada |
**Razón:** Para MVP, SQLite es suficiente.
Crear ADR en .agent/decisions/ si es decisión importante.
Paso 7: Aprobar Plan
Checklist antes de aprobar:
- ID único y descriptivo
- Fase 0 incluida si hay archivos privados
- Todas las tareas tienen riesgo asignado
- Criterios de aceptación son medibles
- Trade-offs documentados (si aplica)
- Ninguna fase tiene campos duplicados (p.ej. dos lineas
Descripcion:en la misma fase); si se actualizo un campo, borrar la version anterior antes de aprobar - No hay contradiccion entre
DescripcionyCriterios de Aceptacionde la misma fase; si difieren, reconciliarlos explicitamente antes de aprobar — nunca asumir que uno manda sobre el otro sin corregir el texto - Todo criterio verificable de una fase tiene su comando o accion correspondiente en la seccion
Calidad; si un criterio de aceptacion no aparece ahi, el Manager puede aprobarlo sin haberlo verificado - Si un comando se usa en dos modos distintos (p.ej.
--dry-runvs ejecucion real,--forcevs sin flag), la Descripcion especifica explicitamente cual es la accion de la fase y cual es la comprobacion previa, en ese orden; si el plan usa--dry-run, la fase real debe existir como paso separado — dry-run nunca sustituye la ejecucion real ni cuenta como validacion de cierre - Si
work_plan.mdySTRATEGY_WOT-*.mdcoexisten, el resumen corto no puede contradecir al largo en ningun punto operativo (comandos, flags, orden de pasos); si difieren, el largo (work_plan.md) manda y el corto debe regenerarse antes de aprobar - Si una fase depende de actualizar
PROJECT.mdoCHANGELOG.mdmanualmente, la Descripcion especifica quien lo actualiza (Builder/Manager) y con que criterio o contenido minimo; la ambiguedad aqui produce fases declaradas completas sin que los archivos se hayan tocado - El estado de
STATE.mdyexecution_log.mddebe usar el enum valido del controller para cierre o avance (APPROVED,IN_PROGRESS,READY_FOR_REVIEW,COMPLETED, etc.);IDLEsolo sirve como sentinel de workspace sin ticket activo y no debe usarse para cerrar un ticket del motor
Cambiar estado: 🟡 IN_PLANNING → 🟢 APPROVED
Añadir notificación:
## 📨 [FECHA] Handoff: Manager → Builder
**Plan:** WOT-XXX
**Acción requerida:** Implementar según work_plan.md
**Estado:** PENDING
Handoff canonico al Builder (OBLIGATORIO)
Preparar la documentacion para el Builder NO es solo aprobar el work_plan.
Son SIETE artefactos. Omitir uno deja el ciclo incompleto. Error recurrente:
olvidar STRATEGY_WOT-*.md y AUDIT_WOT-*.md.
Checklist obligatorio, en orden:
TP CheckenAUDIT_WOT— verificar contra../../_shared/ticket-anti-patterns.mdantes de aprobar elwork_plan.work_plan.md— contenido completo +Estado: APPROVED.STRATEGY_WOT-XXXX.md— estrategia tecnica del ticket (en.agent/collaboration/).AUDIT_WOT-XXXX.md— criterios que el Manager verificara en el review.execution_log.md—Estado: IN_PROGRESS, bitacora inicializada.TURN.md— regenerar aROL=BUILDER:python .agent/agent_controller.py --reset-turn --forceSin--reset-turnel controller NO sobrescribe un TURN.md existente.STATE.md— lo regenera el mismo comando del paso 5.- Bus — emitir
STATE_CHANGED -> IN_PROGRESS:python .agent/agent_controller.py --bootstrap-ticket --jsonIdempotente (already_bootstrappedsi ya existe).
Verificacion final OBLIGATORIA:
python .agent/agent_controller.py --validate --json --force -> 0 errores.
Solo con los 7 artefactos + validate en verde el turno es del Builder y el launcher abrira su ventana del Builder.
Output Format
El handoff al Builder genera/actualiza, sin omitir ninguno:
work_plan.md(APPROVED)STRATEGY_WOT-XXXX.md(estrategia tecnica)AUDIT_WOT-XXXX.md(criterios de auditoria)execution_log.md(IN_PROGRESS)TURN.md+STATE.md(regenerados con--reset-turn)- Bus: evento
STATE_CHANGED -> IN_PROGRESS --validateen verdenotifications.mdcon handoff al Builder (opcional)- ADR en
.agent/decisions/(opcional, si trade-off significativo)
References
references/plan-template.md- Template base del planreferences/risk-guide.md- Guía de asignación de riesgos.agent/templates/work_plan_template.md- Template completo del sistema.agent/rules/manager/- Restricciones del rolreferences/plan-quality-checklist.md- Checklist de calidad para planes y audits../../_shared/ticket-anti-patterns.md- Catalogo TP compartido para prompts de Manager y Builder../manager-session-closeout/SKILL.md- Cierre de sesion y puente de learnings
TP Check obligatorio
Antes de aprobar cualquier work_plan.md, el Manager debe rellenar en AUDIT_WOT-XXXX.md una seccion ## TP Check usando:
../../_shared/ticket-anti-patterns.mdcomo catalogo de referencia.references/plan-quality-checklist.mdcomo checklist de aprobacion.- Evidencia literal para cada check: seccion, linea, test, comando o diff.
Regla de aprobacion:
- Si un TP aplica y no puede cerrarse con una linea concreta, el plan sigue en borrador.
- Si el plan y el audit no coinciden en secuencia, archivos o criterios, el ticket no pasa a
APPROVED. - Si el texto usa semantica blanda sin definir el mecanismo, se corrige antes del handoff.
- Si el ticket introduce una nueva gate de calidad, aplica ese gate manualmente sobre el propio
AUDIT_WPantes de confiar en automatizacion futura. - Si existe
.agent/runtime/memory/closeout_lessons.md, usalo como contexto antes de redactar un nuevo plan.
Constraints
- NO asignar tareas del usuario (👤) al Builder
- NO omitir Fase 0 si hay archivos privados
- SIEMPRE incluir criterios de aceptación medibles
- SIEMPRE asignar nivel de riesgo a cada tarea