elsabro 2.1.0 → 2.2.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 (46) hide show
  1. package/commands/elsabro/add-phase.md +17 -0
  2. package/commands/elsabro/add-todo.md +111 -53
  3. package/commands/elsabro/audit-milestone.md +19 -0
  4. package/commands/elsabro/check-todos.md +210 -31
  5. package/commands/elsabro/complete-milestone.md +20 -1
  6. package/commands/elsabro/debug.md +19 -0
  7. package/commands/elsabro/discuss-phase.md +18 -1
  8. package/commands/elsabro/execute.md +288 -12
  9. package/commands/elsabro/insert-phase.md +18 -1
  10. package/commands/elsabro/list-phase-assumptions.md +17 -0
  11. package/commands/elsabro/new-milestone.md +19 -0
  12. package/commands/elsabro/new.md +19 -0
  13. package/commands/elsabro/pause-work.md +19 -0
  14. package/commands/elsabro/plan-milestone-gaps.md +20 -1
  15. package/commands/elsabro/plan.md +264 -36
  16. package/commands/elsabro/progress.md +203 -79
  17. package/commands/elsabro/quick.md +19 -0
  18. package/commands/elsabro/remove-phase.md +17 -0
  19. package/commands/elsabro/research-phase.md +18 -1
  20. package/commands/elsabro/resume-work.md +19 -0
  21. package/commands/elsabro/start.md +365 -98
  22. package/commands/elsabro/verify-work.md +109 -5
  23. package/package.json +1 -1
  24. package/references/SYSTEM_INDEX.md +241 -0
  25. package/references/command-flow.md +352 -0
  26. package/references/enforcement-rules.md +331 -0
  27. package/references/error-handling-instructions.md +26 -12
  28. package/references/state-sync.md +381 -0
  29. package/references/task-dispatcher.md +388 -0
  30. package/references/tasks-integration.md +380 -0
  31. package/skills/api-microservice.md +765 -0
  32. package/skills/api-setup.md +76 -3
  33. package/skills/auth-setup.md +46 -6
  34. package/skills/chrome-extension.md +584 -0
  35. package/skills/cicd-setup.md +1206 -0
  36. package/skills/cli-tool.md +884 -0
  37. package/skills/database-setup.md +41 -5
  38. package/skills/desktop-app.md +1351 -0
  39. package/skills/expo-app.md +35 -2
  40. package/skills/full-stack-app.md +543 -0
  41. package/skills/mobile-app.md +813 -0
  42. package/skills/nextjs-app.md +33 -2
  43. package/skills/payments-setup.md +76 -1
  44. package/skills/saas-starter.md +639 -0
  45. package/skills/sentry-setup.md +41 -7
  46. package/skills/testing-setup.md +1218 -0
