elsabro 2.1.0 → 2.3.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 (64) hide show
  1. package/agents/elsabro-orchestrator.md +113 -0
  2. package/commands/elsabro/add-phase.md +17 -0
  3. package/commands/elsabro/add-todo.md +111 -53
  4. package/commands/elsabro/audit-milestone.md +19 -0
  5. package/commands/elsabro/check-todos.md +210 -31
  6. package/commands/elsabro/complete-milestone.md +20 -1
  7. package/commands/elsabro/debug.md +19 -0
  8. package/commands/elsabro/discuss-phase.md +18 -1
  9. package/commands/elsabro/execute.md +511 -58
  10. package/commands/elsabro/insert-phase.md +18 -1
  11. package/commands/elsabro/list-phase-assumptions.md +17 -0
  12. package/commands/elsabro/new-milestone.md +19 -0
  13. package/commands/elsabro/new.md +19 -0
  14. package/commands/elsabro/pause-work.md +19 -0
  15. package/commands/elsabro/plan-milestone-gaps.md +20 -1
  16. package/commands/elsabro/plan.md +264 -36
  17. package/commands/elsabro/progress.md +203 -79
  18. package/commands/elsabro/quick.md +19 -0
  19. package/commands/elsabro/remove-phase.md +17 -0
  20. package/commands/elsabro/research-phase.md +18 -1
  21. package/commands/elsabro/resume-work.md +19 -0
  22. package/commands/elsabro/start.md +399 -98
  23. package/commands/elsabro/verify-work.md +138 -5
  24. package/hooks/confirm-destructive.sh +145 -0
  25. package/hooks/hooks-config.json +81 -0
  26. package/hooks/lint-check.sh +238 -0
  27. package/hooks/post-edit-test.sh +189 -0
  28. package/package.json +3 -2
  29. package/references/SYSTEM_INDEX.md +241 -0
  30. package/references/command-flow.md +352 -0
  31. package/references/enforcement-rules.md +331 -0
  32. package/references/error-contracts-tests.md +1171 -0
  33. package/references/error-contracts.md +3102 -0
  34. package/references/error-handling-instructions.md +26 -12
  35. package/references/parallel-worktrees.md +293 -0
  36. package/references/state-sync.md +381 -0
  37. package/references/task-dispatcher.md +388 -0
  38. package/references/tasks-integration.md +380 -0
  39. package/scripts/setup-parallel-worktrees.sh +319 -0
  40. package/skills/api-microservice.md +765 -0
  41. package/skills/api-setup.md +76 -3
  42. package/skills/auth-setup.md +46 -6
  43. package/skills/chrome-extension.md +584 -0
  44. package/skills/cicd-setup.md +1206 -0
  45. package/skills/cli-tool.md +884 -0
  46. package/skills/database-setup.md +41 -5
  47. package/skills/desktop-app.md +1351 -0
  48. package/skills/expo-app.md +35 -2
  49. package/skills/full-stack-app.md +543 -0
  50. package/skills/memory-update.md +207 -0
  51. package/skills/mobile-app.md +813 -0
  52. package/skills/nextjs-app.md +33 -2
  53. package/skills/payments-setup.md +76 -1
  54. package/skills/review.md +331 -0
  55. package/skills/saas-starter.md +639 -0
  56. package/skills/sentry-setup.md +41 -7
  57. package/skills/techdebt.md +289 -0
  58. package/skills/testing-setup.md +1218 -0
  59. package/skills/tutor.md +219 -0
  60. package/templates/.planning/notes/.gitkeep +0 -0
  61. package/templates/CLAUDE.md.template +48 -0
  62. package/templates/error-handling-config.json +79 -2
  63. package/templates/mistakes.md.template +52 -0
  64. package/templates/patterns.md.template +114 -0
