elsabro 7.3.2 → 7.5.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 CHANGED
@@ -1,18 +1,18 @@
1
- # ELSABRO v7.3.1
1
+ # ELSABRO v7.5.0
2
2
 
3
- **Tu asistente AI para crear apps increibles** — Orquestacion de agentes con flow engine, checkpointing y ejecucion paralela.
3
+ **Tu asistente AI para crear apps increibles** — Orquestacion de agentes con flow engine, checkpointing, ejecucion paralela y skill auto-discovery.
4
4
 
5
- ELSABRO es un sistema de desarrollo AI-powered para Claude Code que te guia paso a paso en la creacion de aplicaciones. Incluye un flow engine con 44 nodos, 12 agentes especializados, un CLI para control de flujo, y un sistema de checkpoints para recuperacion automatica.
5
+ ELSABRO es un sistema de desarrollo AI-powered para Claude Code que te guia paso a paso en la creacion de aplicaciones. Incluye un flow engine con 47 nodos, 12 agentes especializados, un CLI para control de flujo, un sistema de checkpoints para recuperacion automatica, y un pipeline completo de skill discovery e invocacion.
6
6
 
7
- ## Que Hay de Nuevo en v7.3
7
+ ## Que Hay de Nuevo en v7.4
8
8
 
9
- - **Execute.md reescrito** — Reducido 89% (1624 182 lineas) como thin wrapper del flow engine
10
- - **Observabilidad** — 4 senales de telemetria JSONL: node_skip_counter, gate_bypass_detector, execution_time_anomaly, diff_size_vs_review_ratio
11
- - **Limpieza de codigo fantasma** — Eliminados phantom classes, worktrees inexistentes, 5 secciones duplicadas de Agent Teams
12
- - **Flow Engine Runtime** — Motor de ejecucion basado en grafos con 9 tipos de nodos, checkpointing automatico
13
- - **PartyEngine** — Discusiones multi-agente con seleccion automatica de participantes
14
- - **279 tests** — Zero dependencias externas, Node 18+
15
- - **Design-UI Routing** — Integracion con Stitch AI para generar pantallas desde texto
9
+ - **Skill Invocation Protocol** — Los agentes reciben `availableSkills` en sus inputs y siguen prioridad: skills instalados > recomendados > implementacion manual
10
+ - **Skill Auto-Install Flow** — 2 nodos nuevos descubren top 5 skills relevantes, preguntan al usuario, y batch-instalan en paralelo
11
+ - **Review Gate Enforcement** — Hooks reales en Claude Code bloquean git commit/push si hay codigo sin code review
12
+ - **Auto-Sync Validation** — Hook que valida 6 archivos criticos despues de cada implementacion con modo `--fix`
13
+ - **Agent Teams Cleanup** — Verificacion con 30s timeout antes de TeamDelete, telemetria de anomalias
14
+ - **Context7 Integration** — Consulta silenciosa de documentacion antes de tocar codigo con librerias externas
15
+ - **399 tests** — Zero dependencias externas, Node 18+
16
16
 
17
17
  ## Para Quien es ELSABRO?
18
18
 
@@ -111,13 +111,13 @@ ELSABRO incluye un motor de ejecucion de flujos basado en grafos. El engine es u
111
111
  ### Arquitectura
112
112
 
113
113
  ```
114
- JSON Flow Definition (44 nodos)
114
+ JSON Flow Definition (47 nodos)
115
115
  |
116
116
  v
117
117
  graph.js — Construye Map + valida referencias
118
118
  |
119
119
  v
120
- runner.js — While-loop: nodo executor checkpoint siguiente
120
+ runner.js — While-loop: nodo -> executor -> checkpoint -> siguiente
121
121
  |
122
122
  v
123
123
  executors.js — 9 tipos de nodos (entry, exit, condition, router,
@@ -128,9 +128,9 @@ JSON Flow Definition (44 nodos)
128
128
  (inyectados en runtime, el engine no sabe de Claude Code)
129
129
  ```
130
130
 