@@ -0,0 +1,331 @@
1
+ # ELSABRO Enforcement Rules
2
+
3
+ ## REGLAS NO NEGOCIABLES
4
+
5
+ Estas reglas son **OBLIGATORIAS**. No hay excepciones. No hay "casos especiales". Si no las sigues, estás violando el protocolo ELSABRO.
6
+
7
+ ---
8
+
9
+ ### 1. TaskCreate ANTES de Acción
10
+
11
+ **PROHIBIDO**: Ejecutar código, modificar archivos, o hacer operaciones sin crear Task primero.
12
+
13
+ **OBLIGATORIO**: Seguir la secuencia completa:
14
+ ```
15
+ TaskCreate → TaskUpdate(in_progress) → Task() → TaskUpdate(completed)
16
+ ```
17
+
18
+ **Ejemplo correcto:**
19
+ ```
20
+ 1. TaskCreate("Implementar endpoint de autenticación")
21
+ 2. TaskUpdate(id, status: "in_progress")
22
+ 3. Task("Implementa el endpoint POST /api/auth/login...")
23
+ 4. TaskUpdate(id, status: "completed", result: "...")
24
+ ```
25
+
26
+ **Ejemplo INCORRECTO:**
27
+ ```
28
+ # VIOLACIÓN: Ejecutar sin Task
29
+ Edit(file_path: "src/api/auth.ts", ...)
30
+ ```
31
+
32
+ ---
33
+
34
+ ### 2. TaskUpdate(in_progress) ANTES de Task()
35
+
36
+ **PROHIBIDO**: Lanzar `Task()` sin primero marcar la tarea como `in_progress`.
37
+
38
+ **OBLIGATORIO**: Actualizar estado ANTES de ejecutar.
39
+
40
+ **Razón**: El sistema necesita saber qué está en ejecución para coordinación, recuperación de errores, y visibilidad.
41
+
42
+ ```
43
+ # CORRECTO
44
+ TaskUpdate(id: "task-001", status: "in_progress")
45
+ Task("prompt...")
46
+
47
+ # INCORRECTO - VIOLACIÓN
48
+ Task("prompt...") # Sin TaskUpdate previo
49
+ ```
50
+
51
+ ---
52
+
53
+ ### 3. Mínimo de Agentes por Fase
54
+
55
+ **PROHIBIDO**: Lanzar menos agentes del mínimo requerido.
56
+
57
+ **OBLIGATORIO**: Respetar los mínimos según la fase:
58
+
59
+ | Fase | Mínimo Agentes | Modelo | Paralelo |
60
+ |------|----------------|--------|----------|
61
+ | Exploración | 3+ | HAIKU | OBLIGATORIO |
62
+ | Implementación | 2+ | OPUS | OBLIGATORIO |
63
+ | Verificación | 3+ | OPUS | OBLIGATORIO |
64
+
65
+ **Ejemplo exploración:**
66
+ ```
67
+ # CORRECTO: 3 agentes haiku en paralelo
68
+ Task("Explora estructura de archivos...") # haiku
69
+ Task("Busca patrones existentes...") # haiku
70
+ Task("Identifica dependencias...") # haiku
71
+
72
+ # INCORRECTO - VIOLACIÓN: Solo 1 agente
73
+ Task("Explora todo el proyecto...")
74
+ ```
75
+
76
+ ---
77
+
78
+ ### 4. Paralelismo OBLIGATORIO
79
+
80
+ **PROHIBIDO**: Ejecutar secuencialmente cuando se puede paralelizar.
81
+
82
+ **OBLIGATORIO**: Lanzar agentes en paralelo cuando las tareas son independientes.
83
+
84
+ **Regla**: Si las tareas NO dependen del resultado de otra, DEBEN ejecutarse en paralelo.
85
+
86
+ ```
87
+ # CORRECTO: Paralelo
88
+ [Task("Analiza módulo A"), Task("Analiza módulo B"), Task("Analiza módulo C")]
89
+
90
+ # INCORRECTO: Secuencial innecesario
91
+ Task("Analiza módulo A")
92
+ # esperar...
93
+ Task("Analiza módulo B")
94
+ # esperar...
95
+ Task("Analiza módulo C")
96
+ ```
97
+
98
+ ---
99
+
100
+ ### 5. Tasks API como Backend Único
101
+
102
+ **PROHIBIDO**: Usar sistemas de storage duplicados (`.planning/TODOS.md`, archivos custom).
103
+
104
+ **OBLIGATORIO**: Usar Claude Code Tasks API para todo el tracking.
105
+
106
+ **Metadata Schema Estándar:**
107
+ ```json
108
+ {
109
+ "type": "todo|phase|milestone|work",
110
+ "priority": "critical|high|medium|low",
111
+ "category": "bug|tech-debt|docs|chore|idea|feature",
112
+ "due_date": "ISO-8601 | null",
113
+ "milestone_id": "M001 | null",
114
+ "phase_id": "P001 | null",
115
+ "source_command": "add-todo|plan|execute|etc"
116
+ }
117
+ ```
118
+
119
+ **Ejemplo correcto:**
120
+ ```javascript
121
+ // Crear TODO
122
+ TaskCreate({
123
+ subject: "Fix validation bug",
124
+ metadata: { type: "todo", priority: "high", category: "bug" }
125
+ });
126
+
127
+ // Consultar TODOs
128
+ TaskList().filter(t => t.metadata?.type === "todo");
129
+ ```
130
+
131
+ **Ejemplo INCORRECTO:**
132
+ ```javascript
133
+ // VIOLACIÓN: Sistema duplicado
134
+ fs.appendFile('.planning/TODOS.md', '- [ ] Fix validation bug');
135
+ ```
136
+
137
+ ---
138
+
139
+ ### 6. Modelo Correcto por Fase
140
+
141
+ **PROHIBIDO**: Usar modelos incorrectos para cada fase.
142
+
143
+ **OBLIGATORIO**: Seguir la asignación de modelos:
144
+
145
+ | Fase | Modelo | Razón |
146
+ |------|--------|-------|
147
+ | Exploración rápida | HAIKU | Velocidad, bajo costo |
148
+ | Análisis profundo | SONNET | Balance velocidad/calidad |
149
+ | Implementación | OPUS | Máxima calidad |
150
+ | Verificación crítica | OPUS | Máxima precisión |
151
+
152
+ ---
153
+
154
+ ## MATRIZ DE COMANDOS
155
+
156
+ ### Comandos Core (Workflow Principal)
157
+
158
+ | Comando | TaskCreate | Min Agents | Paralelo | Modelo | State Sync | Notas |
159
+ |---------|-----------|-----------|----------|--------|------------|-------|
160
+ | `start` | **OBLIGATORIO** | 2 | **SÍ** | haiku | **SÍ** | Orquestador - detectar contexto |
161
+ | `plan` | **OBLIGATORIO** | 3+ | **SÍ** | haiku→opus | **SÍ** | Exploración→Planificación |
162
+ | `execute` | **OBLIGATORIO** | 3+ | **SÍ** | haiku→opus→opus | **SÍ** | Exploración→Impl→Verificación |
163
+ | `verify-work` | **OBLIGATORIO** | 3 | **SÍ** | opus | **SÍ** | Verificación exhaustiva |
164
+ | `debug` | **OBLIGATORIO** | 1+ | OPCIONAL | opus | **SÍ** | Diagnóstico profundo |
165
+ | `quick` | **OBLIGATORIO** | 1 | NO | sonnet | **SÍ** | Tarea simple y rápida |
166
+ | `new` | **OBLIGATORIO** | 2 | **SÍ** | haiku | **SÍ** | Setup inicial |
167
+
168
+ ### Comandos de Session Management
169
+
170
+ | Comando | TaskCreate | Min Agents | Paralelo | Modelo | State Sync | Notas |
171
+ |---------|-----------|-----------|----------|--------|------------|-------|
172
+ | `pause-work` | **OBLIGATORIO** | 0 | NO | - | **SÍ** | Guardar contexto para retomar |
173
+ | `resume-work` | **OBLIGATORIO** | 1 | NO | haiku | **SÍ** | Retomar contexto guardado |
174
+ | `progress` | NO | 0 | NO | - | **SÍ** (read) | Ver estado actual |
175
+
176
+ ### Comandos de Milestone Management
177
+
178
+ | Comando | TaskCreate | Min Agents | Paralelo | Modelo | State Sync | Notas |
179
+ |---------|-----------|-----------|----------|--------|------------|-------|
180
+ | `new-milestone` | **OBLIGATORIO** | 1 | NO | sonnet | **SÍ** | Crear nuevo milestone |
181
+ | `complete-milestone` | **OBLIGATORIO** | 1 | NO | sonnet | **SÍ** | Cerrar milestone |
182
+ | `audit-milestone` | **OBLIGATORIO** | 2 | **SÍ** | haiku→sonnet | **SÍ** | Auditar estado |
183
+ | `plan-milestone-gaps` | **OBLIGATORIO** | 2 | **SÍ** | haiku→opus | **SÍ** | Identificar gaps |
184
+
185
+ ### Comandos de Phase Management
186
+
187
+ | Comando | TaskCreate | Min Agents | Paralelo | Modelo | State Sync | Notas |
188
+ |---------|-----------|-----------|----------|--------|------------|-------|
189
+ | `add-phase` | OPCIONAL | 0 | NO | - | **SÍ** | Agregar fase al final |
190
+ | `insert-phase` | OPCIONAL | 0 | NO | - | **SÍ** | Insertar fase en posición |
191
+ | `remove-phase` | OPCIONAL | 0 | NO | - | **SÍ** | Eliminar fase |
192
+ | `discuss-phase` | **OBLIGATORIO** | 1 | NO | sonnet | NO | Discusión interactiva |
193
+ | `research-phase` | **OBLIGATORIO** | 2 | **SÍ** | haiku | **SÍ** | Investigar tecnologías |
194
+ | `list-phase-assumptions` | NO | 0 | NO | - | NO | Listar supuestos |
195
+
196
+ ### Comandos de Todo Management
197
+
198
+ | Comando | TaskCreate | Min Agents | Paralelo | Modelo | State Sync | Notas |
199
+ |---------|-----------|-----------|----------|--------|------------|-------|
200
+ | `add-todo` | OPCIONAL | 0 | NO | - | NO | Agregar item |
201
+ | `check-todos` | NO | 0 | NO | - | NO | Ver lista |
202
+
203
+ ### Comandos de Utilidad
204
+
205
+ | Comando | TaskCreate | Min Agents | Paralelo | Modelo | State Sync | Notas |
206
+ |---------|-----------|-----------|----------|--------|------------|-------|
207
+ | `help` | NO | 0 | NO | - | NO | Solo información |
208
+ | `settings` | NO | 0 | NO | - | NO | Solo configuración |
209
+ | `set-profile` | NO | 0 | NO | - | NO | Cambiar perfil |
210
+ | `update` | NO | 0 | NO | - | NO | Actualizar ELSABRO |
211
+ | `map-codebase` | **OBLIGATORIO** | 2 | **SÍ** | haiku | NO | Mapear proyecto |
212
+ | `verify` | **OBLIGATORIO** | 1 | NO | sonnet | NO | Verificar feature |
213
+
214
+ ---
215
+
216
+ ## SECUENCIA OBLIGATORIA POR COMANDO
217
+
218
+ ### /elsabro:execute
219
+ ```
220
+ 1. TaskCreate("Fase exploración")
221
+ 2. TaskUpdate(in_progress)
222
+ 3. Task(haiku) x3 [paralelo] - Explorar contexto
223
+ 4. TaskUpdate(completed)
224
+
225
+ 5. TaskCreate("Fase implementación")
226
+ 6. TaskUpdate(in_progress)
227
+ 7. Task(opus) x2 [paralelo] - Implementar
228
+ 8. TaskUpdate(completed)
229
+
230
+ 9. TaskCreate("Fase verificación")
231
+ 10. TaskUpdate(in_progress)
232
+ 11. Task(opus) x3 [paralelo] - Verificar
233
+ 12. TaskUpdate(completed)
234
+ ```
235
+
236
+ ### /elsabro:plan
237
+ ```
238
+ 1. TaskCreate("Explorar requerimientos")
239
+ 2. TaskUpdate(in_progress)
240
+ 3. Task(haiku) x3 [paralelo] - Explorar codebase
241
+ 4. TaskUpdate(completed)
242
+
243
+ 5. TaskCreate("Generar plan")
244
+ 6. TaskUpdate(in_progress)
245
+ 7. Task(opus) x2 [paralelo] - Crear plan detallado
246
+ 8. TaskUpdate(completed)
247
+ ```
248
+
249
+ ### /elsabro:verify-work
250
+ ```
251
+ 1. TaskCreate("Verificación exhaustiva")
252
+ 2. TaskUpdate(in_progress)
253
+ 3. Task(opus) x3 [paralelo]:
254
+ - Verificar funcionalidad
255
+ - Verificar tests
256
+ - Verificar integración
257
+ 4. TaskUpdate(completed)
258
+ ```
259
+
260
+ ### /elsabro:debug
261
+ ```
262
+ 1. TaskCreate("Diagnóstico")
263
+ 2. TaskUpdate(in_progress)
264
+ 3. Task(opus) x1+ - Investigar problema
265
+ 4. TaskUpdate(completed)
266
+ ```
267
+
268
+ ### /elsabro:quick
269
+ ```
270
+ 1. TaskCreate("Tarea rápida")
271
+ 2. TaskUpdate(in_progress)
272
+ 3. Task(sonnet) x1 - Ejecutar tarea simple
273
+ 4. TaskUpdate(completed)
274
+ ```
275
+
276
+ ### /elsabro:new
277
+ ```
278
+ 1. TaskCreate("Setup proyecto")
279
+ 2. TaskUpdate(in_progress)
280
+ 3. Task(haiku) x2 [paralelo] - Analizar y crear estructura
281
+ 4. TaskUpdate(completed)
282
+ ```
283
+
284
+ ---
285
+
286
+ ## VIOLACIONES Y CONSECUENCIAS
287
+
288
+ ### Violación Crítica
289
+ - Ejecutar sin TaskCreate
290
+ - Lanzar Task sin TaskUpdate(in_progress)
291
+ - Menos agentes del mínimo
292
+
293
+ **Consecuencia**: Abortar operación. No continuar.
294
+
295
+ ### Violación Mayor
296
+ - No paralelizar cuando es posible
297
+ - Modelo incorrecto para la fase
298
+
299
+ **Consecuencia**: Warning. Corregir antes de continuar.
300
+
301
+ ### Violación Menor
302
+ - TaskUpdate(completed) sin resultado claro
303
+
304
+ **Consecuencia**: Registrar. Continuar con precaución.
305
+
306
+ ---
307
+
308
+ ## CHECKLIST DE AUTO-VERIFICACIÓN
309
+
310
+ Antes de cada operación, verifica:
311
+
312
+ - [ ] TaskCreate ejecutado
313
+ - [ ] TaskUpdate(in_progress) ejecutado
314
+ - [ ] Cantidad de agentes >= mínimo requerido
315
+ - [ ] Agentes lanzados en paralelo (si aplica)
316
+ - [ ] Modelo correcto para la fase
317
+ - [ ] TaskUpdate(completed) al finalizar
318
+
319
+ ---
320
+
321
+ ## NOTAS FINALES
322
+
323
+ 1. **No hay atajos**: Estas reglas existen por razones de rendimiento, coordinación y calidad.
324
+
325
+ 2. **Paralelismo = Velocidad**: 3 agentes en paralelo terminan antes que 3 secuenciales.
326
+
327
+ 3. **Tasks = Visibilidad**: Sin Tasks, no hay tracking, no hay recuperación de errores.
328
+
329
+ 4. **Modelos = Costo/Beneficio**: Haiku para explorar, Opus para implementar. No al revés.
330
+
331
+ 5. **Mínimos son mínimos**: Puedes usar MÁS agentes, nunca MENOS.
@@ -19,7 +19,7 @@ Cuando encuentres un error, clasifícalo usando esta escala:
19
19
  ```
20
20
 
21
21
  **Ejemplos:**
22
- - SESSION.md corrupto o faltante
22
+ - `.elsabro/state.json` corrupto o faltante
23
23
  - Archivos de configuración críticos inválidos
24
24
  - Dependencias con versiones incompatibles
25
25
  - Estado de git inconsistente (detached HEAD, conflictos)
@@ -102,18 +102,18 @@ Usa este formato visual para errores:
102
102
  ### Error CRITICAL
103
103
  ```
