| name | prd-generator |
| description | Generate structured Product Requirements Documents from feature descriptions. Use when the user says "create PRD", "new feature", "write requirements", "define feature", or references creating specifications for implementation. Supports Trello (spec-driven) and Plane work item creation.
|
| context | direct |
/prd (Global)
Genera un PRD (Product Requirements Document) y crea Work Items en Trello o Plane.
Uso
/prd [titulo] [descripcion de requerimientos]
/prd US-01 # Spec-driven: enriquece desde Trello
/prd board:BOARD_ID # Spec-driven: lista US del board para elegir
Paso 0.0 — Leer documentos canónicos (v5.29.0 + v6.0.1 content-passing)
ANTES de cualquier otro paso:
-
Usa Read localmente sobre doc/app/app_prd.md y doc/app/app_spec.md. Si alguno no existe, trata el contenido como null.
-
Llama a la tool MCP con el contenido (no con paths):
get_inheritable_values_tool(
app_prd_content=<contenido o null>,
app_spec_content=<contenido o null>,
)
Cambio v6.0.1: las tools read_app_docs_tool y get_inheritable_values_tool ya no aceptan project_path. El cliente lee los archivos locales y pasa el contenido. Esto evita el bug arquitectural por el cual el MCP remoto resolvía Path(project_path).resolve() contra el filesystem del servidor en vez del cliente.
El resultado es un dict con flags y valores que indican qué decisiones de proyecto ya están definidas en doc/app/app_prd.md y doc/app/app_spec.md. Úsalo para no repreguntar lo que ya está respondido:
| Flag | Si es True, NO preguntes |
|---|
audience_defined | Audiencia / targets / ICPs (Paso 2.X de captura) — usa audience_text |
scope_defined | Perímetro v1/v2/nunca (Paso 2.Y) — heredado de app_prd.md sección 3 |
veg_mode_known | Modo VEG (uniforme/per_profile/per_icp) |
stack_known | Stack técnico — usa stack_text |
backend_type | Backend de tracking (freeform/trello/plane) |
autopilot_level | Nivel de autopilot |
Solo captura deltas específicos de la feature que está pidiendo el usuario. La audiencia general del proyecto, el JTBD genérico, el tono — todo eso vive en app_prd.md y se hereda.
Si read_app_docs_tool retorna has_app_prd=False, el proyecto aún no tiene documentos canónicos. Recomienda al usuario:
⚠️ No encuentro doc/app/. Considera ejecutar /app-init antes de /prd para
evitar repreguntas cross-feature. Procediendo en modo legacy...
Y continúa con el flujo v5.28 (preguntar todo) sin bloquear.
0.0.1 — Política de Autopilot aplicable a /prd
Cada vez que estés a punto de hacer una pregunta al usuario, identifica el decision_key correspondiente y delega la decisión al helper evaluateDecision (.claude/hooks/lib/autopilot.mjs). Si retorna action: "auto", aplica el default sin preguntar y registra la decisión en .quality/autopilot_decisions.jsonl. Si retorna action: "ask", pregunta como en v5.28.
| Pregunta del skill | decision_key | Default si auto |
|---|
| "¿Qué problema resuelve?" (Paso 2 #1) | feature_problem_definition | siempre ask (no auto) |
| "¿Quién es el usuario objetivo?" (Paso 2 #2) | feature_ui_interaction_profile | hereda audience_text de app_prd.md cuando hasAppPrd=true |
| "¿A quién va dirigida la app?" (Paso 2 #4) | feature_ui_interaction_profile | hereda de app_prd.md cuando audience_defined=true |
| Definition Quality Gate (Paso 2.5) — AC vagos | definition_quality_gate | en agresivo con score>=0.7 auto-confirma; en otros tiers siempre itera |
| Backend ambigüo en Paso 0.2 | backend_selection | equilibrado+ → freeform por defecto |
Inviolables que /prd debe respetar:
- Si el AC objetivamente falla calidad (score <0.7), nunca auto-confirmar — itera.
- Acciones que crean cards en Trello/Plane reales son
destructive_action parcial: confirmar antes del primer create.
Tras cada auto-decisión, mostrar al usuario una línea como:
ℹ️ audiencia heredada de doc/app/app_prd.md (autopilot: equilibrado)
Para que tenga visibilidad de qué se está saltando.
Paso 0: Detectar Modo y Origen
0.1 Detectar modo
Que recibi?
├── US-XX (ej: "US-01") → Modo SPEC-DRIVEN (Trello)
├── board:BOARD_ID → Modo SPEC-DRIVEN (listar US, elegir)
├── PROYECTO-N (ej: "MCPROFIT-42") → Modo FREEFORM (Plane)
└── Texto libre → Modo FREEFORM (detectar destino)
0.2 Detectar configuracion del proyecto
Buscar en .claude/settings.local.json:
{
"trello": {
"boardId": "BOARD_ID_AQUI"
},
"plane": {
"defaultProject": "MCPROFIT",
"projectId": "uuid",
"defaultState": "Backlog",
"defaultAssignee": "{PLANE_ASSIGNEE_ID}"
}
}
Prioridad de destino:
- Si el input es US-XX o board:ID → Trello
- Si el input es PROYECTO-N → Plane
- Si hay
trello.boardId → Trello
- Si hay
plane.defaultProject → Plane
- Si ninguno → Preguntar al usuario
0.3 Asignee por defecto (Plane)
OBLIGATORIO para Plane: Todas las tareas se asignan al usuario configurado en:
- Variable:
PLANE_DEFAULT_ASSIGNEE_EMAIL (env var o settings.local.json → plane.assigneeEmail)
- ID:
PLANE_DEFAULT_ASSIGNEE_ID (env var o settings.local.json → plane.assigneeId)
Si no están configurados, preguntar al usuario.
Modo SPEC-DRIVEN (Trello)
El documento del cliente (US/UC/AC) ya existe en Trello.
El PRD ENRIQUECE pero nunca reinventa lo que el cliente firmo.
S1: Cargar datos desde Trello
1. Obtener board_id de settings o del input
2. Llamar get_us(board_id, us_id) via MCP dev-engine-trello
3. Llamar list_uc(board_id, us_id) para obtener todos los UCs hijos
4. Para cada UC: llamar get_uc(board_id, uc_id) para detalle completo
Datos que se obtienen automaticamente:
- US: nombre, descripcion, horas estimadas, pantallas
- UCs: nombre, actor, horas, pantallas, estado
- ACs: ID (AC-XX), texto, estado (done/pending)
S2: Enriquecer con contexto tecnico
El PRD spec-driven NO repite la info del cliente. Anade:
- Contexto tecnico: stack, dependencias, integraciones
- Interacciones UI: volumenes, frecuencias, criticidad (del analisis)
- NFRs: rendimiento, seguridad, accesibilidad
- Riesgos: dependencias externas, complejidad, incertidumbres
- Alcance: que SI incluye y que NO incluye explicitamente
S3: Generar PRD Spec-Driven
Usar Template: PRD Spec-Driven (ver abajo).
S4: Validar Calidad de Definicion (Paso 2.5)
Ejecutar el Definition Quality Gate sobre los AC-XX que vienen de Trello.
Si algun criterio no pasa → proponer mejoras al usuario ANTES de continuar.
S5: Adjuntar evidencia a Trello
1. Llamar attach_evidence(board_id, us_id, "us", "prd", markdown_content)
→ Genera PDF y lo adjunta a la card US en Trello
2. Confirmar al usuario
Modo FREEFORM (Plane o Trello nuevo)
No hay spec previa. Se genera el PRD desde cero a partir de descripcion del usuario.
Paso 1: Detectar Tipo de PRD
PRD Feature
Detectar: "nueva", "anadir", "crear", "implementar", "feature", "funcionalidad", "como [usuario] quiero"
PRD Tecnico (Refactor)
Detectar: "refactor", "simplificar", "migrar", "eliminar", "cambiar", "reorganizar"
Paso 2: Recopilar Informacion
Preguntas obligatorias para PRD Feature:
- Que problema resuelve?
- Quien es el usuario objetivo?
- Cuales son las User Stories principales? (minimo 1 US con sus UCs)
- A quien va dirigida la app? (targets/audiencia — activa VEG si se responde)
Preguntas para seccion UI (CRITICO):
Para cada Use Case, determinar:
- Datos: Que datos muestra? Cuantos items tipicamente?
- Acciones: Que puede hacer el usuario? (ver, filtrar, seleccionar, crear, editar, eliminar)
- Frecuencia: Con que frecuencia se usa? (diaria, ocasional, rara)
- Criticidad: Que pasa si el usuario se equivoca? (reversible, irreversible, costoso)
Template: PRD Spec-Driven
# PRD: [US-XX] [Nombre de la User Story]
> Origen: Trello board [board_name] | US-XX
> Generado: [fecha]
## Resumen
[1-2 parrafos: objetivo de la US y que problema resuelve para el usuario]
## Alcance
### Incluye
- [Funcionalidad explicita 1]
- [Funcionalidad explicita 2]
### No incluye
- [Exclusion explicita 1 — evita scope creep]
- [Exclusion explicita 2]
---
## User Story
**ID**: [US-XX]
**Nombre**: [nombre]
**Actor**: [usuario objetivo]
**Horas estimadas**: [N]h
**Pantallas**: [lista]
> Como [actor], quiero [objetivo], para [beneficio].
---
## Use Cases
### UC-XXX: [Nombre]
- **Actor**: [actor]
- **Horas**: [N]h
- **Pantallas**: [pantallas]
- **Estado**: [user_stories/backlog/in_progress/review/done]
#### Acceptance Criteria
- [ ] **AC-01**: [Criterio especifico y testable]
- [ ] **AC-02**: [Criterio especifico y testable]
### UC-XXX: [Nombre]
...
---
## Interacciones UI
> Esta seccion alimenta el analisis de componentes en /plan
### Visualizacion de datos
| Dato | Volumen | Atributos visibles | Acciones por item |
|------|---------|-------------------|-------------------|
| [ej: Propiedades] | [20-100] | [nombre, direccion, precio] | [ver, editar, eliminar] |
### Acciones del usuario
| Accion | UC asociado | Frecuencia | Criticidad | Requiere confirmacion |
|--------|-------------|------------|------------|----------------------|
| [ej: Crear propiedad] | UC-001 | Ocasional | Media | No |
### Formularios
| Formulario | UC asociado | Campos | Contexto |
|------------|-------------|--------|----------|
| [ej: Nueva propiedad] | UC-002 | [8-12] | Modal / Pagina dedicada |
---
## Audiencia (alimenta VEG)
> Esta seccion es OPCIONAL. Si se incluye, activa Visual Experience Generation en /plan.
> Sin esta seccion, el pipeline funciona en modo legacy (sin VEG).
### Targets de la aplicacion
{Descripcion general de a quien va dirigida}
### Target 1: {Nombre}
- **Perfil**: {quien es, edad, rol, nivel tecnico}
- **Contexto de uso**: {cuando, donde, con que frecuencia}
- **JTBD Racional**: {que problema necesita resolver}
- **JTBD Emocional**: {como quiere sentirse al usar la app}
- **Referentes**: {apps/webs que usa y le gustan}
- **Expectativa visual**: {que tipo de UI esperaria}
### Target 2: {Nombre}
...
### ICPs para Landings (si aplica)
{Solo cuando el feature incluye landings o campanas dirigidas}
#### ICP 1: {Nombre}
- **Perfil completo**: {demografia, psicografia, cargo, sector}
- **JTBD Racional**: {necesidad funcional especifica}
- **JTBD Emocional**: {necesidad emocional especifica}
- **Objeciones principales**: {que le frena}
- **Trigger de conversion**: {que le convence}
---
## Requisitos No Funcionales (NFRs)
| NFR | Criterio | Medicion |
|-----|----------|----------|
| Rendimiento | Carga inicial < 2s en 4G | Lighthouse / DevTools |
| Seguridad | RLS por tenant | Test de aislamiento |
| Accesibilidad | WCAG 2.1 AA | axe-core audit |
| Offline | [Si aplica] | Test sin conexion |
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|-------------|---------|------------|
| [Dependencia externa X] | Media | Alto | [Plan B] |
| [Complejidad de integracion] | Alta | Medio | [Spike previo] |
---
## Stack Tecnico (estimado)
- **Modelo**: [Nuevo / Existente: nombre]
- **Repository**: [nombre]_repository
- **State**: [BLoC/Store/Context]
- **Paginas**: [lista]
## Archivos Principales
[Estructura estimada segun stack detectado]
---
## Criterios de Aceptacion (consolidado)
### Funcionales (validados por AG-09)
[Copiar todos los AC-XX de los UCs arriba, consolidados]
- [ ] **AC-01**: [Criterio — de UC-XXX]
- [ ] **AC-02**: [Criterio — de UC-XXX]
...
### Tecnicos (no validados por AG-09)
- [ ] Proyecto compila sin errores
- [ ] Tests con 85%+ coverage
---
**Prioridad**: [urgent/high/medium/low/none]
**Complejidad**: [Baja/Media/Alta]
*Generado: [fecha]*
Template: PRD Feature (Freeform)
# PRD: [Titulo]
## Descripcion
[1-2 parrafos: que es y que problema resuelve]
## Objetivo
[Una oracion clara]
## Usuario Objetivo
[Rol del usuario]
## Alcance
### Incluye
- [Funcionalidad explicita]
### No incluye
- [Exclusion explicita]
---
## User Stories y Use Cases
### US-01: [Nombre de la User Story]
> Como [actor], quiero [objetivo], para [beneficio].
#### UC-001: [Nombre del Use Case]
- **Actor**: [actor]
- **Horas estimadas**: [N]h
- **Pantallas**: [lista]
**Acceptance Criteria:**
- [ ] **AC-01**: [Criterio especifico y testable]
- [ ] **AC-02**: [Criterio especifico y testable]
#### UC-002: [Nombre del Use Case]
...
### US-02: [Nombre]
...
---
## Interacciones UI
> Esta seccion alimenta el analisis de componentes en /plan
### Visualizacion de datos
| Dato | Volumen | Atributos visibles | Acciones por item |
|------|---------|-------------------|-------------------|
| [ej: Propiedades] | [20-100] | [nombre, direccion, precio] | [ver, editar, eliminar] |
### Acciones del usuario
| Accion | UC asociado | Frecuencia | Criticidad | Requiere confirmacion |
|--------|-------------|------------|------------|----------------------|
| [ej: Crear propiedad] | UC-001 | Ocasional | Media | No |
### Selecciones/Filtros
| Filtro | Opciones | Seleccion | Frecuencia |
|--------|----------|-----------|------------|
| [ej: Tipo propiedad] | [5-7] | Unica | Frecuente |
### Formularios
| Formulario | UC asociado | Campos | Contexto |
|------------|-------------|--------|----------|
| [ej: Nueva propiedad] | UC-002 | [8-12] | Modal / Pagina dedicada |
---
## Audiencia (alimenta VEG)
> Esta seccion es OPCIONAL. Si se incluye, activa Visual Experience Generation en /plan.
> Sin esta seccion, el pipeline funciona en modo legacy (sin VEG).
### Targets de la aplicacion
{Descripcion general de a quien va dirigida}
### Target 1: {Nombre}
- **Perfil**: {quien es, edad, rol, nivel tecnico}
- **Contexto de uso**: {cuando, donde, con que frecuencia}
- **JTBD Racional**: {que problema necesita resolver}
- **JTBD Emocional**: {como quiere sentirse al usar la app}
- **Referentes**: {apps/webs que usa y le gustan}
- **Expectativa visual**: {que tipo de UI esperaria}
### Target 2: {Nombre}
...
### ICPs para Landings (si aplica)
{Solo cuando el feature incluye landings o campanas dirigidas}
#### ICP 1: {Nombre}
- **Perfil completo**: {demografia, psicografia, cargo, sector}
- **JTBD Racional**: {necesidad funcional especifica}
- **JTBD Emocional**: {necesidad emocional especifica}
- **Objeciones principales**: {que le frena}
- **Trigger de conversion**: {que le convence}
---
## Requisitos No Funcionales (NFRs)
| NFR | Criterio | Medicion |
|-----|----------|----------|
| Rendimiento | [Criterio medible] | [Como se mide] |
| Seguridad | [Criterio medible] | [Como se mide] |
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|-------------|---------|------------|
| [Riesgo identificado] | [B/M/A] | [B/M/A] | [Plan] |
---
## Stack Tecnico (estimado)
- **Modelo**: [Nuevo / Existente: nombre]
- **Repository**: [nombre]_repository
- **State**: [BLoC/Store/Context]
- **Paginas**: [lista]
## Archivos Principales
[Estructura estimada segun stack]
## Dependencias
- [Features o servicios requeridos]
---
## Criterios de Aceptacion (consolidado)
### Funcionales
- [ ] **AC-01**: [Criterio especifico y testable — de UC-001]
- [ ] **AC-02**: [Criterio especifico y testable — de UC-001]
- [ ] **AC-03**: [Criterio especifico y testable — de UC-002]
### Tecnicos (no validados por AG-09)
- [ ] Proyecto compila sin errores
- [ ] Tests con 85%+ coverage
---
**Prioridad**: [urgent/high/medium/low/none]
**Complejidad**: [Baja/Media/Alta]
*Generado: [fecha]*
Template: PRD Tecnico
# PRD: [Titulo]
## Resumen Ejecutivo
[2-3 parrafos: objetivo del refactor y por que es necesario]
## Alcance
### Incluye
- [Cambio explicito]
### No incluye
- [Exclusion explicita]
---
## Objetivos
1. **[Objetivo 1]** - [Descripcion]
2. **[Objetivo 2]** - [Descripcion]
---
## Estado Actual vs Propuesto
### ACTUAL:
[Estructura actual]
### PROPUESTO:
[Nueva estructura]
---
## Cambios de UI (si aplica)
### Componentes a modificar
| Componente actual | Cambio | Componente nuevo |
|-------------------|--------|------------------|
| [widget_x] | Reemplazar | [widget_y] |
---
## A Eliminar
- [ ] [Elemento] - [Razon]
## A Mantener
- [Elemento]
---
## Plan de Implementacion (alto nivel)
### Fase 1: [Nombre]
- [Tarea]
### Fase 2: [Nombre]
- [Tarea]
### Fase 3: Cleanup
- Eliminar archivos no usados
- Validar compilacion
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|-------------|---------|------------|
| [Riesgo identificado] | [B/M/A] | [B/M/A] | [Plan] |
---
## Criterios de Aceptacion
### Funcionales
- [ ] **AC-01**: [Criterio especifico y testable]
- [ ] **AC-02**: [Criterio especifico y testable]
### Tecnicos (no validados por AG-09)
- [ ] Proyecto compila sin errores
- [ ] Tests pasan
---
*Generado: [fecha]*
Paso 2.5: Validar Calidad de Definicion (BLOQUEANTE)
Antes de crear el Work Item, validar que los acceptance criteria permiten testing automatizado.
El Work Item NO se crea hasta que este gate pase.
2.5.1 Asignar ID a cada criterio
Numerar cada criterio funcional: AC-01, AC-02, AC-03...
En modo spec-driven, los IDs ya vienen de Trello — mantenerlos.
Excluir criterios tecnicos genericos ("compila sin errores", "85% coverage") — estos NO cuentan como funcionales.
2.5.2 Evaluar cada criterio funcional
Para cada AC-XX, evaluar 3 metricas (0-2):
| Metrica | 0 (RECHAZAR) | 1 (ACEPTABLE) | 2 (IDEAL) |
|---|
| Especificidad | Vago: "funciona bien", "gestiona datos" | General: "mostrar lista de propiedades" | Preciso: "listado paginado de 20 propiedades con foto thumbnail, nombre y precio" |
| Medibilidad | Subjetivo: "es rapido", "user-friendly" | Parcial: "carga en poco tiempo" | Cuantificado: "carga inicial < 2s en 4G" |
| Testabilidad | No verificable: "buena experiencia" | Solo manual: "el formulario valida campos" | Automatizable: "mostrar error inline rojo bajo el campo si email no contiene @ al perder foco" |
2.5.3 Validar cobertura funcional
- Cada Use Case (UC-XXX) DEBE tener al menos 1 criterio AC-XX asociado
- Si un UC no tiene criterio → RECHAZAR
- Ratio minimo: criterios funcionales / use cases >= 1.0
2.5.4 Calcular veredicto
SI algun criterio tiene score 0 en cualquier metrica → RECHAZAR
SI promedio general de los 3 scores < 1.5 → RECHAZAR
SI algun Use Case no tiene criterio AC-XX → RECHAZAR
ELSE → APROBADO
2.5.5 Si RECHAZADO
- Mostrar tabla de evaluacion por criterio:
| AC-XX | UC | Especificidad | Medibilidad | Testabilidad | Veredicto |
|-------|-----|--------------|-------------|--------------|-----------|
| AC-01 | UC-001 | 2 | 1 | 2 | OK |
| AC-02 | UC-002 | 0 | 0 | 0 | RECHAZADO |
- Para cada criterio rechazado, proponer una version mejorada concreta
- Preguntar: "Acepta las mejoras sugeridas o prefiere redactar manualmente?"
- Aplicar correcciones y re-evaluar
- NO crear Work Item hasta que pase
- Maximo 3 iteraciones. Si tras 3 no pasa → pedir al usuario que defina los criterios manualmente
2.5.6 Validar seccion Audiencia (para VEG)
Evaluar la seccion "Audiencia" del PRD:
Hay seccion Audiencia?
├── NO → WARNING (no bloqueante): VEG se desactiva en /plan, pipeline legacy
├── SI → Hay al menos 1 target?
│ ├── NO → WARNING: VEG desactivado
│ └── SI → Hay ICPs con JTBD?
│ ├── SI → Validar que cada ICP tiene JTBD racional Y emocional
│ │ ├── Faltan JTBDs → RECHAZAR para Modo 3 (ICP), aceptar para Modo 1/2
│ │ └── Completos → OK para cualquier modo VEG
│ └── NO → OK para Modo 1 (uniforme) o Modo 2 (por perfil)
Incluir en el reporte:
VEG Readiness: {ENABLED (Modo X) / DISABLED (sin targets)}
Targets definidos: {N}
ICPs definidos: {N}
2.5.7 Si APROBADO
Continuar a Paso 3 con los AC-XX numerados incorporados al PRD.
Reportar:
Definition Quality Gate: APROBADO
Criterios funcionales: {N} (promedio: {score}/2.0)
Cobertura: {N} Use Cases cubiertos de {M}
VEG Readiness: {ENABLED (Modo X) / DISABLED}
Paso 3: Crear Work Items
3a: Destino Trello (spec-driven o freeform)
En modo spec-driven, la US ya existe en Trello. Solo adjuntar evidencia (Paso S5).
En modo freeform con destino Trello:
- Obtener board_id de settings
- Llamar import_spec via MCP dev-engine-trello con la estructura US/UC/AC generada
- Esto crea automaticamente: cards US + cards UC + checklists AC + custom fields
3b: Destino Plane
Detectar configuracion del proyecto
- Leer
.claude/settings.local.json para obtener plane.projectId
- Si no existe, usar
plane:list_projects y preguntar al usuario
- Obtener estados con
plane:list_states para encontrar "Backlog" o "To-Do"
- Obtener labels con
plane:list_labels para asignar etiquetas apropiadas
Crear el Work Item
Usar plane:create_work_item:
{
"project_id": "[projectId del settings o detectado]",
"name": "[Titulo del PRD]",
"description_html": "[PRD completo en HTML]",
"description_stripped": "[PRD en texto plano]",
"priority": "[urgent|high|medium|low|none]",
"state": "[ID del estado Backlog o To-Do]",
"labels": ["[ID de label si aplica]"],
"assignees": ["{PLANE_ASSIGNEE_ID}"]
}
IMPORTANTE: El campo assignees SIEMPRE incluye el ID del assignee configurado
Mapeo de prioridades
| PRD | Plane Priority |
|---|
| Alta | high |
| Media | medium |
| Baja | low |
| Critica | urgent |
Paso 4: Confirmar
Si destino es Trello (spec-driven):
PRD Generado y adjuntado a Trello
**Board**: [nombre del board]
**User Story**: [US-XX] [nombre]
**PDF adjuntado**: Si
### Resumen:
- **Use Cases**: [N]
- **Acceptance Criteria**: [N] (promedio calidad: {score}/2.0)
- **Interacciones UI documentadas**: [N]
- **NFRs**: [N]
- **Riesgos**: [N]
### Siguiente paso:
/plan US-XX
Si destino es Trello (freeform):
PRD Creado en Trello
**Board**: [nombre del board]
**User Stories creadas**: [N]
**Use Cases creados**: [N]
### Siguiente paso:
/plan US-XX
Si destino es Plane:
PRD Creado en Plane
**Proyecto**: [nombre del proyecto]
**Work Item**: [nombre]
**ID**: [identifier - ej: MCPROFIT-42]
**Estado**: [estado asignado]
**Prioridad**: [prioridad]
### Resumen:
- **User Stories**: [N]
- **Use Cases**: [N]
- **Acceptance Criteria**: [N]
- **Interacciones UI documentadas**: [N]
### Siguiente paso:
/plan MCPROFIT-[numero]
Checklist de Calidad
PRD Feature (spec-driven o freeform):
PRD Tecnico:
Jerarquia Conceptual
US-XX (User Story) = unidad presupuestable, valor para el cliente
└── UC-XXX (Use Case) = unidad atomica de desarrollo
└── AC-XX (Acceptance Criteria) = verificacion contractual
- US → se mapea a una card en Trello (label azul) o work item en Plane
- UC → se mapea a una card hija en Trello (label verde) vinculada via us_id
- AC → se mapea a checkitems en el checklist "Criterios de Aceptacion" del UC
- La US es lo que se presupuesta y el cliente firma
- El UC es lo que el agente implementa (1 UC = 1 ciclo /implement)
- El AC es lo que AG-09 valida
Referencia MCP
Trello (dev-engine-trello):
get_us(board_id, us_id) — Detalle completo de US con UCs hijos
get_uc(board_id, uc_id) — Detalle completo de UC con ACs
list_us(board_id) — Listar todas las US del board
list_uc(board_id, us_id) — Listar UCs de una US
import_spec(board_id, spec) — Importar estructura US/UC/AC completa
attach_evidence(board_id, target_id, target_type, evidence_type, markdown) — Adjuntar PDF
Plane:
plane:list_projects — Listar proyectos del workspace
plane:list_states — Listar estados de un proyecto
plane:list_labels — Listar etiquetas de un proyecto
plane:create_work_item — Crear nuevo work item
plane:retrieve_work_item_by_identifier — Obtener work item por identificador