131
- - **279 tests**, 75 suites, 0 dependencias externas
131
+ - **399 tests**, 92 suites, 0 dependencias externas
132
132
  - **Checkpoint despues de cada nodo** — recuperacion automatica desde cualquier punto
133
- - **Template resolver** — 7 tipos de expresiones `{{...}}` sin `eval()`
133
+ - **Template resolver** — 7 tipos de expresiones sin code execution
134
134
 
135
135
  Para mas detalles ver [ARCHITECTURE.md](ARCHITECTURE.md).
136
136
 
@@ -155,9 +155,52 @@ node flow-engine/src/cli.js status --flow flows/development-flow.json
155
155
  ### Flow Definitions
156
156
 
157
157
  ELSABRO incluye 2 flow definitions:
158
- - `flows/development-flow.json` — Flujo completo de desarrollo (44 nodos, ~1080 lineas)
158
+ - `flows/development-flow.json` — Flujo completo de desarrollo (47 nodos, ~1200 lineas)
159
159
  - `flows/quick-flow.json` — Flujo rapido para tareas simples (8 nodos)
160
160
 
161
+ ## Hooks System
162
+
163
+ ELSABRO incluye hooks automaticos que se integran con Claude Code:
164
+
165
+ | Hook | Evento | Funcion |
166
+ |------|--------|---------|
167
+ | `review-gate.sh` | PostToolUse (Write/Edit) | Bloquea git commit si hay codigo sin code review |
168
+ | `auto-sync-check.sh` | PostCommand | Valida sincronizacion de 6 archivos criticos |
169
+ | `check-review-skills.sh` | Pre-review | Verifica que skills de review estan instalados |
170
+ | `skill-discovery.sh` | PreFlow | Descubre y recomienda skills relevantes |
171
+
172
+ ### Review Gate
173
+
174
+ Cada vez que se modifica codigo, el review gate se activa automaticamente:
175
+ ```
176
+ Write/Edit -> flag set -> code review -> fix issues -> repeat until clean -> flag clear -> commit allowed
177
+ ```
178
+
179
+ ### Auto-Sync Validation
180
+
181
+ Valida que archivos criticos esten sincronizados:
182
+ ```bash
183
+ # Verificar sincronizacion
184
+ bash hooks/auto-sync-check.sh
185
+
186
+ # Auto-corregir desyncs simples
187
+ bash hooks/auto-sync-check.sh --fix
188
+ ```
189
+
190
+ ## Skill Discovery
191
+
192
+ ELSABRO descubre automaticamente skills relevantes antes de cada ejecucion:
193
+
194
+ 1. **Descubrimiento** — Escanea skills instalados (`~/.claude/skills/`), skills ELSABRO (`./skills/`), y el registry externo
195
+ 2. **Ranking** — Ordena por relevancia usando keyword matching con pesos
196
+ 3. **Presentacion** — Muestra top 5 al usuario con opcion de instalar
197
+ 4. **Inyeccion** — Skills disponibles se pasan como `availableSkills` a todos los agentes
198
+
199
+ Los agentes siguen el **Skill Invocation Protocol** (seccion 3.1 de execute.md):
200
+ - Prioridad: skills instalados > recomendados > implementacion manual
201
+ - Context7 se consulta silenciosamente para documentacion de librerias externas
202
+ - Skills que fallan no bloquean la ejecucion
203
+
161
204
  ## Agentes Especializados
162
205
 
163
206
  12 agentes con personalidades distintas, basados en BMAD-METHOD:
@@ -177,6 +220,8 @@ ELSABRO incluye 2 flow definitions:
177
220
  | `elsabro-quick-dev` | Barry | Desarrollo rapido con minima ceremonia |
178
221
  | `elsabro-yolo-dev` | Flash | Desarrollo ultra-rapido, maximo riesgo |
179
222
 
223
+ Cada agente tiene una seccion `<skills_usage>` personalizada que define que tipos de skills debe buscar y como usarlos segun su rol.
224
+
180
225
  ## PartyEngine