104
104
  ╔══════════════════════════════════════════════════╗
105
- ║ 🔴 ERROR: SESSION_MISSING
105
+ ║ 🔴 ERROR: STATE_MISSING
106
106
  ║ Severity: CRITICAL ║
107
107
  ╠══════════════════════════════════════════════════╣
108
108
  ║ ║
109
- ║ No se encontró el archivo de sesión
109
+ ║ No se encontró el archivo de estado
110
110
  ║ ║
111
- ║ El archivo .planning/SESSION.md no existe
111
+ ║ El archivo .elsabro/state.json no existe
112
112
  ║ o está corrupto. ║
113
113
  ║ ║
114
114
  ╠══════════════════════════════════════════════════╣
115
115
  ║ ACCIÓN REQUERIDA: ║
116
- ║ → /elsabro:start para iniciar nueva sesión
116
+ ║ → /elsabro:start para inicializar proyecto
117
117
  ╚══════════════════════════════════════════════════╝
118
118
  ```
119
119
 
@@ -276,17 +276,31 @@ Attempt 3: Esperar 2s, reintentar
276
276
 
277
277
  ## Actualización de Estado
278
278
 
279
- Después de cada operación significativa, actualiza `.planning/SESSION-STATE.json`:
279
+ **IMPORTANTE**: El archivo de estado unificado es `.elsabro/state.json` (ver `/references/state-sync.md`).
280
+
281
+ Después de cada operación significativa, actualiza `.elsabro/state.json`:
280
282
 
281
283
  ```json