@@ -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
@@ -0,0 +1,293 @@
1
+ ---
2
+ name: parallel-worktrees
3
+ description: Guia para trabajo paralelo con git worktrees en ELSABRO
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Trabajo Paralelo con Git Worktrees
8
+
9
+ ## Concepto
10
+
11
+ Cuando ELSABRO ejecuta multiples agentes en paralelo, cada uno puede trabajar
12
+ en su propio worktree de git para evitar conflictos de archivos.
13
+
14
+ Un **worktree** es una copia de trabajo adicional del repositorio que comparte
15
+ el mismo directorio `.git` pero tiene su propio directorio de trabajo y branch.
16
+
17
+ ## Beneficios
18
+
19
+ - **Aislamiento**: Cada agente trabaja en archivos separados
20
+ - **Sin conflictos**: No hay race conditions en archivos
21
+ - **Merge controlado**: Los cambios se integran explicitamente
22
+ - **Rollback facil**: Cada branch puede descartarse independientemente
23
+
24
+ ## Flujo Automatico
25
+
26
+ ```
27
+ 1. /elsabro:execute detecta wave con multiples planes
28
+ |
29
+ 2. Crea worktrees automaticos:
30
+ - elsabro-worktrees/analyst-wt/
31
+ - elsabro-worktrees/executor-wt/
32
+ - elsabro-worktrees/verifier-wt/
33
+ |
34
+ 3. Cada agente trabaja en su worktree aislado
35
+ |
36
+ 4. Al completar, merge automatico a branch principal
37
+ |
38
+ 5. Cleanup de worktrees temporales
39
+ ```
40
+
41
+ ## Estructura de Directorios
42
+
43
+ ```
44
+ proyecto/ # Repo principal
45
+ .git/ # Git compartido
46
+ src/
47
+ ...
48
+
49
+ elsabro-worktrees/ # Directorio de worktrees (hermano del repo)
50
+ analyst-wt/ # Worktree del Analyst
51
+ src/
52
+ ...
53
+ executor-wt/ # Worktree del Executor
54
+ src/
55
+ ...
56
+ verifier-wt/ # Worktree del Verifier
57
+ src/
58
+ ...
59
+ ```
60
+
61
+ ## Comandos del Script
62
+
63
+ ### Crear Worktrees
64
+
65
+ ```bash
66
+ # Crear worktrees para agentes especificos
67
+ ./scripts/setup-parallel-worktrees.sh create analyst executor
68
+
69
+ # Crear worktrees para una wave completa
70
+ ./scripts/setup-parallel-worktrees.sh create analyst executor verifier
71
+ ```
72
+
73
+ ### Merge Trabajo
74
+
75
+ ```bash
76
+ # Merge trabajo de agentes al branch actual
77
+ ./scripts/setup-parallel-worktrees.sh merge analyst executor
78
+
79
+ # El merge usa --no-edit con mensaje automatico
80
+ # Si hay conflictos, se pausa para resolucion manual
81
+ ```
82
+
83
+ ### Completar Wave
84
+
85
+ ```bash
86
+ # Merge Y cleanup de una wave completa
87
+ ./scripts/setup-parallel-worktrees.sh complete analyst executor verifier
88
+
89
+ # Equivalente a:
90
+ # merge analyst executor verifier
91
+ # cleanup analyst executor verifier
92
+ ```
93
+
94
+ ### Limpiar
95
+
96
+ ```bash
97
+ # Limpiar worktrees especificos
98
+ ./scripts/setup-parallel-worktrees.sh cleanup analyst
99
+
100
+ # Limpiar TODOS los worktrees de ELSABRO
101
+ ./scripts/setup-parallel-worktrees.sh cleanup
102
+ ```
103
+
104
+ ### Ver Estado
105
+
106
+ ```bash
107
+ # Mostrar status de worktrees y branches
108
+ ./scripts/setup-parallel-worktrees.sh status
109
+
110
+ # Listar worktrees activos (git nativo)
111
+ ./scripts/setup-parallel-worktrees.sh list
112
+ ```
113
+
114
+ ## Integracion con Orquestador
115
+
116
+ El `elsabro-orchestrator` usa worktrees automaticamente cuando:
117
+
118
+ 1. **Multiples agentes en wave**: Hay mas de 1 agente en una wave
119
+ 2. **Archivos conflictivos**: Los agentes modifican archivos potencialmente compartidos
120
+ 3. **Profile careful**: Siempre aislado cuando profile es "careful"
121
+
122
+ ### Configuracion en SESSION-STATE.json
123
+
124
+ ```json
125
+ {
126
+ "parallel": {
127
+ "useWorktrees": true,
128
+ "activeWorktrees": [
129
+ {
130
+ "agent": "analyst",
131
+ "path": "../elsabro-worktrees/analyst-wt",
132
+ "branch": "elsabro/analyst"
133
+ },
134
+ {
135
+ "agent": "executor",
136
+ "path": "../elsabro-worktrees/executor-wt",
137
+ "branch": "elsabro/executor"
138
+ }
139
+ ]
140
+ }
141
+ }
142
+ ```
143
+
144
+ ## Resolucion de Conflictos
145
+
146
+ Si hay conflictos en el merge:
147
+
148
+ ### Flujo Automatico
149
+
150
+ 1. ELSABRO pausa la ejecucion
151
+ 2. Muestra los conflictos al usuario
152
+ 3. Presenta opciones interactivas
153
+
154
+ ### Opciones del Usuario
155
+
156
+ ```
157
+ Conflictos detectados en merge de 'executor':
158
+
159
+ Archivos en conflicto:
160
+ - src/api/user.ts
161
+ - src/utils/validation.ts
162
+
163
+ Opciones:
164
+ [r] Resolver manualmente (abre editor)
165
+ [k] Keep mine (descartar cambios del agente)
166
+ [t] Take theirs (aceptar cambios del agente)
167
+ [a] Abort (cancelar merge, mantener worktree)
168
+ ```
169
+
170
+ ### Resolucion Manual
171
+
172
+ ```bash
173
+ # Navegar al repo principal
174
+ cd proyecto
175
+
176
+ # Ver conflictos
177
+ git status
178
+
179
+ # Editar archivos conflictivos
180
+ # (buscar marcadores <<<<<<<, =======, >>>>>>>)
181
+
182
+ # Marcar como resueltos
183
+ git add src/api/user.ts
184
+
185
+ # Completar merge
186
+ git commit
187
+ ```
188
+
189
+ ## Limites y Requisitos
190
+
191
+ ### Requisitos
192
+
193
+ - **Git >= 2.15**: Soporte completo de worktrees
194
+ - **Espacio en disco**: Cada worktree es una copia de trabajo completa
195
+ - **Permisos**: Escritura en directorio padre del repo
196
+
197
+ ### Limites
198
+
199
+ | Limite | Valor | Razon |
200
+ |--------|-------|-------|
201
+ | Worktrees simultaneos | 5 | Performance y recursos |
202
+ | Ubicacion | `../elsabro-worktrees/` | Relativo al repo |
203
+ | Branches | `elsabro/*` | Namespace aislado |
204
+
205
+ ### Verificar Requisitos
206
+
207
+ ```bash
208
+ # Version de git
209
+ git --version
210
+ # Debe ser >= 2.15
211
+
212
+ # Espacio disponible
213
+ df -h .
214
+
215
+ # Permisos
216
+ ls -la ..
217
+ ```
218
+
219
+ ## Troubleshooting
220
+
221
+ ### Worktree Huerfano
222
+
223
+ ```bash
224
+ # Si un worktree queda en estado inconsistente
225
+ git worktree prune
226
+
227
+ # Forzar cleanup
228
+ ./scripts/setup-parallel-worktrees.sh cleanup
229
+ ```
230
+
231
+ ### Branch No Existe
232
+
233
+ ```bash
234
+ # Error: Branch elsabro/analyst no existe
235
+ # Solucion: Crear worktree de nuevo
236
+ ./scripts/setup-parallel-worktrees.sh create analyst
237
+ ```
238
+
239
+ ### Merge Fallido
240
+
241
+ ```bash
242
+ # Cancelar merge en progreso
243
+ git merge --abort
244
+
245
+ # Limpiar y reintentar
246
+ ./scripts/setup-parallel-worktrees.sh cleanup analyst
247
+ ./scripts/setup-parallel-worktrees.sh create analyst
248
+ # Re-ejecutar trabajo del agente
249
+ ```
250
+
251
+ ### Directorio Base No Existe
252
+
253
+ ```bash
254
+ # El script crea automaticamente el directorio
255
+ # Si hay problemas de permisos:
256
+ mkdir -p ../elsabro-worktrees
257
+ chmod 755 ../elsabro-worktrees
258
+ ```
259
+
260
+ ## Ejemplo Completo
261
+
262
+ ```bash
263
+ # 1. Iniciar wave paralela
264
+ ./scripts/setup-parallel-worktrees.sh create analyst executor verifier
265
+
266
+ # 2. Ver estado
267
+ ./scripts/setup-parallel-worktrees.sh status
268
+
269
+ # Worktrees activos:
270
+ # /path/to/project abc1234 [main]
271
+ # /path/to/elsabro-worktrees/analyst-wt abc1234 [elsabro/analyst]
272
+ # /path/to/elsabro-worktrees/executor-wt abc1234 [elsabro/executor]
273
+ # /path/to/elsabro-worktrees/verifier-wt abc1234 [elsabro/verifier]
274
+
275
+ # 3. Agentes trabajan en sus worktrees...
276
+
277
+ # 4. Completar wave (merge + cleanup)
278
+ ./scripts/setup-parallel-worktrees.sh complete analyst executor verifier
279
+
280
+ # 5. Verificar
281
+ git log --oneline -5
282
+ # abc1234 Merge: ELSABRO verifier parallel work
283
+ # def5678 Merge: ELSABRO executor parallel work
284
+ # ghi9012 Merge: ELSABRO analyst parallel work
285
+ ```
286
+
287
+ ## Mejores Practicas
288
+
289
+ 1. **Siempre usar `complete`**: Combina merge y cleanup en un paso
290
+ 2. **Verificar antes de merge**: Revisar cambios con `git diff elsabro/agent`
291
+ 3. **Cleanup regular**: No dejar worktrees huerfanos
292
+ 4. **Commits atomicos**: Cada agente debe hacer commits completos
293
+ 5. **Mensajes descriptivos**: Los commits en worktrees deben ser claros