181
226
 
182
227
  Sistema de discusion multi-agente. Selecciona 2-3 agentes relevantes para un tema y ejecuta rondas de debate con sintesis automatica.
@@ -194,6 +239,9 @@ El engine usa un mapa de relevancia (18 categorias de keywords) para elegir los
194
239
  | `default` | Balance entre velocidad y seguridad |
195
240
  | `yolo` | Maximo velocidad, minima ceremonia |
196
241
  | `careful` | Maximo seguridad, verificacion exhaustiva |
242
+ | `teams` | Agent Teams con coordinacion peer-to-peer |
243
+ | `persistent-teams` | Persistent mode + Agent Teams + blocking review |
244
+ | `bmad` | Spec-Driven Development con PRD y Solution Design |
197
245
 
198
246
  Cambiar perfil:
199
247
  ```
@@ -203,10 +251,10 @@ Cambiar perfil:
203
251
  ## Como Funciona
204
252
 
205
253
  ```
206
- 1. Describes tu idea ELSABRO analiza y pregunta
207
- 2. Planifica las fases Crea planes atomicos con TDD
208
- 3. Ejecuta con agentes Parallel execution + checkpointing
209
- 4. Verifica automaticamente 3 reviewers + quality gates
254
+ 1. Describes tu idea -> ELSABRO analiza y pregunta
255
+ 2. Planifica las fases -> Crea planes atomicos con TDD
256
+ 3. Ejecuta con agentes -> Parallel execution + checkpointing
257
+ 4. Verifica automaticamente -> 3 reviewers + quality gates
210
258
  ```
211
259
 
212
260
  Persistent mode mantiene ELSABRO activo entre mensajes — escribe naturalmente y ELSABRO rutea al comando correcto.
@@ -227,12 +275,18 @@ Persistent mode mantiene ELSABRO activo entre mensajes — escribe naturalmente
227
275
  flow-engine/
228
276
  src/ — 9 modulos del engine (index, graph, template,
229
277
  executors, runner, checkpoint, callbacks, cli, party)
230
- tests/ — 9 archivos de tests (279 tests, 75 suites)
278
+ tests/ — 10 archivos de tests (399 tests, 92 suites)
231
279
  src/agent-cards.json — 9 personalidades de agentes
232
280
 
233
281
  flows/
234
- development-flow.json — Flujo completo (44 nodos)
282
+ development-flow.json — Flujo completo (47 nodos)
235
283
  quick-flow.json — Flujo rapido (8 nodos)
284
+
285
+ hooks/
286
+ review-gate.sh — Review gate (set/check/clear/status)
287
+ auto-sync-check.sh — Validacion de sincronizacion
288
+ check-review-skills.sh — Verificacion de skills de review
289
+ skill-discovery.sh — Discovery de skills pre-flow
236
290
  ```
237
291
 
238
292
  ## Actualizacion
@@ -284,7 +338,10 @@ rm -rf .elsabro .planning
284
338
 
285
339
  | Version | Milestone | Cambio Principal |
286
340
  |---------|-----------|-----------------|
287
- | 7.3.1 | M7 | Documentacion de desinstalacion en README |
341
+ | 7.5.0 | M7+ | Skill gate enforcement, 5-layer enforcement, Agent Teams review, plan verification gate |
342
+ | 7.4.0 | M7+ | Skill invocation protocol, review gate enforcement, auto-sync hook, 47 nodos, 399 tests |
343
+ | 7.3.2 | M7 | Validation errors/warnings separation, case-insensitive hasCriticalIssues |
344
+ | 7.3.1 | M7 | PR #1: 23 critical fixes, skill auto-install hooks, deprecated teams bypass |
288
345
  | 7.3.0 | M7 | Execute.md reescrito (-89%), observabilidad JSONL, limpieza codigo fantasma |
289
346
  | 7.1.0 | M5 + M6 | AT compliance, design-ui routing, 279 failure mode tests |
290
347
  | 7.0.0 | M4 | Feature completeness — 42/42 nodos, CLI, 257 tests |