282
284
  {
283
- "lastUpdated": "2024-01-20T15:30:00Z",
285
+ "version": "1.0.0",
286
+ "updated_at": "2024-01-20T15:30:00Z",
287
+ "current_flow": {
288
+ "command": "execute",
289
+ "phase": "executing_wave_2",
290
+ "started_at": "2024-01-20T15:00:00Z"
291
+ },
284
292
  "context": {
285
- "milestone": "M001",
286
- "phase": "P3",
287
- "progress": 65,
288
- "currentTask": "Implement user profile"
293
+ "project_type": "brownfield",
294
+ "tech_stack": ["nextjs", "prisma"],
295
+ "current_feature": "user-profile"
289
296
  },
297
+ "history": [
298
+ {
299
+ "command": "plan",
300
+ "completed_at": "2024-01-20T14:50:00Z",
301
+ "result": "created"
302
+ }
303
+ ],
290
304
  "errors": {
291
305
  "count": 1,
292
306
  "lastError": {
@@ -307,6 +321,6 @@ Antes de reportar "completado":
307
321
 
308
322
  - [ ] ¿Hubo errores? → Clasificados y reportados
309
323
  - [ ] ¿Hubo warnings? → Listados al final
310
- - [ ] ¿Estado actualizado? → SESSION-STATE.json actualizado
324
+ - [ ] ¿Estado actualizado? → .elsabro/state.json actualizado (ver /references/state-sync.md)
311
325
  - [ ] ¿Retry necesario? → Intentado con backoff
312
326
  - [ ] ¿Ejecución paralela? → Política aplicada, resultados agregados