elsabro 4.0.0 → 4.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.
- package/README.md +61 -7
- package/agents/elsabro-orchestrator.md +70 -20
- package/agents/elsabro-ux-designer.md +70 -0
- package/commands/elsabro/add-phase.md +20 -0
- package/commands/elsabro/add-todo.md +30 -0
- package/commands/elsabro/audit-milestone.md +20 -0
- package/commands/elsabro/check-todos.md +29 -0
- package/commands/elsabro/complete-milestone.md +20 -0
- package/commands/elsabro/debug.md +76 -1
- package/commands/elsabro/design-ui.md +407 -0
- package/commands/elsabro/discuss-phase.md +20 -0
- package/commands/elsabro/execute.md +166 -30
- package/commands/elsabro/exit.md +97 -0
- package/commands/elsabro/help.md +7 -1
- package/commands/elsabro/insert-phase.md +20 -0
- package/commands/elsabro/list-phase-assumptions.md +20 -0
- package/commands/elsabro/map-codebase.md +30 -0
- package/commands/elsabro/new-milestone.md +23 -0
- package/commands/elsabro/new.md +64 -0
- package/commands/elsabro/pause-work.md +28 -5
- package/commands/elsabro/plan-milestone-gaps.md +20 -0
- package/commands/elsabro/plan.md +20 -0
- package/commands/elsabro/progress.md +8 -0
- package/commands/elsabro/quick.md +58 -3
- package/commands/elsabro/remove-phase.md +20 -0
- package/commands/elsabro/research-phase.md +20 -0
- package/commands/elsabro/resume-work.md +21 -0
- package/commands/elsabro/set-profile.md +38 -0
- package/commands/elsabro/settings.md +38 -0
- package/commands/elsabro/start.md +31 -1
- package/commands/elsabro/update.md +28 -0
- package/commands/elsabro/verify-work.md +94 -7
- package/commands/elsabro/verify.md +30 -0
- package/hooks/elsabro-mode.sh +102 -0
- package/hooks/hooks-config-updated.json +43 -7
- package/hooks/skill-discovery.sh +38 -8
- package/package.json +5 -5
- package/references/SYSTEM_INDEX.md +9 -0
- package/references/agent-teams-integration.md +99 -36
- package/references/enforcement-rules.md +177 -62
- package/references/flow-orchestration.md +127 -32
- package/references/next-step-engine.md +134 -0
- package/skills/stitch-ui-design.md +242 -0
- package/templates/session-state.json +3 -1
package/README.md
CHANGED
|
@@ -1,10 +1,63 @@
|
|
|
1
|
-
# ELSABRO
|
|
2
|
-
|
|
3
|
-
**Tu asistente AI para crear apps
|
|
4
|
-
|
|
5
|
-
ELSABRO es un sistema de desarrollo AI-powered para Claude Code que te
|
|
6
|
-
|
|
7
|
-
##
|
|
1
|
+
# ELSABRO v4.2.0
|
|
2
|
+
|
|
3
|
+
**Tu asistente AI para crear apps increibles** - Orquestacion de agentes de nivel enterprise.
|
|
4
|
+
|
|
5
|
+
ELSABRO es un sistema de desarrollo AI-powered para Claude Code que te guia paso a paso en la creacion de aplicaciones, desde la idea inicial hasta el producto funcionando.
|
|
6
|
+
|
|
7
|
+
## Novedades v4.2.0 (Next Step Suggestions + Stitch UI Design)
|
|
8
|
+
|
|
9
|
+
### Next Step Suggestions
|
|
10
|
+
- **Guided workflow**: Every command now suggests what to do next with "Siguiente Paso" blocks
|
|
11
|
+
- **`suggested_next` in state.json**: Programmatic field for smart routing in persistent mode
|
|
12
|
+
- **Context-aware**: Suggestions adapt based on pending tasks, TODOs, verification results
|
|
13
|
+
- **28 commands enhanced**: All state-writing commands guide you to the next logical step
|
|
14
|
+
- **New reference**: `references/next-step-engine.md` — Complete decision matrix and override rules
|
|
15
|
+
|
|
16
|
+
### Stitch AI UI Design
|
|
17
|
+
- **`/elsabro:design-ui`**: New command to generate professional UI screens from text descriptions
|
|
18
|
+
- **Stitch MCP integration**: Create projects, generate screens, review and refine designs
|
|
19
|
+
- **Sally enhanced**: UX Designer agent now uses both Stitch (full screens) and 21st.dev (components)
|
|
20
|
+
- **Auto-documentation**: Designs saved to `.planning/ui-designs/` with screen specs
|
|
21
|
+
- **Persistent mode routing**: Say "design", "mockup", "wireframe" and ELSABRO routes to design-ui
|
|
22
|
+
|
|
23
|
+
## Novedades v4.1.0 (Persistent Mode + Code Review Enforcement)
|
|
24
|
+
|
|
25
|
+
### Persistent Mode
|
|
26
|
+
- **ELSABRO stays ON**: Once activated, all subsequent messages are automatically routed through ELSABRO workflows
|
|
27
|
+
- **Intent classification**: Your messages are classified and routed to the right command (debug, plan, quick, etc.)
|
|
28
|
+
- **`/elsabro:exit`**: Deactivate persistent mode when you want to return to normal Claude Code
|
|
29
|
+
- **Zero overhead when inactive**: <5ms fast path when persistent mode is off
|
|
30
|
+
- **Slash command bypass**: `/commit`, `/help`, etc. still work normally
|
|
31
|
+
|
|
32
|
+
### Mandatory Code Review
|
|
33
|
+
- **Rule 7 enforcement**: Code review is now mandatory after every code modification
|
|
34
|
+
- **Integrated into commands**: `quick` and `debug` commands include automatic code review steps
|
|
35
|
+
- **No escape hatches**: Cannot complete a code-writing command without running `pr-review-toolkit:code-reviewer`
|
|
36
|
+
|
|
37
|
+
## Novedades v4.0.0 (Agent Teams + Blocking Review)
|
|
38
|
+
|
|
39
|
+
### Agent Teams
|
|
40
|
+
- **Coordinacion peer-to-peer** entre agentes usando Claude Code Agent Teams nativo
|
|
41
|
+
- **Auto-routing** entre subagents y Agent Teams segun complejidad y perfil
|
|
42
|
+
- **7 agentes migrados** a Team mode (orchestrator, executor, planner, analyst, qa, verifier, debugger)
|
|
43
|
+
- **5 agentes mantienen** modo subagent (quick-dev, yolo-dev, scrum-master, tech-writer, ux-designer)
|
|
44
|
+
- **Nuevo nodo `team`** en el flow engine para spawn y coordinacion de equipos
|
|
45
|
+
- **Nuevo perfil `teams`** en hooks y flow engine
|
|
46
|
+
|
|
47
|
+
### Blocking Code Review (Sin Escape)
|
|
48
|
+
- **CERO opciones de skip** - no "aceptar con errores", no "continuar sin fix"
|
|
49
|
+
- **5 iteraciones max** de fix antes de bloqueo (antes eran 2)
|
|
50
|
+
- **3 reviewers paralelos** (code quality, silent failures, staff review)
|
|
51
|
+
- **Quality gate completo** - tests + TypeScript + lint (antes faltaba lint)
|
|
52
|
+
- **Exit codes reales** - `captureExitCode: true` en vez de `|| true`
|
|
53
|
+
- **Nuevo nodo `interrupt_blocked`** para bloqueo duro en review failures
|
|
54
|
+
|
|
55
|
+
### Nuevos Nodos de Flujo
|
|
56
|
+
- `interrupt_blocked` - Bloqueo sin escape en review failures
|
|
57
|
+
- `wait_manual_review_fix` - Espera fix manual del usuario
|
|
58
|
+
- `interrupt_teams_failed` - Fallback de Agent Teams a subagents
|
|
59
|
+
|
|
60
|
+
## Novedades v3.8 (Skill Marketplace Integration)
|
|
8
61
|
|
|
9
62
|
### Integración Automática de Skills (skills.sh)
|
|
10
63
|
- **SkillDiscoveryEngine** - Descubrimiento automático de skills necesarias por keywords y categorías
|
|
@@ -278,6 +331,7 @@ Después de instalar, abre Claude Code y escribe:
|
|
|
278
331
|
| `/elsabro:resume-work` | Retomar trabajo guardado |
|
|
279
332
|
| `/elsabro:pause-work` | Pausar y guardar contexto |
|
|
280
333
|
| `/elsabro:progress` | Ver progreso actual |
|
|
334
|
+
| `/elsabro:exit` | Desactivar persistent mode |
|
|
281
335
|
|
|
282
336
|
### Todo Management
|
|
283
337
|
| Comando | Descripción |
|
|
@@ -7,7 +7,8 @@ tools:
|
|
|
7
7
|
- TaskUpdate
|
|
8
8
|
- TaskList
|
|
9
9
|
- TaskGet
|
|
10
|
-
-
|
|
10
|
+
- TeamCreate
|
|
11
|
+
- TeamDelete
|
|
11
12
|
- SendMessage
|
|
12
13
|
- Read
|
|
13
14
|
- Glob
|
|
@@ -345,31 +346,32 @@ Archivos modificados:
|
|
|
345
346
|
</integration_with_elsabro>
|
|
346
347
|
|
|
347
348
|
<agent_teams>
|
|
348
|
-
## Agent Teams Integration (v4.
|
|
349
|
+
## Agent Teams Integration (v4.2.0 — Mandatory)
|
|
349
350
|
|
|
350
351
|
### Cuándo Usar Agent Teams
|
|
351
352
|
|
|
352
|
-
Como orquestador,
|
|
353
|
+
Como orquestador, Agent Teams es **OBLIGATORIO** para todo trabajo paralelo con 2+ agentes (Rule 8):
|
|
353
354
|
|
|
354
355
|
```
|
|
355
356
|
┌─────────────────────────────────────────────────────────────┐
|
|
356
|
-
│
|
|
357
|
+
│ AGENT TEAMS — OBLIGATORIO (v4.2.0) │
|
|
357
358
|
├─────────────────────────────────────────────────────────────┤
|
|
358
359
|
│ │
|
|
359
|
-
│
|
|
360
|
-
│ →
|
|
360
|
+
│ agent_count < 2: │
|
|
361
|
+
│ → SUBAGENT (agente único, no necesita coordinación) │
|
|
361
362
|
│ │
|
|
362
|
-
│
|
|
363
|
-
│ →
|
|
363
|
+
│ phase == "exploration" (HAIKU read-only): │
|
|
364
|
+
│ → SUBAGENTS (excepción: read-only, no modifica código) │
|
|
364
365
|
│ │
|
|
365
|
-
│
|
|
366
|
-
│ →
|
|
366
|
+
│ agent_count >= 2 + ANY otra fase: │
|
|
367
|
+
│ → AGENT TEAMS (OBLIGATORIO) │
|
|
368
|
+
│ ├── implementación → TeamCreate + executor/qa teammates │
|
|
369
|
+
│ ├── review/verificación → TeamCreate + reviewer teammates│
|
|
370
|
+
│ ├── planning (2+ opus) → TeamCreate + planner teammates │
|
|
371
|
+
│ └── debugging (2+ agents) → TeamCreate + debugger mates │
|
|
367
372
|
│ │
|
|
368
|
-
│
|
|
369
|
-
│
|
|
370
|
-
│ │
|
|
371
|
-
│ Default: │
|
|
372
|
-
│ → SUBAGENTS (menor overhead) │
|
|
373
|
+
│ VIOLACIÓN CRÍTICA: 2+ agentes sin TeamCreate = ABORTAR │
|
|
374
|
+
│ Ver /references/enforcement-rules.md Regla 8 │
|
|
373
375
|
│ │
|
|
374
376
|
└─────────────────────────────────────────────────────────────┘
|
|
375
377
|
```
|
|
@@ -377,9 +379,8 @@ Como orquestador, decido automáticamente cuándo usar Agent Teams vs Task subag
|
|
|
377
379
|
### Spawn Team Pattern
|
|
378
380
|
|
|
379
381
|
```javascript
|
|
380
|
-
// 1. Crear equipo
|
|
381
|
-
|
|
382
|
-
operation: "spawnTeam",
|
|
382
|
+
// 1. Crear equipo (API oficial Claude Code)
|
|
383
|
+
TeamCreate({
|
|
383
384
|
team_name: "elsabro-wave-N",
|
|
384
385
|
description: "Wave N implementation"
|
|
385
386
|
})
|
|
@@ -402,14 +403,63 @@ Task({
|
|
|
402
403
|
prompt: "Write tests for feature A..."
|
|
403
404
|
})
|
|
404
405
|
|
|
405
|
-
// 4. Teammates se comunican entre
|
|
406
|
+
// 4. Teammates se comunican entre si con SendMessage
|
|
406
407
|
// executor → qa: "Feature A implementada, estos son los archivos..."
|
|
407
408
|
// qa → executor: "Test falla en edge case X, necesito fix..."
|
|
408
409
|
|
|
409
410
|
// 5. Shutdown y cleanup
|
|
410
411
|
SendMessage({ type: "shutdown_request", recipient: "executor" })
|
|
411
412
|
SendMessage({ type: "shutdown_request", recipient: "qa" })
|
|
412
|
-
|
|
413
|
+
TeamDelete()
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
### Limitations (de la documentacion oficial)
|
|
417
|
+
|
|
418
|
+
- **No session resumption**: `/resume` no restaura teammates in-process
|
|
419
|
+
- **No nested teams**: Teammates NO pueden crear sus propios teams
|
|
420
|
+
- **Lead es fijo**: La sesion que crea el team es el lead para siempre
|
|
421
|
+
- **Un team por sesion**: Limpiar el actual antes de crear uno nuevo
|
|
422
|
+
- **Task status can lag**: Teammates a veces no marcan tasks como completed
|
|
423
|
+
|
|
424
|
+
### Display Modes
|
|
425
|
+
|
|
426
|
+
```javascript
|
|
427
|
+
// In-process (default): todos en el mismo terminal
|
|
428
|
+
// Shift+Up/Down para seleccionar teammate, Shift+Tab para delegate mode
|
|
429
|
+
|
|
430
|
+
// Split panes: cada teammate en su propio panel (requiere tmux o iTerm2)
|
|
431
|
+
// En settings.json:
|
|
432
|
+
// { "teammateMode": "in-process" | "tmux" | "auto" }
|
|
433
|
+
|
|
434
|
+
// CLI flag para forzar modo:
|
|
435
|
+
// claude --teammate-mode in-process
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Plan Approval para Teammates
|
|
439
|
+
|
|
440
|
+
```javascript
|
|
441
|
+
// Para tareas complejas, requerir que teammates planifiquen antes de implementar
|
|
442
|
+
// El teammate trabaja en plan mode hasta que el lead apruebe
|
|
443
|
+
|
|
444
|
+
// Cuando teammate llama ExitPlanMode, envia plan_approval_request al lead
|
|
445
|
+
// Lead responde con:
|
|
446
|
+
SendMessage({
|
|
447
|
+
type: "plan_approval_response",
|
|
448
|
+
request_id: "abc-123",
|
|
449
|
+
recipient: "executor",
|
|
450
|
+
approve: true // o false con content: "feedback..."
|
|
451
|
+
})
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
### Delegate Mode
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
// Shift+Tab para activar delegate mode
|
|
458
|
+
// En delegate mode, el lead SOLO puede coordinar:
|
|
459
|
+
// - Spawn/shutdown teammates
|
|
460
|
+
// - Enviar mensajes
|
|
461
|
+
// - Gestionar tasks
|
|
462
|
+
// NO puede editar archivos ni ejecutar codigo directamente
|
|
413
463
|
```
|
|
414
464
|
|
|
415
465
|
### Blocking Review con Agent Teams
|
|
@@ -8,6 +8,7 @@ tools:
|
|
|
8
8
|
- WebSearch
|
|
9
9
|
- mcp__plugin_context7_context7__*
|
|
10
10
|
- mcp__magic__*
|
|
11
|
+
- mcp__stitch__*
|
|
11
12
|
color: pink
|
|
12
13
|
icon: "🎨"
|
|
13
14
|
---
|
|
@@ -97,6 +98,42 @@ Crear wireframes en ASCII/descripción.
|
|
|
97
98
|
```
|
|
98
99
|
</workflows>
|
|
99
100
|
|
|
101
|
+
<stitch_workflows>
|
|
102
|
+
## Stitch AI Design Workflows
|
|
103
|
+
|
|
104
|
+
### [ST] Stitch Design
|
|
105
|
+
Generar screens visuales profesionales usando Stitch AI.
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
1. Entender requerimientos de UI
|
|
109
|
+
2. Crear/reutilizar proyecto Stitch
|
|
110
|
+
3. Generar screens desde texto
|
|
111
|
+
4. Revisar con el usuario
|
|
112
|
+
5. Refinar según feedback
|
|
113
|
+
6. Documentar en .planning/ui-designs/
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Herramientas Stitch:**
|
|
117
|
+
- `mcp__stitch__list_projects` — Ver proyectos existentes
|
|
118
|
+
- `mcp__stitch__create_project` — Crear proyecto nuevo
|
|
119
|
+
- `mcp__stitch__generate_screen_from_text` — Generar screen desde texto
|
|
120
|
+
- `mcp__stitch__list_screens` — Listar screens de un proyecto
|
|
121
|
+
- `mcp__stitch__get_screen` — Ver detalle de un screen
|
|
122
|
+
- `mcp__stitch__get_project` — Ver detalle de un proyecto
|
|
123
|
+
|
|
124
|
+
**Cuándo usar Stitch vs 21st.dev:**
|
|
125
|
+
| Necesidad | Herramienta |
|
|
126
|
+
|-----------|-------------|
|
|
127
|
+
| Diseño visual completo de pantalla | **Stitch** |
|
|
128
|
+
| Componente React individual | **21st.dev** |
|
|
129
|
+
| Mockup rápido de una idea | **Stitch** |
|
|
130
|
+
| Implementación de componente | **21st.dev** |
|
|
131
|
+
| Flujo multi-pantalla | **Stitch** |
|
|
132
|
+
| Botón/Card/Form específico | **21st.dev** |
|
|
133
|
+
|
|
134
|
+
Output: `.planning/ui-designs/`
|
|
135
|
+
</stitch_workflows>
|
|
136
|
+
|
|
100
137
|
<ux_patterns>
|
|
101
138
|
## Patrones UX Comunes
|
|
102
139
|
|
|
@@ -276,3 +313,36 @@ User: "Necesito un card para mostrar productos"
|
|
|
276
313
|
Sally: [usa 21st magic para encontrar/generar el componente]
|
|
277
314
|
```
|
|
278
315
|
</integration_with_21st>
|
|
316
|
+
|
|
317
|
+
<integration_with_stitch>
|
|
318
|
+
## Integración con Stitch AI
|
|
319
|
+
|
|
320
|
+
Cuando necesites diseñar pantallas completas, puedo usar Stitch AI para:
|
|
321
|
+
|
|
322
|
+
1. Generar screens profesionales desde descripción de texto
|
|
323
|
+
2. Crear flujos multi-pantalla completos
|
|
324
|
+
3. Iterar diseños con feedback del usuario
|
|
325
|
+
4. Documentar diseños para los developers
|
|
326
|
+
|
|
327
|
+
### Flujo combinado Stitch + 21st.dev
|
|
328
|
+
```
|
|
329
|
+
1. Stitch: Generar screen completo (layout, estructura)
|
|
330
|
+
2. 21st.dev: Generar componentes específicos (buttons, cards)
|
|
331
|
+
3. Combinar: Screen de Stitch como guía + componentes de 21st.dev como código
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Ejemplo
|
|
335
|
+
```
|
|
336
|
+
User: "Necesito un dashboard con gráficos y filtros"
|
|
337
|
+
Sally:
|
|
338
|
+
1. [Stitch] Genera screen completo del dashboard
|
|
339
|
+
2. [21st.dev] Genera componentes: FilterBar, StatCard, ChartContainer
|
|
340
|
+
3. Documenta todo en .planning/ui-designs/
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Comando Asociado
|
|
344
|
+
El usuario puede invocar directamente:
|
|
345
|
+
```
|
|
346
|
+
/elsabro:design-ui "descripción de la pantalla"
|
|
347
|
+
```
|
|
348
|
+
</integration_with_stitch>
|
|
@@ -16,10 +16,12 @@ sync:
|
|
|
16
16
|
### Al Iniciar
|
|
17
17
|
- Leer `.elsabro/state.json`
|
|
18
18
|
- Verificar contexto actual del milestone/phase
|
|
19
|
+
- Activar persistent mode: `state.elsabro_mode = true`
|
|
19
20
|
|
|
20
21
|
### Al Completar
|
|
21
22
|
- Registrar cambio en `history`
|
|
22
23
|
- Actualizar `context` si corresponde
|
|
24
|
+
- Establecer `state.suggested_next = "plan"`
|
|
23
25
|
</state_sync>
|
|
24
26
|
|
|
25
27
|
<command-name>add-phase</command-name>
|
|
@@ -129,3 +131,21 @@ Actualiza `PHASES.md` y `MILESTONE.md`:
|
|
|
129
131
|
|
|
130
132
|
View phases: /elsabro:progress --phases
|
|
131
133
|
```
|
|
134
|
+
|
|
135
|
+
<siguiente_paso>
|
|
136
|
+
## Siguiente Paso
|
|
137
|
+
|
|
138
|
+
Al agregar la fase, establecer en state.json:
|
|
139
|
+
```javascript
|
|
140
|
+
state.suggested_next = "plan";
|
|
141
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Mostrar al usuario:
|
|
145
|
+
```
|
|
146
|
+
## Siguiente Paso
|
|
147
|
+
|
|
148
|
+
→ /elsabro:plan [N] — planificar la nueva fase agregada
|
|
149
|
+
→ /elsabro:progress — ver el estado actualizado del milestone
|
|
150
|
+
```
|
|
151
|
+
</siguiente_paso>
|
|
@@ -12,6 +12,18 @@ allowed-tools:
|
|
|
12
12
|
|
|
13
13
|
<command-name>add-todo</command-name>
|
|
14
14
|
|
|
15
|
+
<state_sync>
|
|
16
|
+
## SINCRONIZACIÓN DE ESTADO
|
|
17
|
+
|
|
18
|
+
### Al Iniciar
|
|
19
|
+
- Leer `.elsabro/state.json` (si existe)
|
|
20
|
+
- Activar persistent mode: `state.elsabro_mode = true`
|
|
21
|
+
|
|
22
|
+
### Al Completar
|
|
23
|
+
- Registrar en `history`
|
|
24
|
+
- Establecer `state.suggested_next = "check-todos"`
|
|
25
|
+
</state_sync>
|
|
26
|
+
|
|
15
27
|
## Propósito
|
|
16
28
|
|
|
17
29
|
Agregar tareas rápidas al todo list del proyecto usando **Claude Code Tasks API** como backend. Para items que no merecen ser una fase o story completa.
|
|
@@ -214,3 +226,21 @@ TaskCreate({ subject: "Update user docs", metadata: {...} })
|
|
|
214
226
|
- Can be promoted to phase task with `/elsabro:add-phase`
|
|
215
227
|
- Persists across sessions via Tasks API
|
|
216
228
|
- Supports dependencies with `blocks/blockedBy`
|
|
229
|
+
|
|
230
|
+
<siguiente_paso>
|
|
231
|
+
## Siguiente Paso
|
|
232
|
+
|
|
233
|
+
Al completar, establecer en state.json:
|
|
234
|
+
```javascript
|
|
235
|
+
state.suggested_next = "check-todos";
|
|
236
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Mostrar al usuario:
|
|
240
|
+
```
|
|
241
|
+
## Siguiente Paso
|
|
242
|
+
|
|
243
|
+
→ /elsabro:check-todos — ver la lista completa de TODOs
|
|
244
|
+
→ /elsabro:quick — resolver este TODO ahora mismo
|
|
245
|
+
```
|
|
246
|
+
</siguiente_paso>
|
|
@@ -17,11 +17,13 @@ sync:
|
|
|
17
17
|
- Leer `.elsabro/state.json`
|
|
18
18
|
- Verificar si hay flujo en progreso
|
|
19
19
|
- Actualizar `current_flow.command` con este comando
|
|
20
|
+
- Activar persistent mode: `state.elsabro_mode = true`
|
|
20
21
|
|
|
21
22
|
### Al Completar
|
|
22
23
|
- Registrar en `history`
|
|
23
24
|
- Actualizar `context` con informacion del milestone
|
|
24
25
|
- Limpiar `current_flow`
|
|
26
|
+
- Establecer `state.suggested_next = "plan-milestone-gaps"`
|
|
25
27
|
</state_sync>
|
|
26
28
|
|
|
27
29
|
<command-name>audit-milestone</command-name>
|
|
@@ -164,3 +166,21 @@ Genera `.planning/milestones/M001-xxx/AUDIT-2024-01-20.md`:
|
|
|
164
166
|
- Puede ser parte de weekly review
|
|
165
167
|
- Alimenta `/elsabro:progress`
|
|
166
168
|
- Dispara alertas si status es crítico
|
|
169
|
+
|
|
170
|
+
<siguiente_paso>
|
|
171
|
+
## Siguiente Paso
|
|
172
|
+
|
|
173
|
+
Al completar la auditoría, establecer en state.json:
|
|
174
|
+
```javascript
|
|
175
|
+
state.suggested_next = "plan-milestone-gaps";
|
|
176
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Mostrar al usuario:
|
|
180
|
+
```
|
|
181
|
+
## Siguiente Paso
|
|
182
|
+
|
|
183
|
+
→ /elsabro:plan-milestone-gaps — planificar cómo cerrar los gaps encontrados
|
|
184
|
+
→ /elsabro:discuss-phase — discutir los hallazgos de la auditoría
|
|
185
|
+
```
|
|
186
|
+
</siguiente_paso>
|
|
@@ -13,6 +13,17 @@ allowed-tools:
|
|
|
13
13
|
|
|
14
14
|
<command-name>check-todos</command-name>
|
|
15
15
|
|
|
16
|
+
<state_sync>
|
|
17
|
+
## SINCRONIZACIÓN DE ESTADO
|
|
18
|
+
|
|
19
|
+
### Al Iniciar
|
|
20
|
+
- Leer `.elsabro/state.json` (si existe)
|
|
21
|
+
- Activar persistent mode: `state.elsabro_mode = true`
|
|
22
|
+
|
|
23
|
+
### Al Completar
|
|
24
|
+
- Establecer `state.suggested_next = "quick"`
|
|
25
|
+
</state_sync>
|
|
26
|
+
|
|
16
27
|
## Propósito
|
|
17
28
|
|
|
18
29
|
Revisar, filtrar y gestionar los TODOs del proyecto usando **Claude Code Tasks API**. Vista completa de tareas pendientes con capacidad de gestión directa.
|
|
@@ -369,3 +380,21 @@ Output:
|
|
|
369
380
|
- Soporta dependencias (`blocks/blockedBy`)
|
|
370
381
|
- Visible en `/elsabro:progress`
|
|
371
382
|
- Promovible a fase con `/elsabro:add-phase`
|
|
383
|
+
|
|
384
|
+
<siguiente_paso>
|
|
385
|
+
## Siguiente Paso
|
|
386
|
+
|
|
387
|
+
Al completar, establecer en state.json:
|
|
388
|
+
```javascript
|
|
389
|
+
state.suggested_next = "quick";
|
|
390
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
Mostrar al usuario:
|
|
394
|
+
```
|
|
395
|
+
## Siguiente Paso
|
|
396
|
+
|
|
397
|
+
→ /elsabro:quick — resolver un TODO rápidamente
|
|
398
|
+
→ /elsabro:execute — trabajar en tareas más grandes
|
|
399
|
+
```
|
|
400
|
+
</siguiente_paso>
|
|
@@ -17,11 +17,13 @@ sync:
|
|
|
17
17
|
- Leer `.elsabro/state.json`
|
|
18
18
|
- Verificar si hay flujo en progreso
|
|
19
19
|
- Actualizar `current_flow.command` con este comando
|
|
20
|
+
- Activar persistent mode: `state.elsabro_mode = true`
|
|
20
21
|
|
|
21
22
|
### Al Completar
|
|
22
23
|
- Registrar en `history`
|
|
23
24
|
- Actualizar `context` con informacion del milestone
|
|
24
25
|
- Limpiar `current_flow`
|
|
26
|
+
- Establecer `state.suggested_next = "new-milestone"`
|
|
25
27
|
</state_sync>
|
|
26
28
|
|
|
27
29
|
<command-name>complete-milestone</command-name>
|
|
@@ -155,3 +157,21 @@ Options:
|
|
|
155
157
|
- Dispara notificación de milestone completado
|
|
156
158
|
- Actualiza `/elsabro:progress` automáticamente
|
|
157
159
|
- Linked con próximo milestone si existe
|
|
160
|
+
|
|
161
|
+
<siguiente_paso>
|
|
162
|
+
## Siguiente Paso
|
|
163
|
+
|
|
164
|
+
Al completar el milestone, establecer en state.json:
|
|
165
|
+
```javascript
|
|
166
|
+
state.suggested_next = "new-milestone";
|
|
167
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Mostrar al usuario:
|
|
171
|
+
```
|
|
172
|
+
## Siguiente Paso
|
|
173
|
+
|
|
174
|
+
→ /elsabro:new-milestone — crear el siguiente milestone
|
|
175
|
+
→ /elsabro:progress — ver el estado general del proyecto
|
|
176
|
+
```
|
|
177
|
+
</siguiente_paso>
|
|
@@ -29,11 +29,13 @@ sync:
|
|
|
29
29
|
- Leer `.elsabro/state.json`
|
|
30
30
|
- Verificar si hay flujo en progreso
|
|
31
31
|
- Actualizar `current_flow.command` con este comando
|
|
32
|
+
- Activar persistent mode: `state.elsabro_mode = true`
|
|
32
33
|
|
|
33
34
|
### Al Completar
|
|
34
35
|
- Registrar en `history`
|
|
35
36
|
- Actualizar `context` con informacion relevante
|
|
36
37
|
- Limpiar `current_flow`
|
|
38
|
+
- Establecer `state.suggested_next = "verify-work"`
|
|
37
39
|
</state_sync>
|
|
38
40
|
|
|
39
41
|
<objective>
|
|
@@ -97,6 +99,14 @@ Task(elsabro-debugger):
|
|
|
97
99
|
Modo: find_and_fix
|
|
98
100
|
```
|
|
99
101
|
|
|
102
|
+
```javascript
|
|
103
|
+
// MARCAR: código fue modificado (para code_review_gate)
|
|
104
|
+
if (mode === "find_and_fix") {
|
|
105
|
+
state.current_flow.code_written = true;
|
|
106
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
100
110
|
## Paso 4: Seguimiento
|
|
101
111
|
|
|
102
112
|
El debugger actualizará el archivo de sesión con:
|
|
@@ -105,7 +115,26 @@ El debugger actualizará el archivo de sesión con:
|
|
|
105
115
|
- Fix implementado
|
|
106
116
|
- Verificación realizada
|
|
107
117
|
|
|
108
|
-
## Paso 5:
|
|
118
|
+
## Paso 5: Code Review (OBLIGATORIO)
|
|
119
|
+
|
|
120
|
+
**REGLA:** Después de implementar cualquier fix, SIEMPRE ejecutar code review antes de reportar al usuario.
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Task(pr-review-toolkit:code-reviewer):
|
|
124
|
+
Revisa los cambios del fix aplicado.
|
|
125
|
+
Busca bugs, code smells, seguridad.
|
|
126
|
+
Archivos modificados: [lista de archivos cambiados]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Si el review encuentra issues, corregir ANTES de reportar al usuario.
|
|
130
|
+
|
|
131
|
+
```javascript
|
|
132
|
+
// MARCAR: code review pasó (para code_review_gate en siguiente_paso)
|
|
133
|
+
state.current_flow.code_review_passed = true;
|
|
134
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Paso 6: Verificar con Usuario
|
|
109
138
|
|
|
110
139
|
Una vez el debugger reporta fix:
|
|
111
140
|
|
|
@@ -122,6 +151,29 @@ Para verificar:
|
|
|
122
151
|
```
|
|
123
152
|
</process>
|
|
124
153
|
|
|
154
|
+
<code_review_gate>
|
|
155
|
+
## Code Review Gate (OBLIGATORIO - NO NEGOCIABLE)
|
|
156
|
+
|
|
157
|
+
**ANTES de reportar resultado al usuario o ofrecer commit, VERIFICAR:**
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
¿Se implementó un fix (modo find_and_fix)?
|
|
161
|
+
│
|
|
162
|
+
├─ SÍ → ¿Se ejecutó code review (Paso 5)?
|
|
163
|
+
│ │
|
|
164
|
+
│ ├─ NO → EJECUTAR AHORA:
|
|
165
|
+
│ │ Task(pr-review-toolkit:code-reviewer)
|
|
166
|
+
│ │ Si issues > 0: fix y re-review
|
|
167
|
+
│ │ Solo cuando issues == 0: continuar
|
|
168
|
+
│ │
|
|
169
|
+
│ └─ SÍ, issues == 0 → Continuar
|
|
170
|
+
│
|
|
171
|
+
└─ NO (solo find_root_cause_only) → Continuar (no aplica)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**VIOLACIÓN CRÍTICA**: Reportar fix sin code review = ABORTAR OPERACIÓN
|
|
175
|
+
</code_review_gate>
|
|
176
|
+
|
|
125
177
|
<modes>
|
|
126
178
|
## Modos de Debug
|
|
127
179
|
|
|
@@ -170,3 +222,26 @@ Opciones:
|
|
|
170
222
|
¿Qué prefieres?
|
|
171
223
|
```
|
|
172
224
|
</escalation>
|
|
225
|
+
|
|
226
|
+
<siguiente_paso>
|
|
227
|
+
## Siguiente Paso
|
|
228
|
+
|
|
229
|
+
Al completar el debug, establecer en state.json:
|
|
230
|
+
```javascript
|
|
231
|
+
// GATE CHECK: No escribir suggested_next sin code review (aplica en modo find_and_fix)
|
|
232
|
+
if (state.current_flow?.code_written && !state.current_flow?.code_review_passed) {
|
|
233
|
+
// VIOLACIÓN CRÍTICA — ABORTAR. Volver a code_review_gate.
|
|
234
|
+
throw new Error("CODE_REVIEW_GATE: Cannot proceed without code review");
|
|
235
|
+
}
|
|
236
|
+
state.suggested_next = "verify-work";
|
|
237
|
+
Write(".elsabro/state.json", JSON.stringify(state, null, 2));
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Mostrar al usuario:
|
|
241
|
+
```
|
|
242
|
+
## Siguiente Paso
|
|
243
|
+
|
|
244
|
+
→ /elsabro:verify-work — verificar que el fix funciona correctamente
|
|
245
|
+
→ /elsabro:progress — ver el estado general del proyecto
|
|
246
|
+
```
|
|
247
|
+
</siguiente_paso>
|