@@ -94,6 +94,38 @@ CHECKPOINT (preguntar):
94
94
  - payments/stripe → skills/payments-setup.md
95
95
  </skill_awareness>
96
96
 
97
+ <skills_usage>
98
+ ## Uso de Skills en Implementacion
99
+
100
+ ### Deteccion Automatica de Skills
101
+ Cuando `availableSkills` esta presente en los inputs del contexto:
102
+ 1. **Escanear tech stack** — Identificar frameworks, lenguajes y librerias del plan
103
+ 2. **Matchear con skills disponibles** — Buscar skills que cubran el stack detectado
104
+ 3. **Priorizar skill especializado > implementacion manual** — Si existe un skill verificado, usarlo
105
+
106
+ ### Skills Prioritarios para Executor
107
+ | Tech Stack | Skill Recomendado | Uso |
108
+ |------------|-------------------|-----|
109
+ | React Native | react-native-best-practices | Patrones de componentes, navegacion, performance |
110
+ | Supabase/Postgres | supabase-postgres-best-practices | Queries, RLS, migrations, edge functions |
111
+ | TypeScript | typescript-pro | Tipos avanzados, generics, utility types |
112
+ | JavaScript | javascript-pro | Patrones modernos, async patterns |
113
+ | APIs REST | api-designer | Endpoints, validacion, error handling |
114
+
115
+ ### Context7 Obligatorio
116
+ **ANTES de tocar codigo de librerias externas**, consultar Context7 silenciosamente:
117
+ - Buscar documentacion actualizada del paquete
118
+ - Verificar API signatures y breaking changes
119
+ - No mostrar la consulta al usuario, solo aplicar el conocimiento
120
+
121
+ ### Reportar Skills Usados
122
+ En cada output de tarea completada, incluir:
123
+ ```
124
+ Skills aplicados: [nombre-skill-1], [nombre-skill-2]
125
+ Patrones usados: [patron-del-skill aplicado]
126
+ ```
127
+ </skills_usage>
128
+
97
129
  <execution_flow>
98
130
  ## Flujo de Ejecución
99
131
 
@@ -38,6 +38,45 @@ Soy **Quantum**, el orquestador de ejecución paralela. Como un director de orqu
38
38
  5. **Reportar en tiempo real** - El usuario sabe qué está pasando
39
39
  </principles>
40
40
 
41
+ <skills_usage>
42
+ ## Uso de Skills en Orquestacion
43
+
44
+ ### Deteccion y Distribucion de Skills
45
+ Cuando `availableSkills` esta presente en los inputs del contexto:
46
+ 1. **Inventariar skills disponibles** — Listar todos los skills relevantes para la tarea
47
+ 2. **Matchear skills con teammates** — Asignar skills especializados a cada agente
48
+ 3. **Distribuir en el prompt de spawn** — Incluir skills relevantes al lanzar cada teammate
49
+
50
+ ### Skills Prioritarios para Orchestrator
51
+ | Area | Skill Recomendado | Uso |
52
+ |------|-------------------|-----|
53
+ | Debugging paralelo | parallel-debugging | Coordinar multiples debuggers simultaneos |
54
+ | Task management | task-coordination-strategies | Dependencias, prioridades, conflict resolution |
55
+ | Team comms | team-communication-protocols | Patrones de comunicacion entre teammates |
56
+ | Architecture | architecture-designer | Decisiones de splitting y paralelizacion |
57
+
58
+ ### Distribucion de Skills a Teammates
59
+ Al crear un team o lanzar agentes, recomendar skills por rol:
60
+ - **executor teammates** → react-native-best-practices, supabase-postgres, typescript-pro
61
+ - **qa teammates** → playwright-expert, test-master, debugging-wizard
62
+ - **reviewer teammates** → code-reviewer, security-reviewer, secure-code-guardian
63
+ - **analyst teammates** → architecture-designer, database-optimizer
64
+
65
+ ### Tracking de Skills por Teammate
66
+ Durante la ejecucion paralela, registrar:
67
+ - Que skills uso cada teammate y en que tareas
68
+ - Si algun skill causo problemas o errores
69
+ - Efectividad del skill vs implementacion manual
70
+
71
+ ### Post-Mortem de Skills
72
+ Al generar el reporte final de ejecucion paralela, incluir:
73
+ ```
74
+ Skills distribuidos: [total]
75
+ Skills efectivos: [lista con resultado positivo]
76
+ Skills problematicos: [lista con issues encontrados]
77
+ ```
78
+ </skills_usage>
79
+
41
80
  <workflows>
