elsabro 2.0.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 +268 -0
- package/agents/elsabro-analyst.md +176 -0
- package/agents/elsabro-debugger.md +293 -0
- package/agents/elsabro-executor.md +477 -0
- package/agents/elsabro-orchestrator.md +426 -0
- package/agents/elsabro-planner.md +278 -0
- package/agents/elsabro-qa.md +273 -0
- package/agents/elsabro-quick-dev.md +309 -0
- package/agents/elsabro-scrum-master.md +217 -0
- package/agents/elsabro-tech-writer.md +347 -0
- package/agents/elsabro-ux-designer.md +278 -0
- package/agents/elsabro-verifier.md +295 -0
- package/agents/elsabro-yolo-dev.md +322 -0
- package/bin/install.js +497 -0
- package/commands/elsabro/add-phase.md +114 -0
- package/commands/elsabro/add-todo.md +158 -0
- package/commands/elsabro/audit-milestone.md +147 -0
- package/commands/elsabro/check-todos.md +192 -0
- package/commands/elsabro/complete-milestone.md +138 -0
- package/commands/elsabro/debug.md +153 -0
- package/commands/elsabro/discuss-phase.md +160 -0
- package/commands/elsabro/execute.md +299 -0
- package/commands/elsabro/help.md +102 -0
- package/commands/elsabro/insert-phase.md +117 -0
- package/commands/elsabro/list-phase-assumptions.md +129 -0
- package/commands/elsabro/map-codebase.md +108 -0
- package/commands/elsabro/new-milestone.md +128 -0
- package/commands/elsabro/new.md +230 -0
- package/commands/elsabro/pause-work.md +261 -0
- package/commands/elsabro/plan-milestone-gaps.md +129 -0
- package/commands/elsabro/plan.md +272 -0
- package/commands/elsabro/progress.md +187 -0
- package/commands/elsabro/quick.md +99 -0
- package/commands/elsabro/remove-phase.md +136 -0
- package/commands/elsabro/research-phase.md +174 -0
- package/commands/elsabro/resume-work.md +288 -0
- package/commands/elsabro/set-profile.md +216 -0
- package/commands/elsabro/settings.md +185 -0
- package/commands/elsabro/start.md +204 -0
- package/commands/elsabro/update.md +71 -0
- package/commands/elsabro/verify-work.md +269 -0
- package/commands/elsabro/verify.md +207 -0
- package/hooks/dist/.gitkeep +2 -0
- package/package.json +45 -0
- package/references/error-handling-instructions.md +312 -0
- package/references/source-hierarchy.md +150 -0
- package/references/token-optimization.md +225 -0
- package/skills/api-setup.md +315 -0
- package/skills/auth-setup.md +180 -0
- package/skills/database-setup.md +238 -0
- package/skills/expo-app.md +261 -0
- package/skills/nextjs-app.md +206 -0
- package/skills/payments-setup.md +421 -0
- package/skills/sentry-setup.md +295 -0
- package/templates/error-handling-config.json +138 -0
- package/templates/session-state.json +69 -0
- package/templates/starters/.gitkeep +2 -0
- package/workflows/.gitkeep +2 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: start
|
|
3
|
+
description: Wizard inteligente para empezar - detecta qué quieres hacer y te guía paso a paso
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
- Task
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
- WebSearch
|
|
13
|
+
- mcp__plugin_context7_context7__*
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# ELSABRO: Wizard de Inicio
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
Eres el asistente de inicio de ELSABRO. Tu trabajo es entender qué quiere hacer el usuario y guiarlo al flujo correcto, **sin importar su nivel de experiencia técnica**.
|
|
20
|
+
|
|
21
|
+
**Principio fundamental:** El usuario puede no saber nada de código. Usa lenguaje simple, ofrece opciones claras, y explica solo cuando te lo pidan.
|
|
22
|
+
</objective>
|
|
23
|
+
|
|
24
|
+
<detection>
|
|
25
|
+
## Paso 1: Detectar el Contexto
|
|
26
|
+
|
|
27
|
+
Primero, analiza el entorno actual:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Verificar si hay código existente
|
|
31
|
+
ls -la
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Basado en lo que encuentres:
|
|
35
|
+
|
|
36
|
+
| Encontrado | Significa | Flujo |
|
|
37
|
+
|------------|-----------|-------|
|
|
38
|
+
| package.json | Proyecto Node.js existente | → Brownfield |
|
|
39
|
+
| .git | Proyecto con control de versiones | → Brownfield |
|
|
40
|
+
| Carpeta vacía o solo README | Proyecto nuevo | → Greenfield |
|
|
41
|
+
| .planning/ | Proyecto ELSABRO existente | → Continuar |
|
|
42
|
+
| Nada | Directorio vacío | → Greenfield |
|
|
43
|
+
</detection>
|
|
44
|
+
|
|
45
|
+
<greeting>
|
|
46
|
+
## Paso 2: Saludo y Opciones
|
|
47
|
+
|
|
48
|
+
Saluda al usuario con opciones claras. **NO uses jerga técnica.**
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
¡Hola! Soy ELSABRO, tu asistente para crear apps.
|
|
52
|
+
|
|
53
|
+
¿Qué te gustaría hacer hoy?
|
|
54
|
+
|
|
55
|
+
1) 💡 Tengo una idea y quiero crear algo nuevo
|
|
56
|
+
2) 🔧 Ya tengo código y quiero agregar algo
|
|
57
|
+
3) 🐛 Algo no funciona y necesito arreglarlo
|
|
58
|
+
4) 📚 Quiero entender cómo funciona mi proyecto
|
|
59
|
+
5) ❓ Otra cosa (cuéntame)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Usa `AskUserQuestion` con estas opciones.
|
|
63
|
+
</greeting>
|
|
64
|
+
|
|
65
|
+
<flows>
|
|
66
|
+
## Paso 3: Guiar al Flujo Correcto
|
|
67
|
+
|
|
68
|
+
### Si elige "Tengo una idea" (Opción 1)
|
|
69
|
+
|
|
70
|
+
Pregunta qué tipo de app quiere:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
¡Genial! ¿Qué tipo de app quieres crear?
|
|
74
|
+
|
|
75
|
+
1) 🌐 Una página web o aplicación web
|
|
76
|
+
2) 📱 Una app para celular (iOS/Android)
|
|
77
|
+
3) 🔌 Una API o servicio backend
|
|
78
|
+
4) 🤖 Otra cosa (cuéntame)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Basado en respuesta:
|
|
82
|
+
|
|
83
|
+
| Tipo | Skill a Invocar |
|
|
84
|
+
|------|-----------------|
|
|
85
|
+
| Web | @skills/nextjs-app.md |
|
|
86
|
+
| Mobile | @skills/expo-app.md |
|
|
87
|
+
| API | @skills/api-setup.md |
|
|
88
|
+
| Otro | Investigar primero con Context7 |
|
|
89
|
+
|
|
90
|
+
### Si elige "Agregar algo" (Opción 2)
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
¿Qué quieres agregar?
|
|
94
|
+
|
|
95
|
+
1) 🔐 Sistema de login/usuarios
|
|
96
|
+
2) 💳 Pagos con tarjeta
|
|
97
|
+
3) 📊 Monitoreo de errores (Sentry)
|
|
98
|
+
4) 💾 Base de datos
|
|
99
|
+
5) 🎨 Mejorar el diseño
|
|
100
|
+
6) 📝 Otra funcionalidad (cuéntame)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
| Tipo | Skill a Invocar |
|
|
104
|
+
|------|-----------------|
|
|
105
|
+
| Auth | @skills/auth-setup.md |
|
|
106
|
+
| Payments | @skills/payments-setup.md |
|
|
107
|
+
| Monitoring | @skills/sentry-setup.md |
|
|
108
|
+
| Database | @skills/database-setup.md |
|
|
109
|
+
| Design | Usar 21st Magic MCP |
|
|
110
|
+
| Otro | Planificar con /elsabro:plan |
|
|
111
|
+
|
|
112
|
+
### Si elige "Algo no funciona" (Opción 3)
|
|
113
|
+
|
|
114
|
+
Invocar flujo de debugging:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Entiendo. Cuéntame:
|
|
118
|
+
1. ¿Qué debería pasar?
|
|
119
|
+
2. ¿Qué pasa en su lugar?
|
|
120
|
+
3. ¿Cuándo empezó el problema?
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Después → `/elsabro:debug`
|
|
124
|
+
|
|
125
|
+
### Si elige "Entender mi proyecto" (Opción 4)
|
|
126
|
+
|
|
127
|
+
Invocar mapeo de codebase:
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Voy a analizar tu proyecto para explicarte cómo funciona.
|
|
131
|
+
Dame un momento...
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Después → Crear resumen en lenguaje simple
|
|
135
|
+
|
|
136
|
+
### Si elige "Otra cosa" (Opción 5)
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
Cuéntame más. ¿Qué tienes en mente?
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Escuchar y adaptar.
|
|
143
|
+
</flows>
|
|
144
|
+
|
|
145
|
+
<ux_rules>
|
|
146
|
+
## Reglas de UX para Usuarios Sin Experiencia
|
|
147
|
+
|
|
148
|
+
### Por defecto: Respuestas concisas
|
|
149
|
+
- Solo lo esencial
|
|
150
|
+
- Sin jerga técnica
|
|
151
|
+
- Opciones claras
|
|
152
|
+
|
|
153
|
+
### Cuando pidan más detalle:
|
|
154
|
+
Frases que activan explicación detallada:
|
|
155
|
+
- "no entiendo"
|
|
156
|
+
- "explícame mejor"
|
|
157
|
+
- "qué significa"
|
|
158
|
+
- "más detalle"
|
|
159
|
+
- "?"
|
|
160
|
+
- "cómo funciona"
|
|
161
|
+
|
|
162
|
+
Entonces:
|
|
163
|
+
- Explica cada término
|
|
164
|
+
- Da ejemplos concretos
|
|
165
|
+
- Paso a paso más granular
|
|
166
|
+
- Pregunta si quedó claro
|
|
167
|
+
|
|
168
|
+
### Siempre ofrecer ayuda:
|
|
169
|
+
Al final de cada respuesta, agregar:
|
|
170
|
+
```
|
|
171
|
+
¿Algo no quedó claro? Solo dime "explícame" y te doy más detalle.
|
|
172
|
+
```
|
|
173
|
+
</ux_rules>
|
|
174
|
+
|
|
175
|
+
<research>
|
|
176
|
+
## Investigación Antes de Actuar
|
|
177
|
+
|
|
178
|
+
**REGLA CRÍTICA:** Antes de generar código, SIEMPRE investigar con Context7.
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
Para cualquier librería o framework:
|
|
182
|
+
1. mcp__plugin_context7_context7__resolve-library-id
|
|
183
|
+
2. mcp__plugin_context7_context7__query-docs
|
|
184
|
+
3. Solo entonces: generar código verificado
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
También usar WebSearch para:
|
|
188
|
+
- Comparar opciones
|
|
189
|
+
- Verificar mejores prácticas actuales
|
|
190
|
+
- Encontrar soluciones a problemas comunes
|
|
191
|
+
</research>
|
|
192
|
+
|
|
193
|
+
<next_steps>
|
|
194
|
+
## Después del Wizard
|
|
195
|
+
|
|
196
|
+
Una vez que el usuario elige, guiar a:
|
|
197
|
+
|
|
198
|
+
| Flujo | Comando |
|
|
199
|
+
|-------|---------|
|
|
200
|
+
| Crear app nueva | `/elsabro:new` |
|
|
201
|
+
| Agregar feature | `/elsabro:plan` → `/elsabro:execute` |
|
|
202
|
+
| Debugging | `/elsabro:debug` |
|
|
203
|
+
| Entender código | Usar agente analyst |
|
|
204
|
+
</next_steps>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: update
|
|
3
|
+
description: Actualiza ELSABRO a la última versión
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ELSABRO: Actualización
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
Actualizar ELSABRO a la última versión disponible, preservando la configuración local.
|
|
13
|
+
</objective>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
## Paso 1: Verificar versión actual
|
|
17
|
+
|
|
18
|
+
Lee el archivo de settings para obtener info de instalación:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
cat ~/.claude/settings.json | grep -A 5 '"elsabro"'
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Paso 2: Detectar package manager
|
|
25
|
+
|
|
26
|
+
El package manager usado está guardado en settings.json. Usar ese mismo para actualizar.
|
|
27
|
+
|
|
28
|
+
## Paso 3: Ejecutar actualización
|
|
29
|
+
|
|
30
|
+
Según el package manager:
|
|
31
|
+
|
|
32
|
+
**NPM:**
|
|
33
|
+
```bash
|
|
34
|
+
npx elsabro@latest --global --update
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**PNPM:**
|
|
38
|
+
```bash
|
|
39
|
+
pnpm dlx elsabro@latest --global
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**BUN:**
|
|
43
|
+
```bash
|
|
44
|
+
bunx elsabro@latest --global
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Paso 4: Verificar actualización
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
cat ~/.claude/settings.json | grep -A 5 '"elsabro"'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Paso 5: Confirmar al usuario
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
✓ ELSABRO actualizado correctamente
|
|
57
|
+
|
|
58
|
+
Versión anterior: [X.X.X]
|
|
59
|
+
Versión actual: [Y.Y.Y]
|
|
60
|
+
|
|
61
|
+
Para ver los cambios: https://github.com/cubait/elsabro/releases
|
|
62
|
+
```
|
|
63
|
+
</process>
|
|
64
|
+
|
|
65
|
+
<notes>
|
|
66
|
+
## Notas
|
|
67
|
+
|
|
68
|
+
- La actualización preserva tu configuración local (.planning/)
|
|
69
|
+
- Los agentes y comandos se reemplazan con la versión más nueva
|
|
70
|
+
- Si hay problemas, puedes reinstalar: `npx elsabro --global`
|
|
71
|
+
</notes>
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verify-work
|
|
3
|
+
description: Verificación completa del trabajo realizado usando agentes paralelos
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- Task
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# /elsabro:verify-work
|
|
13
|
+
|
|
14
|
+
<command-name>verify-work</command-name>
|
|
15
|
+
|
|
16
|
+
## Propósito
|
|
17
|
+
|
|
18
|
+
Verificar que el trabajo completado cumple con los requirements, pasa todos los tests, y está listo para merge/deploy.
|
|
19
|
+
|
|
20
|
+
## Protocolo de Verificación
|
|
21
|
+
|
|
22
|
+
Usa **mínimo 3 agentes en paralelo** para verificación exhaustiva:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
┌──────────────────────────────────────────────────────┐
|
|
26
|
+
│ VERIFICACIÓN PARALELA (CUBAIT Protocol) │
|
|
27
|
+
├──────────────────────────────────────────────────────┤
|
|
28
|
+
│ │
|
|
29
|
+
│ Agent 1: Functional Verification │
|
|
30
|
+
│ └─ ¿El código hace lo que debe? │
|
|
31
|
+
│ └─ ¿Cumple acceptance criteria? │
|
|
32
|
+
│ │
|
|
33
|
+
│ Agent 2: Quality Verification │
|
|
34
|
+
│ └─ ¿Tests pasan? │
|
|
35
|
+
│ └─ ¿Coverage adecuado? │
|
|
36
|
+
│ └─ ¿Sin errores de lint? │
|
|
37
|
+
│ │
|
|
38
|
+
│ Agent 3: Security/Edge Cases │
|
|
39
|
+
│ └─ ¿Sin vulnerabilidades obvias? │
|
|
40
|
+
│ └─ ¿Edge cases manejados? │
|
|
41
|
+
│ └─ ¿Error handling correcto? │
|
|
42
|
+
│ │
|
|
43
|
+
└──────────────────────────────────────────────────────┘
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Ejecución
|
|
47
|
+
|
|
48
|
+
### Verificación Automática
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
/elsabro:verify-work
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Esto ejecuta:
|
|
55
|
+
1. `npm test` / `pytest` / equivalente
|
|
56
|
+
2. `npm run lint` / equivalente
|
|
57
|
+
3. `npm run build` (si existe)
|
|
58
|
+
4. Verificación de requirements vs implementación
|
|
59
|
+
|
|
60
|
+
### Verificación de Story Específica
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
/elsabro:verify-work --story=US-123
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Verificación Pre-PR
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
/elsabro:verify-work --pre-pr
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Agrega verificaciones extra:
|
|
73
|
+
- Branch está actualizado con main
|
|
74
|
+
- No hay conflictos
|
|
75
|
+
- Commit messages siguen convención
|
|
76
|
+
- PR template completo
|
|
77
|
+
|
|
78
|
+
## Checklist de Verificación
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
## Verification Report
|
|
82
|
+
|
|
83
|
+
### Functional ✓/✗
|
|
84
|
+
- [ ] Acceptance criteria met
|
|
85
|
+
- [ ] Feature works as expected
|
|
86
|
+
- [ ] No regression in existing features
|
|
87
|
+
|
|
88
|
+
### Quality ✓/✗
|
|
89
|
+
- [ ] All tests pass
|
|
90
|
+
- [ ] Coverage >= threshold
|
|
91
|
+
- [ ] No lint errors
|
|
92
|
+
- [ ] Build succeeds
|
|
93
|
+
|
|
94
|
+
### Security ✓/✗
|
|
95
|
+
- [ ] No hardcoded secrets
|
|
96
|
+
- [ ] Input validation present
|
|
97
|
+
- [ ] Error messages safe
|
|
98
|
+
- [ ] Auth/authz correct
|
|
99
|
+
|
|
100
|
+
### Documentation ✓/✗
|
|
101
|
+
- [ ] README updated (if needed)
|
|
102
|
+
- [ ] API docs updated (if needed)
|
|
103
|
+
- [ ] Comments for complex code
|
|
104
|
+
|
|
105
|
+
### Ready for Review
|
|
106
|
+
- [ ] All checks pass
|
|
107
|
+
- [ ] Self-review done
|
|
108
|
+
- [ ] Ready for team review
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Output
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
╔══════════════════════════════════════╗
|
|
115
|
+
║ VERIFICATION COMPLETE ║
|
|
116
|
+
╠══════════════════════════════════════╣
|
|
117
|
+
║ Functional: ✓ PASS ║
|
|
118
|
+
║ Quality: ✓ PASS ║
|
|
119
|
+
║ Security: ✓ PASS ║
|
|
120
|
+
║ Docs: ⚠ WARN (README stale) ║
|
|
121
|
+
╠══════════════════════════════════════╣
|
|
122
|
+
║ OVERALL: ✓ READY FOR REVIEW ║
|
|
123
|
+
╚══════════════════════════════════════╝
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Integración
|
|
127
|
+
|
|
128
|
+
- Usa `elsabro-verifier` agent internamente
|
|
129
|
+
- Compatible con CI/CD pipelines
|
|
130
|
+
- Genera reporte en `.planning/VERIFICATION-REPORT.md`
|
|
131
|
+
|
|
132
|
+
<parallel_coordination>
|
|
133
|
+
## Coordinación de Verificación Paralela
|
|
134
|
+
|
|
135
|
+
### Policy: fail_fast
|
|
136
|
+
|
|
137
|
+
Para verificación, usamos `policy: fail_fast` porque todos los checks son críticos:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
┌────────────────────────────────────────────────┐
|
|
141
|
+
│ PARALLEL POLICY: fail_fast │
|
|
142
|
+
├────────────────────────────────────────────────┤
|
|
143
|
+
│ Behavior: Parar si CUALQUIER check falla │
|
|
144
|
+
│ Rationale: Verificación debe ser exhaustiva │
|
|
145
|
+
│ On failure: Detener, reportar, sugerir fix │
|
|
146
|
+
└────────────────────────────────────────────────┘
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Lanzamiento de Agentes
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
# Los 3 agentes corren en paralelo
|
|
153
|
+
┌─────────────────────────────────────────────────┐
|
|
154
|
+
│ │
|
|
155
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │
|
|
156
|
+
│ │ Functional │ │ Quality │ │Security │ │
|
|
157
|
+
│ │ Verifier │ │ Verifier │ │Verifier │ │
|
|
158
|
+
│ └──────┬──────┘ └──────┬──────┘ └────┬────┘ │
|
|
159
|
+
│ │ │ │ │
|
|
160
|
+
│ └────────────────┼──────────────┘ │
|
|
161
|
+
│ │ │
|
|
162
|
+
│ ┌──────▼──────┐ │
|
|
163
|
+
│ │ Aggregator │ │
|
|
164
|
+
│ │ (wait all) │ │
|
|
165
|
+
│ └─────────────┘ │
|
|
166
|
+
│ │
|
|
167
|
+
└─────────────────────────────────────────────────┘
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Reporte de Verificación Paralela
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
╔══════════════════════════════════════════════════╗
|
|
174
|
+
║ PARALLEL VERIFICATION COMPLETE ║
|
|
175
|
+
╠══════════════════════════════════════════════════╣
|
|
176
|
+
║ Policy: fail_fast ║
|
|
177
|
+
║ Total: 3 agents ║
|
|
178
|
+
║ ║
|
|
179
|
+
║ ✓ functional-verifier: PASS (18s) ║
|
|
180
|
+
║ └─ All acceptance criteria met ║
|
|
181
|
+
║ ✓ quality-verifier: PASS (25s) ║
|
|
182
|
+
║ └─ Tests: 45/45, Coverage: 87% ║
|
|
183
|
+
║ ✓ security-verifier: PASS (12s) ║
|
|
184
|
+
║ └─ No vulnerabilities found ║
|
|
185
|
+
║ ║
|
|
186
|
+
║ Result: 3/3 (100%) - ALL PASSED ║
|
|
187
|
+
║ Status: READY FOR REVIEW ║
|
|
188
|
+
╚══════════════════════════════════════════════════╝
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Manejo de Fallo (fail_fast)
|
|
192
|
+
|
|
193
|
+
Si cualquier verificador falla:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
╔══════════════════════════════════════════════════╗
|
|
197
|
+
║ 🟠 VERIFICATION FAILED ║
|
|
198
|
+
╠══════════════════════════════════════════════════╣
|
|
199
|
+
║ Policy: fail_fast (TRIGGERED) ║
|
|
200
|
+
║ ║
|
|
201
|
+
║ ✓ functional-verifier: PASS ║
|
|
202
|
+
║ ✗ quality-verifier: FAILED ║
|
|
203
|
+
║ └─ 3 tests failing ║
|
|
204
|
+
║ ⏸ security-verifier: STOPPED (fail_fast) ║
|
|
205
|
+
║ ║
|
|
206
|
+
╠══════════════════════════════════════════════════╣
|
|
207
|
+
║ Detalles del fallo: ║
|
|
208
|
+
║ - Profile.test.ts: Expected "John" got null ║
|
|
209
|
+
║ - Auth.test.ts: Timeout after 5000ms ║
|
|
210
|
+
║ - API.test.ts: 404 on /users endpoint ║
|
|
211
|
+
║ ║
|
|
212
|
+
╠══════════════════════════════════════════════════╣
|
|
213
|
+
║ Opciones: ║
|
|
214
|
+
║ [d] /elsabro:debug - Investigar fallos ║
|
|
215
|
+
║ [f] Fix y re-verificar ║
|
|
216
|
+
║ [s] Saltar verificación (no recomendado) ║
|
|
217
|
+
║ [a] Abortar ║
|
|
218
|
+
╚══════════════════════════════════════════════════╝
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Retry para Verificación
|
|
222
|
+
|
|
223
|
+
Si un agente falla por razones transitorias (timeout, network):
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
┌──────────────────────────────────────────────────┐
|
|
227
|
+
│ RETRY: quality-verifier │
|
|
228
|
+
├──────────────────────────────────────────────────┤
|
|
229
|
+
│ Attempt 1/3: FAILED (timeout) │
|
|
230
|
+
│ Waiting 1s... │
|
|
231
|
+
│ │
|
|
232
|
+
│ Attempt 2/3: FAILED (timeout) │
|
|
233
|
+
│ Waiting 2s... │
|
|
234
|
+
│ │
|
|
235
|
+
│ Attempt 3/3: SUCCESS ✓ │
|
|
236
|
+
│ │
|
|
237
|
+
│ Total time: 8.5s │
|
|
238
|
+
└──────────────────────────────────────────────────┘
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Actualizar Estado
|
|
242
|
+
|
|
243
|
+
Al completar verificación:
|
|
244
|
+
|
|
245
|
+
```json
|
|
246
|
+
{
|
|
247
|
+
"parallelExecution": {
|
|
248
|
+
"policy": "fail_fast",
|
|
249
|
+
"activeAgents": [],
|
|
250
|
+
"completedAgents": [
|
|
251
|
+
"functional-verifier",
|
|
252
|
+
"quality-verifier",
|
|
253
|
+
"security-verifier"
|
|
254
|
+
],
|
|
255
|
+
"failedAgents": [],
|
|
256
|
+
"lastResult": {
|
|
257
|
+
"total": 3,
|
|
258
|
+
"success": 3,
|
|
259
|
+
"allPassed": true
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"verification": {
|
|
263
|
+
"lastRun": "2024-01-20T16:30:00Z",
|
|
264
|
+
"result": "PASS",
|
|
265
|
+
"readyForReview": true
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
</parallel_coordination>
|