sdd-es 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/.claude/settings.json +24 -0
  2. package/.claude/settings.local.json +10 -0
  3. package/.claude-plugin/marketplace.json +34 -0
  4. package/.claude-plugin/plugin.json +119 -0
  5. package/.gitignore +20 -0
  6. package/.mcp.json +8 -0
  7. package/README.md +27 -20
  8. package/agents/architecture-designer.md +37 -0
  9. package/agents/desarrollador-frontend.md +8 -15
  10. package/agents/product-designer.md +36 -0
  11. package/claude-hooks/agent-memory.js +137 -3
  12. package/claude-hooks/pre-tool-guard.js +61 -9
  13. package/commands/sdd.adr.md +196 -0
  14. package/commands/sdd.ayuda.md +13 -0
  15. package/commands/sdd.compliance.md +5 -0
  16. package/commands/sdd.configurar.md +1 -1
  17. package/commands/sdd.crear-mcp.md +2 -0
  18. package/commands/sdd.defect-report.md +134 -0
  19. package/commands/sdd.descubrir.md +19 -0
  20. package/commands/sdd.estado.md +52 -2
  21. package/commands/sdd.implementar.md +71 -31
  22. package/commands/sdd.md +23 -3
  23. package/commands/sdd.optimizar-memoria.md +47 -0
  24. package/commands/sdd.retro.md +74 -0
  25. package/commands/sdd.verificar.md +71 -0
  26. package/configuracion-ejemplo/.claude/CLAUDE.md +106 -0
  27. package/configuracion-ejemplo/sdd.config.yaml +10 -0
  28. package/docs/CASO-COMPLETO.md +206 -0
  29. package/docs/EJEMPLOS.md +88 -0
  30. package/docs/FABRICA.md +5 -6
  31. package/docs/INICIO-RAPIDO.md +27 -79
  32. package/docs/MEMORIA-Y-OBSERVABILIDAD.md +12 -10
  33. package/docs/README.md +43 -0
  34. package/docs/RELACION-CON-CLAUDE-CODE.md +38 -0
  35. package/package.json +11 -8
  36. package/plantillas/job-story-mejorar-prompt.md +107 -0
  37. package/presets/enterprise.yaml +6 -0
  38. package/presets/lean.yaml +4 -0
  39. package/presets/startup.yaml +6 -0
  40. package/skills/adr-indexer/SKILL.md +181 -0
  41. package/skills/cache-audit/SKILL.md +1 -1
  42. package/skills/critica-diseno/SKILL.md +1 -1
  43. package/skills/descubrir-idea/SKILL.md +1 -1
  44. package/skills/effort-router/SKILL.md +1 -1
  45. package/skills/elegir-direccion/SKILL.md +1 -1
  46. package/skills/interpretar-idea/SKILL.md +1 -1
  47. package/skills/mejorar-prompt/SKILL.md +237 -0
  48. package/skills/memory-compactor/SKILL.md +34 -80
  49. package/skills/mutation-detector/SKILL.md +134 -0
  50. package/skills/observabilidad-consumo/SKILL.md +1 -1
  51. package/skills/token-budget/SKILL.md +24 -1
  52. package/skills/wireframe-mvp/SKILL.md +1 -1
  53. package/mcp-figma/README.md +0 -158
  54. package/mcp-figma/package.json +0 -7
  55. package/mcp-figma/src/component-generator.js +0 -162
  56. package/mcp-figma/src/design-system-analyzer.js +0 -247
  57. package/mcp-figma/src/figma-client.js +0 -75
  58. package/mcp-figma/src/index.js +0 -114
  59. package/mcp-figma/src/mcp.js +0 -97
  60. package/mcp-figma/src/style-mapper.js +0 -85