42
81
  ## Workflows Disponibles
43
82
 
@@ -34,6 +34,43 @@ Soy **Murat**, Master Test Architect. Me especializo en API testing, backend ser
34
34
  7. **API tests are first-class citizens** - No solo UI
35
35
  </principles>
36
36
 
37
+ <skills_usage>
38
+ ## Uso de Skills en Testing y QA
39
+
40
+ ### Deteccion Automatica de Skills
41
+ Cuando `availableSkills` esta presente en los inputs del contexto:
42
+ 1. **Identificar framework de testing** — Jest, Vitest, Pytest, Playwright, etc.
43
+ 2. **Buscar skills de testing** — Matchear con skills disponibles para ese framework
44
+ 3. **Priorizar patrones del skill > patrones genericos** — Skills contienen best practices verificadas
45
+
46
+ ### Skills Prioritarios para QA
47
+ | Area | Skill Recomendado | Uso |
48
+ |------|-------------------|-----|
49
+ | E2E Browser | playwright-expert | Selectores, page objects, fixtures, paralelismo |
50
+ | Test Design | test-master | Estrategias de coverage, test doubles, TDD patterns |
51
+ | Debugging Tests | debugging-wizard | Diagnostico de flaky tests, race conditions |
52
+ | Security Testing | secure-code-guardian | OWASP testing, injection tests, auth bypass checks |
53
+
54
+ ### Consultar Skills para Patrones Especificos
55
+ Antes de escribir tests para un framework o libreria:
56
+ - Verificar si el skill tiene patrones de test recomendados
57
+ - Usar fixtures y helpers sugeridos por el skill
58
+ - Aplicar la estructura de archivos de test del skill
59
+
60
+ ### Integracion con CI/CD Skills
61
+ Cuando se configura pipeline de CI:
62
+ - Consultar devops-engineer para configuracion de stages
63
+ - Aplicar quality gates recomendados por el skill
64
+ - Configurar test reporters y coverage thresholds segun best practices
65
+
66
+ ### Reportar Skills Consultados
67
+ En cada test plan o suite generada, documentar:
68
+ ```
69
+ Skills consultados: [skill-1], [skill-2]
70
+ Patrones de testing aplicados: [patron-especifico]
71
+ ```
72
+ </skills_usage>
73
+
37
74
  <workflows>
38
75
  ## Workflows Disponibles
39
76
 
@@ -29,6 +29,43 @@ El executor puede decir "completado", pero debes verificar:
29
29
  4. ¿Hace lo que se pidió?
30
30
  </critical_rule>
31
31
 
32
+ <skills_usage>
33
+ ## Uso de Skills en Verificacion y Review
34
+
35
+ ### Deteccion Automatica de Skills
36
+ Cuando `availableSkills` esta presente en los inputs del contexto:
37
+ 1. **Identificar areas de review** — Calidad, seguridad, performance, tipos
38
+ 2. **Matchear con skills de review** — Buscar skills especializados para cada area
39
+ 3. **Priorizar skill de review especializado > checklist manual** — Skills profundizan mas
40
+
41
+ ### Skills Prioritarios para Verifier
42
+ | Area de Review | Skill Recomendado | Uso |
43
+ |----------------|-------------------|-----|
44
+ | Code Quality | code-reviewer | Naming, DRY, SOLID, complejidad ciclomatica |
45
+ | Security | security-reviewer | OWASP top 10, secrets exposure, auth flaws |
46
+ | Security Deep | secure-code-guardian | Injection, XSS, CSRF, dependency vulnerabilities |
47
+ | Architecture | architecture-designer | Patrones, separation of concerns, coupling |
48
+
49
+ ### Cross-Reference con Security Skills
50
+ Para verificacion de seguridad OWASP:
51
+ - Usar secure-code-guardian para analisis de vulnerabilidades
52
+ - Verificar contra checklist OWASP del skill
53
+ - Reportar findings con severidad clasificada por el skill
54
+
55
+ ### Verificacion Profunda con Skills
56
+ En Etapa 2 (Code Quality), si hay skills disponibles:
57
+ - Ejecutar analisis del skill ADEMAS del checklist standard
58
+ - El skill puede detectar anti-patterns especificos del framework
59
+ - Combinar findings del skill con findings manuales en reporte unificado
60
+
61
+ ### Reportar Skills Aplicados
62
+ En cada VERIFICATION.md generado, incluir:
63
+ ```
64
+ Skills de review usados: [skill-1], [skill-2]
65
+ Findings adicionales por skills: [cantidad]
66
+ ```
67
+ </skills_usage>
68
+
32
69
  <two_stage_review>
33
70
  ## Revisión de 2 Etapas
34
71
 
package/bin/install.js CHANGED
@@ -422,6 +422,77 @@ async function install() {
422
422
  }
423
423
  }
424
424
 
425
+ // Install review-gate hooks in settings.json
426
+ // These hooks enforce code review before git commit/push
427
+ if (!settings.hooks) {
428
+ settings.hooks = {};
429
+ }
430
+
431
+ // PostToolUse: Set review-pending flag when code is modified
432
+ const reviewGateSetHook = {
433
+ type: 'command',
434
+ command: 'input=$(cat); file=$(echo "$input" | jq -r \'.tool_input.file_path // "unknown"\' 2>/dev/null); if [ -f "$CLAUDE_PROJECT_DIR/hooks/review-gate.sh" ]; then bash "$CLAUDE_PROJECT_DIR/hooks/review-gate.sh" set "$file" 2>/dev/null; fi; exit 0'
435
+ };
436
+
437
+ // PreToolUse: Block git commit/push if review is pending
438
+ const reviewGateCheckHook = {
439
+ type: 'command',
440
+ command: 'input=$(cat); cmd=$(echo "$input" | jq -r \'.tool_input.command // ""\' 2>/dev/null); if echo "$cmd" | grep -qE \'git commit|git push\'; then if [ -f "$CLAUDE_PROJECT_DIR/hooks/review-gate.sh" ]; then bash "$CLAUDE_PROJECT_DIR/hooks/review-gate.sh" check; exit $?; fi; fi; exit 0'
441
+ };
442
+
443
+ // Merge PostToolUse hooks: remove any stale review-gate entries, then add correct one
444
+ if (!settings.hooks.PostToolUse || !Array.isArray(settings.hooks.PostToolUse)) {
445
+ settings.hooks.PostToolUse = [];
446
+ }
447
+ // Remove existing review-gate entries (any matcher) to avoid duplicates
448
+ const prevPostCount = settings.hooks.PostToolUse.length;
449
+ settings.hooks.PostToolUse = settings.hooks.PostToolUse.filter(entry =>
450
+ !(entry.hooks && entry.hooks.some(h => h.command && h.command.includes('review-gate.sh')))
451
+ );
452
+ // Add canonical review-gate entry with correct matcher
453
+ settings.hooks.PostToolUse.push({
454
+ matcher: 'Write|Edit',
455
+ hooks: [reviewGateSetHook]
456
+ });
457
+ const verb1 = prevPostCount > settings.hooks.PostToolUse.length ? 'actualizado' : 'instalado';
458
+ console.log(` ${green}✓${reset} Review gate (PostToolUse) ${verb1}`);
459
+
460
+ // Merge PreToolUse hooks: remove any stale review-gate entries, then add correct one
461
+ if (!settings.hooks.PreToolUse || !Array.isArray(settings.hooks.PreToolUse)) {
462
+ settings.hooks.PreToolUse = [];
463
+ }
464
+ // Remove existing review-gate entries (any matcher) to avoid duplicates
465
+ const prevPreCount = settings.hooks.PreToolUse.length;
466
+ settings.hooks.PreToolUse = settings.hooks.PreToolUse.filter(entry =>
467
+ !(entry.hooks && entry.hooks.some(h => h.command && h.command.includes('review-gate.sh')))
468
+ );
469
+ // Add canonical review-gate entry with correct matcher and exit $? fix
470
+ settings.hooks.PreToolUse.push({
471
+ matcher: 'Bash',
472
+ hooks: [reviewGateCheckHook]
473
+ });
474
+ const verb2 = prevPreCount > settings.hooks.PreToolUse.length ? 'actualizado' : 'instalado';
475
+ console.log(` ${green}✓${reset} Review gate (PreToolUse) ${verb2}`);
476
+
477
+ // Install skill-gate hooks in settings.json
478
+ // These hooks enforce skill discovery before code changes (only when ELSABRO mode is active)
479
+ const skillGateCheckHook = {
480
+ type: 'command',
481
+ command: 'if [ -f "$CLAUDE_PROJECT_DIR/hooks/skill-gate.sh" ]; then bash "$CLAUDE_PROJECT_DIR/hooks/skill-gate.sh" check; exit $?; fi; exit 0'
482
+ };
483
+
484
+ // Merge PreToolUse hooks for skill-gate: remove stale entries, then add correct one
485
+ const prevSkillGateCount = settings.hooks.PreToolUse.length;
486
+ settings.hooks.PreToolUse = settings.hooks.PreToolUse.filter(entry =>
487
+ !(entry.hooks && entry.hooks.some(h => h.command && h.command.includes('skill-gate.sh')))
488
+ );
489
+ settings.hooks.PreToolUse.push({
490
+ matcher: 'Write|Edit',
491
+ hooks: [skillGateCheckHook]
492
+ });
493
+ const verb3 = prevSkillGateCount > settings.hooks.PreToolUse.length ? 'actualizado' : 'instalado';
494
+ console.log(` ${green}✓${reset} Skill gate (PreToolUse) ${verb3}`);
495
+
425
496
  // Add version tracking