@@ -0,0 +1,107 @@
1
+ ---
2
+ id: JS-PROMPT-001
3
+ tipo: job-story
4
+ estado: aprobada
5
+ fecha: 2026-06-14
6
+ versión: 1.0.0
7
+ autor: SDD-ES
8
+ ---
9
+
10
+ # Job Story — Mejorar Prompts con Claude Code
11
+
12
+ ## Historia principal
13
+
14
+ **Cuando** estoy a punto de pedirle algo a Claude Code y no sé cómo formularlo con precisión,
15
+ **quiero** una guía que transforme mi intención vaga en un prompt profesional paso a paso,
16
+ **para** obtener resultados predecibles, manteniendo el trabajo dentro del plan de la spec activa.
17
+
18
+ ---
19
+
20
+ ## Contexto del problema
21
+
22
+ Un prompt vago produce resultados impredecibles porque Claude toma decisiones discrecionales
23
+ sobre el alcance, el enfoque y las dependencias. El mismo prompt puede generar desde un
24
+ try-catch de 3 líneas hasta un sistema de logging con Winston, rotación de archivos y niveles
25
+ de severidad — dependiendo del momento y el contexto de la sesión.
26
+
27
+ La diferencia entre un resultado útil y uno que hay que descartar no está en Claude Code,
28
+ está en la calidad de las instrucciones. Esta job story captura la necesidad de cerrar esa
29
+ brecha de forma sistemática, sin depender de la experiencia del usuario.
30
+
31
+ ---
32
+
33
+ ## Criterios de Aceptación
34
+
35
+ - **CA-001:** dado un prompt vago de 1-2 frases, la skill produce una versión profesional
36
+ con los 5 componentes (Contexto, Tarea, Restricciones, Formato, Verificación) cuando aplican
37
+ - **CA-002:** la versión mejorada incluye siempre una restricción explícita sobre el alcance
38
+ de la spec activa (`No salgas de lo definido en .sdd/especificaciones/`)
39
+ - **CA-003:** si el prompt solicita algo fuera de la fase o feature actual (según
40
+ `.sdd/estado.json`), la skill lo detecta y advierte antes de reescribir
41
+ - **CA-004:** el output muestra la justificación de cada componente añadido, no solo el
42
+ prompt mejorado
43
+ - **CA-005:** la skill se puede invocar con `/mejorar-prompt "texto del prompt vago"`
44
+ - **CA-006:** si el prompt ya es profesional (tiene ≥4 de los 5 componentes), la skill lo
45
+ confirma y no reescribe innecesariamente
46
+
47
+ ---
48
+
49
+ ## Escenarios BDD
50
+
51
+ ### Escenario 1 — Prompt de implementación vago
52
+
53
+ ```
54
+ Dado: el usuario escribe "añade autenticación"
55
+ Cuando: invoca /mejorar-prompt "añade autenticación"
56
+ Entonces: obtiene una versión profesional con:
57
+ - Contexto del stack actual (Express + TypeScript, endpoints existentes)
58
+ - Tarea acotada (qué tipo de autenticación, qué endpoints proteger)
59
+ - Restricciones (no romper endpoints existentes, no instalar dependencias no aprobadas)
60
+ - Verificación con tests que cubran el happy path y el rechazo de tokens inválidos
61
+ Y: cada componente va acompañado de una línea explicando por qué se añadió
62
+ ```
63
+
64
+ ### Escenario 2 — Prompt fuera de spec
65
+
66
+ ```
67
+ Dado: la spec activa en .sdd/estado.json es "login con email"
68
+ Y: el usuario escribe "añade un sistema de pagos con Stripe"
69
+ Cuando: invoca /mejorar-prompt
70
+ Entonces: la skill emite una advertencia:
71
+ "⚠️ 'pagos con Stripe' parece estar fuera de la spec activa (login con email).
72
+ Para continuar tienes dos opciones:
73
+ 1. Escribe /sdd.especificar para abrir una nueva spec de pagos
74
+ 2. Confirma que este cambio sí forma parte de la feature actual"
75
+ Y: no reescribe el prompt hasta recibir confirmación
76
+ ```
77
+
78
+ ### Escenario 3 — Prompt de debug vago
79
+
80
+ ```
81
+ Dado: el usuario escribe "no funciona el login"
82
+ Cuando: invoca /mejorar-prompt
83
+ Entonces: la skill detecta el patrón "depurar problema" y produce:
84
+ - Contexto: qué estaba haciendo cuando falló
85
+ - Tarea: el error exacto (pegar stack trace) y el archivo/línea
86
+ - Formato: "antes de corregir: (1) causa raíz (2) por qué ocurre (3) fix propuesto"
87
+ - Verificación: test que reproduce el bug antes del fix y pasa después
88
+ ```
89
+
90
+ ### Escenario 4 — Prompt ya profesional
91
+
92
+ ```
93
+ Dado: el usuario escribe un prompt con contexto, tarea, restricciones y verificación
94
+ Cuando: invoca /mejorar-prompt
95
+ Entonces: la skill responde "Este prompt ya tiene 4/5 componentes. Está bien estructurado."
96
+ Y opcionalmente sugiere el único componente que falta (si hay alguno)
97
+ Y no reescribe el prompt
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Notas de implementación
103
+
104
+ - La skill vive en `skills/mejorar-prompt/SKILL.md`
105
+ - El agente que la ejecuta es `sonnet` (balance razonamiento / coste)
106
+ - Lee `.sdd/estado.json` antes de reescribir para detectar el scope de la spec activa
107
+ - Los 7 patrones de referencia están documentados en `docs-site/` bajo la sección Prompts
@@ -50,6 +50,12 @@ agentes:
50
50
  investigador:
51
51
  activo: true
52
52
  modelo: sonnet
53
+ product-designer:
54
+ activo: true
55
+ modelo: opus # diseño de producto riguroso
56
+ architecture-designer:
57
+ activo: true
58
+ modelo: opus # arquitectura crítica → opus siempre
53
59
 
54
60
  comportamiento:
55
61
  deteccion_tamano_automatica: true
package/presets/lean.yaml CHANGED
@@ -46,6 +46,10 @@ agentes:
46
46
  activo: false
47
47
  investigador:
48
48
  activo: false # no hay equipo que necesite el contexto documentado
49
+ product-designer:
50
+ activo: false # sin diseño formal de producto
51
+ architecture-designer:
52
+ activo: false # tú diseñas la arquitectura
49
53
 
50
54
  comportamiento:
51
55
  deteccion_tamano_automatica: true
@@ -50,6 +50,12 @@ agentes:
50
50
  investigador:
51
51
  activo: true
52
52
  modelo: sonnet
53
+ product-designer:
54
+ activo: true
55
+ modelo: sonnet
56
+ architecture-designer:
57
+ activo: true
58
+ modelo: opus # decisiones de arquitectura → opus
53
59
 
54
60
  comportamiento:
55
61
  deteccion_tamano_automatica: true
@@ -0,0 +1,181 @@
1
+ ---
2
+ name: adr-indexer
3
+ model: claude-haiku-4-5
4
+ description: Indexa decisiones arquitectónicas (ADR) desde comentarios en código
5
+ allowed-tools: Read, Write, Bash
6
+ ---
7
+
8
+ # Skill: ADR Indexer
9
+
10
+ **Propósito:** Capturar automáticamente decisiones arquitectónicas de comentarios en código y mantener un índice buscable.
11
+
12
+ ---
13
+
14
+ ## Cómo Funciona
15
+
16
+ ### Patrón ADR en Comentarios
17
+
18
+ El desarrollador (agente) deja una nota en el código:
19
+
20
+ ```python
21
+ # ADR: {"decision": "Use PostgreSQL", "context": "ACID needed", "status": "accepted"}
22
+ class Database:
23
+ pass
24
+ ```
25
+
26
+ ### Hook Captura Automáticamente
27
+
28
+ Hook `agent-memory.js` detecta comentarios con patrón `ADR: {...}` y:
29
+ 1. Extrae JSON
30
+ 2. Valida estructura
31
+ 3. Guarda en `.sdd/arquitectura/ADRs.jsonl`
32
+
33
+ ### Usuario Consulta
34
+
35
+ ```bash
36
+ /sdd.adr list
37
+ → Tabla de decisiones
38
+
39
+ /sdd.adr search "database"
40
+ → Solo ADRs que mencionan "database"
41
+
42
+ /sdd.adr new
43
+ → Captura interactiva de nueva decisión
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Estructura de ADR
49
+
50
+ ```json
51
+ {
52
+ "ts": "2026-06-14T10:30:00Z",
53
+ "decision": "Use PostgreSQL for relational data",
54
+ "context": "ACID transactions required, multi-tenant",
55
+ "alternatives": ["MongoDB", "Firebase"],
56
+ "status": "accepted",
57
+ "archivo": "src/database.ts",
58
+ "linea": 42
59
+ }
60
+ ```
61
+
62
+ **Campos:**
63
+ - `ts` — timestamp (automático)
64
+ - `decision` — qué se decidió
65
+ - `context` — por qué
66
+ - `alternatives` — opciones consideradas
67
+ - `status` — accepted | rejected | deprecated | superseded
68
+ - `archivo` — dónde está el código
69
+ - `linea` — número de línea
70
+
71
+ ---
72
+
73
+ ## Ledger: `.sdd/arquitectura/ADRs.jsonl`
74
+
75
+ Append-only JSONL:
76
+ ```
77
+ {"ts":"2026-06-14T10:30:00Z","decision":"Use PostgreSQL","status":"accepted",...}
78
+ {"ts":"2026-06-14T10:31:00Z","decision":"Use Redis for cache","status":"accepted",...}
79
+ {"ts":"2026-06-14T10:32:00Z","decision":"JWT for auth","status":"accepted",...}
80
+ ```
81
+
82
+ **Ventajas:**
83
+ - Histórico completo
84
+ - Búsqueda rápida (grep)
85
+ - Estadísticas fáciles (contar, agrupar por status)
86
+ - Reversible (append-only, nunca sobrescrito)
87
+
88
+ ---
89
+
90
+ ## Uso Interactivo
91
+
92
+ ### `/sdd.adr list`
93
+
94
+ ```
95
+ ID | DECISION | CONTEXT | STATUS
96
+ ───┼───────────────────────────┼──────────────────────┼──────────
97
+ 1 | Use PostgreSQL | ACID needed | accepted
98
+ 2 | Cache with Redis | Performance req | accepted
99
+ 3 | JWT instead of sessions | Stateless API | accepted
100
+ ```
101
+
102
+ ### `/sdd.adr search "security"`
103
+
104
+ ```
105
+ ID | DECISION | STATUS
106
+ ───┼───────────────────────────┼──────────
107
+ 1 | HTTPS only | accepted
108
+ 2 | Validate all user input | accepted
109
+ 3 | Encrypt passwords | accepted
110
+ ```
111
+
112
+ ### `/sdd.adr new`
113
+
114
+ ```
115
+ Nuevo ADR — responde las preguntas:
116
+ 1. Decisión: "Use DynamoDB para analytics"
117
+ 2. Contexto: "Scale infinitamente, baja latencia"
118
+ 3. Alternativas: "PostgreSQL partitioning, BigQuery"
119
+ 4. Status: "accepted" (o "rejected", "deprecated")
120
+
121
+ ✅ Guardado en ADRs.jsonl
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Implementación Técnica
127
+
128
+ ### En Hook: `agent-memory.js`
129
+
130
+ ```javascript
131
+ function extraerADRsDelContenido(contenido) {
132
+ // Regex multilenguaje: //, /*, #, --, etc.
133
+ const regex = /(?:\/\/|\/\*|#|--|<!--|REM)\s*ADR:\s*({[^}]*})/g;
134
+ const adrs = [];
135
+ let match;
136
+ while ((match = regex.exec(contenido)) !== null) {
137
+ try {
138
+ const json = JSON.parse(match[1]);
139
+ adrs.push(json);
140
+ } catch {
141
+ // Ignorar JSON inválido
142
+ }
143
+ }
144
+ return adrs;
145
+ }
146
+
147
+ function registrarADR(cwd, agente, archivo, adrs) {
148
+ const ledgerFile = join(cwd, ".sdd/arquitectura/ADRs.jsonl");
149
+ for (const adr of adrs) {
150
+ const linea = JSON.stringify({
151
+ ts: new Date().toISOString(),
152
+ ...adr,
153
+ archivo: archivo,
154
+ agente: agente
155
+ });
156
+ appendFileSync(ledgerFile, linea + "\n", "utf8");
157
+ }
158
+ }
159
+ ```
160
+
161
+ ---
162
+
163
+ ## CLI: `adr-parser.js`
164
+
165
+ Batch scan del codebase:
166
+
167
+ ```bash
168
+ node utils/adr-parser.js . src/**/*.ts --update-ledger
169
+ ```
170
+
171
+ Encuentra todos los ADRs en archivos existentes y los añade al ledger.
172
+
173
+ ---
174
+
175
+ ## Notas
176
+
177
+ - **Multilenguaje:** Soporta comentarios en Python, JS, Go, Java, Rust, etc.
178
+ - **Idempotente:** Escanear 2 veces = mismos resultados (sin duplicados)
179
+ - **Seguro:** JSON validado antes de guardar, error silencioso si es inválido
180
+ - **Performante:** Regex simple, <100ms para archivo de 100KB
181
+
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Audita los archivos de agentes (.claude/agents/*.md) para detectar bloques estables susceptibles de cache_control y los 3 patrones que invalidan caché silenciosamente (timestamps dinámicos, UUIDs, contenido JSONL embebido). Produce una lista de oportunidades de caché ordenadas por impacto.
3
- model: claude-haiku-4-5-20251001
3
+ model: haiku
4
4
  allowed-tools: Read, Bash
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Auto-crítica del wireframe generado. Evalúa en 5 dimensiones con score 1-5. Si score < 4 y iteraciones < 3, refina el artefacto y repite. Adaptado de critique-theater de open-design.
3
- model: claude-sonnet-4-6
3
+ model: sonnet
4
4
  allowed-tools: Read, Write
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Discovery form de 5 preguntas para entender la idea del usuario antes de interpretar. Genera contexto estructurado que alimenta el Interpreter.
3
- model: claude-opus-4-8
3
+ model: opus
4
4
  allowed-tools: Write
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Dado el nombre de la fase SDD actual, recomienda effort (low/medium/high/max) y modelo (Haiku/Sonnet/Opus) para cada agente. Evita pagar Opus cuando Sonnet o Haiku son suficientes — ahorro típico del 60-75% en fases mecánicas.
3
- model: claude-haiku-4-5-20251001
3
+ model: haiku
4
4
  allowed-tools: Read
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Direction picker inspirado en open-design. Selecciona 3 de las 5 direcciones visuales disponibles según el tipo de producto y audiencia del IR, y el usuario elige una antes de generar cualquier diseño.
3
- model: claude-sonnet-4-6
3
+ model: sonnet
4
4
  allowed-tools: Read, Write
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Convierte una idea en texto libre a un IR (Interpreted Requirement) JSON validado. Trabaja en 2 fases - razonamiento libre + extracción JSON. Lee .sdd/descubrimiento.md si existe.
3
- model: claude-opus-4-8
3
+ model: opus
4
4
  allowed-tools: Read, Write
5
5
  ---
6
6
 
@@ -0,0 +1,237 @@
1
+ ---
2
+ description: Transforma un prompt vago en versión profesional siguiendo los 7 patrones
3
+ de Claude Code (Contexto · Tarea · Restricciones · Formato · Verificación). Detecta
4
+ si el prompt solicita algo fuera de la spec activa y advierte antes de continuar.
5
+ model: sonnet
6
+ allowed-tools: Read, Bash
7
+ ---
8
+
9
+ # Skill: Mejorar Prompt
10
+
11
+ ## Propósito
12
+
13
+ Un prompt vago produce resultados impredecibles. Claude Code toma decisiones discrecionales
14
+ sobre alcance, enfoque y dependencias cuando las instrucciones son ambiguas. Esta skill
15
+ cierra esa brecha: toma la intención del usuario y la convierte en un prompt profesional
16
+ con los componentes necesarios para obtener resultados predecibles y dentro de la spec activa.
17
+
18
+ ---
19
+
20
+ ## Lo que lees primero
21
+
22
+ Antes de reescribir el prompt, lee el estado del proyecto:
23
+
24
+ ```bash
25
+ # Fase y feature activa
26
+ cat .sdd/estado.json 2>/dev/null || echo "SIN_ESTADO"
27
+
28
+ # Spec activa (si existe estado)
29
+ SPEC_ID=$(cat .sdd/estado.json 2>/dev/null | grep -o '"spec_activa":"[^"]*"' | cut -d'"' -f4)
30
+ [ -n "$SPEC_ID" ] && cat ".sdd/especificaciones/${SPEC_ID}/spec.md" 2>/dev/null | head -40
31
+ ```
32
+
33
+ Si no existe `.sdd/estado.json`: continúa sin validación de scope. No inventes un estado.
34
+
35
+ ---
36
+
37
+ ## Los 7 patrones
38
+
39
+ Identifica cuál de estos patrones aplica al prompt del usuario antes de reescribirlo:
40
+
41
+ | # | Patrón | Cuándo aplica |
42
+ |---|--------|---------------|
43
+ | 1 | **Implementar feature** | "añade X", "crea Y", "implementa Z" |
44
+ | 2 | **Depurar problema** | "no funciona", "hay un error", "falla cuando" |
45
+ | 3 | **Refactorizar** | "reorganiza", "limpia", "extrae", "mejora la estructura" |
46
+ | 4 | **Explorar proyecto** | "explícame", "cómo funciona", "qué hace", "analiza" |
47
+ | 5 | **Escribir tests** | "testea", "añade pruebas", "cobertura" |
48
+ | 6 | **Documentar** | "documenta", "escribe el README", "añade JSDoc" |
49
+ | 7 | **Pedir justificación** | "por qué hiciste", "qué alternativas", "justifica" |
50
+
51
+ ---
52
+
53
+ ## Flujo de mejora
54
+
55
+ ### PASO 1 — Clasifica el prompt
56
+
57
+ Lee el prompt del usuario. Identifica:
58
+ - El **patrón** de los 7 que mejor aplica
59
+ - La **intención concreta** (qué quiere lograr, no cómo lo dice)
60
+ - Las **entidades** mencionadas (qué módulos, archivos, funciones afecta)
61
+
62
+ ### PASO 2 — Verifica el scope
63
+
64
+ Si existe `.sdd/estado.json`:
65
+ - Extrae la feature activa y la fase actual
66
+ - Compara con lo que el prompt pide
67
+
68
+ **Si el prompt está FUERA del scope:**
69
+ ```
70
+ ⚠️ Alerta de scope: "{lo que pide}" parece estar fuera de la spec activa ("{feature}").
71
+
72
+ Opciones antes de continuar:
73
+ 1. Escribe /sdd.especificar para abrir una spec nueva
74
+ 2. Confirma explícitamente que esto forma parte de la feature actual
75
+
76
+ No continuaré hasta recibir confirmación.
77
+ ```
78
+ Detente aquí. No reescribas el prompt.
79
+
80
+ **Si el prompt está DENTRO del scope o no hay spec activa:** continúa al PASO 3.
81
+
82
+ ### PASO 3 — Evalúa el prompt actual
83
+
84
+ Cuenta cuántos de los 5 componentes ya están presentes:
85
+
86
+ | Componente | ¿Presente? |
87
+ |---|---|
88
+ | Contexto (qué proyecto/stack/estado existe ya) | sí / no |
89
+ | Tarea (qué hay que hacer exactamente, acotado) | sí / no |
90
+ | Restricciones (qué no tocar, qué no instalar) | sí / no |
91
+ | Formato (cómo quiere el resultado) | sí / no |
92
+ | Verificación (cómo confirmar que funcionó) | sí / no |
93
+
94
+ Si el prompt tiene **≥ 4 componentes**: responde "Este prompt ya está bien estructurado
95
+ (X/5 componentes). Solo falta: [el que falta]." y detente.
96
+
97
+ ### PASO 4 — Construye la versión profesional
98
+
99
+ Para los componentes faltantes, infiere el contenido a partir de:
100
+ - El estado del proyecto (`.sdd/estado.json`, `package.json`, estructura de carpetas)
101
+ - Las convenciones del proyecto (naming, testing framework, estructura de módulos)
102
+ - El patrón detectado en PASO 1
103
+
104
+ Aplica el esquema del patrón correspondiente:
105
+
106
+ **Patrón 1 — Implementar feature:**
107
+ ```
108
+ Contexto: [proyecto, stack, qué existe ya relevante para esta feature]
109
+
110
+ Tarea: Implementa [feature] con estos requisitos:
111
+ - [requisito concreto 1]
112
+ - [requisito concreto 2]
113
+
114
+ Restricciones:
115
+ - [qué no cambiar]
116
+ - [dependencias que no instalar]
117
+ - [patrones del proyecto a respetar]
118
+
119
+ Verificación: [tests a crear y ejecutar, o comando para comprobar]
120
+ ```
121
+
122
+ **Patrón 2 — Depurar problema:**
123
+ ```
124
+ Contexto: [qué estaba haciendo cuando ocurrió]
125
+
126
+ Tarea: Tengo este error:
127
+ [pegar el error completo con stack trace]
128
+ Archivo: [archivo y línea si lo sabes]
129
+
130
+ Formato: Antes de corregir nada:
131
+ 1. Identifica la causa raíz, no el síntoma
132
+ 2. Explica por qué ocurre
133
+ 3. Propón el fix y justifícalo
134
+ 4. ¿Qué más podría verse afectado?
135
+
136
+ Verificación: Añade un test que reproduzca el bug antes del fix y pase después.
137
+ ```
138
+
139
+ **Patrón 3 — Refactorizar:**
140
+ ```
141
+ Contexto: [qué módulo y por qué refactorizarlo]
142
+
143
+ Tarea: Refactoriza [archivo/módulo] para [objetivo concreto].
144
+
145
+ Restricciones:
146
+ - La API pública NO debe cambiar
147
+ - Los tests existentes deben seguir pasando sin modificarlos
148
+ - Sigue el patrón [patrón del proyecto]
149
+
150
+ Formato: Antes de tocar código, muéstrame qué cambiarías y por qué.
151
+
152
+ Verificación: Ejecuta todos los tests sin cambiarlos. Si alguno falla, el refactoring rompió algo.
153
+ ```
154
+
155
+ **Patrón 4 — Explorar proyecto:**
156
+ ```
157
+ Tarea: Analiza [proyecto/módulo] y responde:
158
+ - [pregunta sobre estructura]
159
+ - [pregunta sobre patrones]
160
+
161
+ Formato: [resumen breve por pregunta + diagrama ASCII si aplica]
162
+
163
+ Restricciones: No modifiques nada. Solo lectura.
164
+ ```
165
+
166
+ **Patrón 5 — Escribir tests:**
167
+ ```
168
+ Contexto: [qué módulo/servicio y qué hace]
169
+
170
+ Tarea: Genera tests para [archivo]. Para cada función pública:
171
+ - Un test del caso normal (happy path)
172
+ - Un test de caso edge [ejemplos]
173
+ - Un test de error [ejemplos]
174
+
175
+ Restricciones: [framework de testing del proyecto]
176
+
177
+ Verificación: Ejecuta los tests. Muéstrame la cobertura del archivo.
178
+ ```
179
+
180
+ **Patrón 6 — Documentar:**
181
+ ```
182
+ Contexto: [quién va a leer esta doc y para qué]
183
+
184
+ Tarea: Genera documentación para [archivo/módulo/API] incluyendo:
185
+ - [secciones necesarias]
186
+
187
+ Formato: [Markdown, JSDoc, README, etc.]
188
+
189
+ Verificación: Compara el resultado con el código real. Si falta algo, añádelo.
190
+ ```
191
+
192
+ **Patrón 7 — Pedir justificación:**
193
+ ```
194
+ Sobre [la implementación que acabas de hacer]:
195
+ 1. ¿Qué alternativas consideraste y por qué elegiste esta?
196
+ 2. ¿Qué trade-offs tiene tu decisión?
197
+ 3. ¿Qué podría fallar con este enfoque?
198
+ 4. ¿Qué harías diferente con más tiempo o a mayor escala?
199
+ ```
200
+
201
+ ### PASO 5 — Presenta el resultado
202
+
203
+ Muestra la respuesta completa con esta estructura:
204
+
205
+ ```
206
+ ## Prompt original
207
+ [lo que escribió el usuario, sin cambios]
208
+
209
+ ## Patrón detectado
210
+ [nombre del patrón] — [una frase de por qué aplica este patrón]
211
+
212
+ ## Prompt profesional
213
+
214
+ [versión mejorada completa, lista para copiar y pegar]
215
+
216
+ ## Por qué funciona
217
+ - **Contexto:** [qué se añadió y por qué]
218
+ - **Tarea:** [cómo se acotó y por qué]
219
+ - **Restricciones:** [qué se protegió y por qué]
220
+ - **Verificación:** [cómo cierra el ciclo]
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Notas
226
+
227
+ **Prompt ya profesional:** Si el usuario envía un prompt con ≥4 componentes, confírmalo
228
+ y ofrece solo el componente que falta, sin reescribir lo demás.
229
+
230
+ **Prompt ambiguo:** Si la intención no está clara (ej. "arregla el código"), pregunta
231
+ una sola cosa antes de continuar: "¿Qué parte específica no funciona como esperabas?"
232
+
233
+ **Sin proyecto SDD:** Si no existe `.sdd/`, omite la validación de scope y el componente
234
+ de restricciones relacionado con la spec. Aún aplica los 4 componentes restantes.
235
+
236
+ **Cadena de patrones:** Cuando la tarea implica varias etapas, sugiere la cadena natural:
237
+ Explorar → Implementar → Tests → Justificar → Documentar. Un prompt por etapa.