426
497
  settings.elsabro = {
427
498
  version: pkg.version,
@@ -10,6 +10,9 @@ allowed-tools:
10
10
  - Grep
11
11
  - WebSearch
12
12
  - Task
13
+ - TeamCreate
14
+ - TeamDelete
15
+ - SendMessage
13
16
  - AskUserQuestion
14
17
  - mcp__plugin_context7_context7__*
15
18
  argument-hint: "[descripción del problema]"
@@ -133,25 +136,51 @@ El debugger actualizará el archivo de sesión con:
133
136
  - Fix implementado
134
137
  - Verificación realizada
135
138
 
136
- ## Paso 5: Code Review (OBLIGATORIO)
139
+ ## Paso 5: Code Review (OBLIGATORIO - Agent Teams LITE)
137
140
 
138
- **REGLA:** Después de implementar cualquier fix, SIEMPRE ejecutar code review antes de reportar al usuario.
139
-
140
- ```
141
- Task(pr-review-toolkit:code-reviewer):
142
- Revisa los cambios del fix aplicado.
143
- Busca bugs, code smells, seguridad.
144
- Archivos modificados: [lista de archivos cambiados]
145
- ```
146
-
147
- Si el review encuentra issues, corregir ANTES de reportar al usuario.
141
+ **REGLA:** Después de implementar cualquier fix, SIEMPRE ejecutar code review con Agent Teams antes de reportar al usuario.
148
142
 
149
143
  ```javascript
144
+ // Crear team de review LITE (3 agentes esenciales)
145
+ TeamCreate({ team_name: "elsabro-review-lite", description: "Quick review - 3 agentes especializados" })
146
+
147
+ // Lanzar 3 teammates en paralelo (UN SOLO MENSAJE)
148
+ Task({
149
+ subagent_type: "pr-review-toolkit:code-reviewer",
150
+ team_name: "elsabro-review-lite",
151
+ name: "quality-reviewer",
152
+ model: "sonnet",
153
+ prompt: "Review code quality of the fix: bugs, code smells, naming, patterns. Focus on modified files. DO NOT ask questions."
154
+ })
155
+ Task({
156
+ subagent_type: "pr-review-toolkit:silent-failure-hunter",
157
+ team_name: "elsabro-review-lite",
158
+ name: "failure-hunter",
159
+ model: "sonnet",
160
+ prompt: "Review fix for silent failures, error handling gaps, dangerous fallbacks. Focus on modified files. DO NOT ask questions."
161
+ })
162
+ Task({
163
+ subagent_type: "pr-review-toolkit:pr-test-analyzer",
164
+ team_name: "elsabro-review-lite",
165
+ name: "test-analyzer",
166
+ model: "sonnet",
167
+ prompt: "Analyze test coverage for the fix: edge cases, regression tests needed. Focus on modified files. DO NOT ask questions."
168
+ })
169
+
170
+ // Consolidar hallazgos. Si issues criticos > 0: fix y re-review
171
+ // Shutdown team
172
+ for (const name of ["quality-reviewer", "failure-hunter", "test-analyzer"]) {
173
+ SendMessage({ type: "shutdown_request", recipient: name, content: "Review complete" })
174
+ }
175
+ TeamDelete()
176
+
150
177
  // MARCAR: code review pasó (para code_review_gate en siguiente_paso)
151
178
  state.current_flow.code_review_passed = true;
152
179
  Write(".elsabro/state.json", JSON.stringify(state, null, 2));
153
180
  ```
154
181
 
182
+ Si alguno de los 3 reviewers encuentra issues criticos, corregir y re-review ANTES de reportar al usuario.
183
+
155
184
  ## Paso 6: Verificar con Usuario
156
185
 
157
186
  Una vez el debugger reporta fix:
@@ -177,18 +206,27 @@ Para verificar:
177
206
  ```
178
207
  ¿Se implementó un fix (modo find_and_fix)?
179
208
 
180
- ├─ SÍ → ¿Se ejecutó code review (Paso 5)?
209
+ ├─ SÍ → ¿Se ejecutó code review con Agent Teams LITE (Paso 5)?
181
210
  │ │
182
211
  │ ├─ NO → EJECUTAR AHORA:
183
- │ │ Task(pr-review-toolkit:code-reviewer)
184
- │ │ Si issues > 0: fix y re-review
185
- │ │ Solo cuando issues == 0: continuar
212
+ │ │ TeamCreate("elsabro-review-lite")
213
+ │ │ + 3 teammates: quality-reviewer, failure-hunter, test-analyzer
214
+ │ │ Consolidar hallazgos
215
+ │ │ Si issues criticos > 0: fix y re-review
216
+ │ │ Solo cuando issues == 0: shutdown + TeamDelete + continuar
186
217
  │ │
187
- │ └─ SÍ, issues == 0 → Continuar
218
+ │ └─ SÍ, issues == 0, team deleted → Continuar
188
219
 
189
220
  └─ NO (solo find_root_cause_only) → Continuar (no aplica)
190
221
  ```
191
222
 
223
+ **Agent Teams LITE — 3 Reviewers:**
224
+ | Teammate | Plugin | Foco |
225
+ |----------|--------|------|
226
+ | quality-reviewer | pr-review-toolkit:code-reviewer | bugs, patterns, naming |
227
+ | failure-hunter | pr-review-toolkit:silent-failure-hunter | error handling, fallbacks |
228
+ | test-analyzer | pr-review-toolkit:pr-test-analyzer | coverage, edge cases |
229
+
192
230
  **VIOLACIÓN CRÍTICA**: Reportar fix sin code review = ABORTAR OPERACIÓN
193
231
  </code_review_gate>
194
232