@saulwade/swl-ses 2.5.3 → 2.6.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/CLAUDE.md +192 -192
- package/README.md +600 -600
- package/agentes/auto-evolucion-swl.md +27 -3
- package/bin/swl-ses.js +32 -7
- package/comandos/swl/actualizar.md +174 -174
- package/comandos/swl/adoptar-proyecto.md +265 -265
- package/comandos/swl/aprender.md +836 -823
- package/comandos/swl/aprobar-plan.md +146 -146
- package/comandos/swl/auditar-deps.md +134 -134
- package/comandos/swl/autoresearch.md +264 -264
- package/comandos/swl/ayuda.md +224 -224
- package/comandos/swl/brainstorm.md +51 -51
- package/comandos/swl/briefing.md +119 -119
- package/comandos/swl/checkpoint.md +325 -325
- package/comandos/swl/claudemd.md +234 -234
- package/comandos/swl/compactar.md +310 -310
- package/comandos/swl/configurar-ci.md +235 -235
- package/comandos/swl/contexto.md +110 -110
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/crear-skill.md +292 -292
- package/comandos/swl/cron.md +194 -194
- package/comandos/swl/deuda-codigo.md +97 -97
- package/comandos/swl/discutir-fase.md +169 -169
- package/comandos/swl/ejecutar-fase.md +233 -233
- package/comandos/swl/evaluar-skill.md +520 -505
- package/comandos/swl/evolucion-continua.md +73 -0
- package/comandos/swl/evolucionar.md +267 -254
- package/comandos/swl/exportar-vault.md +583 -583
- package/comandos/swl/fix.md +118 -118
- package/comandos/swl/gateway.md +158 -158
- package/comandos/swl/inbox.md +116 -116
- package/comandos/swl/instalar.md +220 -220
- package/comandos/swl/instintos.md +86 -86
- package/comandos/swl/mapear-codebase.md +312 -312
- package/comandos/swl/mcp-status.md +175 -175
- package/comandos/swl/modelo.md +100 -100
- package/comandos/swl/nemesis.md +433 -433
- package/comandos/swl/notificaciones.md +299 -299
- package/comandos/swl/nuevo-proyecto.md +251 -251
- package/comandos/swl/planear-fase.md +263 -263
- package/comandos/swl/plugins.md +256 -256
- package/comandos/swl/predecir.md +169 -169
- package/comandos/swl/reflect-skills.md +125 -125
- package/comandos/swl/release.md +450 -450
- package/comandos/swl/revisar-impacto.md +201 -201
- package/comandos/swl/revisar.md +330 -330
- package/comandos/swl/seguridad.md +189 -189
- package/comandos/swl/sesiones.md +200 -200
- package/comandos/swl/skill-search.md +113 -113
- package/comandos/swl/status.md +343 -343
- package/comandos/swl/verificar.md +817 -817
- package/comandos/swl/wiki.md +620 -620
- package/gateway/cron/jobs.example.json +12 -0
- package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -276
- package/habilidades/autoresearch/SKILL.md +3 -2
- package/habilidades/benchmark-memoria/SKILL.md +7 -7
- package/habilidades/changelog-generator/SKILL.md +174 -174
- package/habilidades/changelog-generator/scripts/parse-commits.js +2 -1
- package/habilidades/checkpoints-verificacion/SKILL.md +6 -0
- package/habilidades/context-builder/SKILL.md +4 -0
- package/habilidades/doubt-driven-review/SKILL.md +207 -191
- package/habilidades/drift-detection/SKILL.md +6 -1
- package/habilidades/ejecutar-fase/SKILL.md +6 -6
- package/habilidades/eval-framework/SKILL.md +8 -3
- package/habilidades/harness-claude-code/SKILL.md +312 -308
- package/habilidades/infra-github-actions/SKILL.md +4 -3
- package/habilidades/instalar-sistema/SKILL.md +227 -223
- package/habilidades/memoria-busqueda/SKILL.md +31 -39
- package/habilidades/planear-fase/SKILL.md +358 -350
- package/habilidades/proceso-ddia-fundamentos/SKILL.md +3 -2
- package/habilidades/swl-claudemd/SKILL.md +6 -7
- package/habilidades/swl-dashboard/SKILL.md +11 -43
- package/habilidades/tdd-workflow/SKILL.md +749 -744
- package/habilidades/validacion-ci-sistema/SKILL.md +1 -1
- package/hooks/agente-lifecycle.js +2 -1
- package/hooks/aiisms-detector.js +13 -4
- package/hooks/audit-trail.js +2 -1
- package/hooks/auto-consolidacion.js +2 -1
- package/hooks/captura-acciones-post.js +2 -1
- package/hooks/captura-acciones-session.js +2 -1
- package/hooks/captura-feedback-usuario.js +3 -2
- package/hooks/claudemd-bloat-detector.js +12 -3
- package/hooks/claudemd-duplicacion-detector.js +13 -3
- package/hooks/contexto-iteracion.js +2 -1
- package/hooks/degradacion-instintos.js +2 -1
- package/hooks/extraccion-aprendizajes.js +109 -15
- package/hooks/grafo-contexto.js +2 -1
- package/hooks/guardrail-modelo.js +2 -1
- package/hooks/inbox-aviso.js +2 -1
- package/hooks/inyeccion-contexto.js +2 -1
- package/hooks/lib/agent-matcher.js +2 -1
- package/hooks/lib/agent-routing.js +2 -1
- package/hooks/lib/autonomia.js +5 -3
- package/hooks/lib/captura-acciones.js +2 -1
- package/hooks/lib/consolidation-lock.js +21 -10
- package/hooks/lib/etapa-auto-evolucion.js +10 -4
- package/hooks/lib/etapa-metricas.js +2 -1
- package/hooks/lib/etapa-perfil-usuario.js +20 -4
- package/hooks/lib/evolution-tracker.js +2 -1
- package/hooks/lib/gateway-notify.js +193 -179
- package/hooks/lib/loop-telemetry.js +5 -4
- package/hooks/lib/mcp-health.js +2 -1
- package/hooks/lib/memory-search.js +4 -0
- package/hooks/lib/merkle-audit.js +58 -6
- package/hooks/lib/nudge-tracker.js +2 -1
- package/hooks/lib/otlp-exporter.js +2 -1
- package/hooks/lib/propose-step.js +3 -2
- package/hooks/lib/raiz-proyecto.js +102 -0
- package/hooks/lib/run-log.js +2 -1
- package/hooks/lib/singleton-guard.js +218 -27
- package/hooks/lib/telegram-cliente.js +17 -8
- package/hooks/preservar-estado-pre-compact.js +2 -1
- package/hooks/proteccion-rutas.js +59 -3
- package/hooks/registro-turnos.js +2 -1
- package/hooks/resumen-sesion.js +2 -1
- package/hooks/risk-scoring.js +2 -1
- package/hooks/rotar-audit-auto.js +46 -20
- package/hooks/session-briefing.js +127 -1
- package/hooks/spec-gate.js +2 -1
- package/hooks/sugerir-contribuir.js +6 -3
- package/hooks/sugerir-regenerar-inventario.js +3 -2
- package/hooks/tdd-gate.js +2 -1
- package/hooks/telemetria-agentes.js +2 -1
- package/hooks/telemetria-skill-routing.js +2 -1
- package/hooks/tracking-costos.js +4 -3
- package/hooks/validar-formato-post-subagente.js +2 -1
- package/hooks/validar-intent-spec.js +2 -1
- package/hooks/validar-memoria-hook.js +13 -3
- package/hooks/validar-planning-paths.js +2 -1
- package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +53 -0
- package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +372 -0
- package/instintos/perfil-usuario.yaml +506 -3
- package/instintos/proyecto.yaml +78 -0
- package/llms.txt +2 -2
- package/manifiestos/canonical-hashes.json +335 -3
- package/manifiestos/modulos.json +19 -14
- package/manifiestos/planning-paths.json +1 -0
- package/manifiestos/skills-lock.json +50 -50
- package/package.json +2 -3
- package/plugin.json +2 -2
- package/scripts/actualizar.js +3 -0
- package/scripts/auditar-clases-conocidas.js +32 -4
- package/scripts/benchmark-memoria.js +1 -0
- package/scripts/cli/autonomia.js +23 -0
- package/scripts/cli/benchmark-memoria.js +37 -0
- package/scripts/cli/ciclo-autonomo.js +73 -0
- package/scripts/cli/ciclo-fase-b.js +102 -0
- package/scripts/cli/guardrail-metrics.js +39 -0
- package/scripts/cli/loop-telemetry.js +4 -2
- package/scripts/cli/memoria-search.js +69 -0
- package/scripts/cli/nudge-accionar.js +39 -0
- package/scripts/cli/run-eval.js +38 -0
- package/scripts/cli/run-skill-evals.js +13 -2
- package/scripts/derivar-feature-list.js +15 -14
- package/scripts/desinstalar.js +11 -0
- package/scripts/doctor.js +24 -10
- package/scripts/instalador.js +85 -7
- package/scripts/lib/activar-hooks-proyecto.js +12 -0
- package/scripts/lib/auditar-invocaciones-comandos.js +96 -6
- package/scripts/lib/ciclo-autonomo/candidatos.js +174 -0
- package/scripts/lib/ciclo-autonomo/config.js +165 -0
- package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -0
- package/scripts/lib/ciclo-autonomo/fallback.js +77 -0
- package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -0
- package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -0
- package/scripts/lib/ciclo-autonomo/index.js +301 -0
- package/scripts/lib/ciclo-autonomo/lock.js +124 -0
- package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -0
- package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -0
- package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -0
- package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -0
- package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -0
- package/scripts/lib/estado.js +9 -0
- package/scripts/lib/gitignore-manifest.js +8 -1
- package/scripts/lib/hooks-settings.js +45 -0
- package/scripts/rotar-audit-logs.js +48 -2
- package/scripts/run-eval.js +1 -0
- package/scripts/run-skill-evals.js +287 -8
- package/scripts/smoke-test.js +16 -8
- package/scripts/tui/pantallas/install-wizard.js +403 -347
- package/scripts/validar.js +40 -1
package/comandos/swl/revisar.md
CHANGED
|
@@ -1,330 +1,330 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: swl:revisar
|
|
3
|
-
description: >
|
|
4
|
-
Ejecuta revisión de código especializada por tecnología. Detecta automáticamente
|
|
5
|
-
el stack del proyecto o acepta argumento explícito. Delega al agente revisor
|
|
6
|
-
correspondiente con el skill de lenguaje cargado. Produce reporte con severidades.
|
|
7
|
-
allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Agent"]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# /swl:revisar — Revisión de código por tecnología
|
|
11
|
-
|
|
12
|
-
Comando unificado de revisión que detecta la tecnología y delega al revisor especializado.
|
|
13
|
-
Soporta revisión genérica, por lenguaje, por stack y por archivo específico.
|
|
14
|
-
|
|
15
|
-
## Uso
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
/swl:revisar — Auto-detecta stack y revisa todo
|
|
19
|
-
/swl:revisar python — Revisión Python (FastAPI, Django, patrones)
|
|
20
|
-
/swl:revisar java — Revisión Java (Spring Boot, JPA, streams)
|
|
21
|
-
/swl:revisar go — Revisión Go (concurrency, error handling, interfaces)
|
|
22
|
-
/swl:revisar rust — Revisión Rust (ownership, unsafe, async)
|
|
23
|
-
/swl:revisar csharp — Revisión C# (ASP.NET Core, EF Core, async)
|
|
24
|
-
/swl:revisar kotlin — Revisión Kotlin (coroutines, Compose, null safety)
|
|
25
|
-
/swl:revisar swift — Revisión Swift (SwiftUI, actors, concurrency)
|
|
26
|
-
/swl:revisar php — Revisión PHP (Laravel, Eloquent, seguridad)
|
|
27
|
-
/swl:revisar nextjs — Revisión Next.js (RSC, Server Actions, caching)
|
|
28
|
-
/swl:revisar react — Revisión React (hooks, state, performance)
|
|
29
|
-
/swl:revisar angular — Revisión Angular (signals, standalone, OnPush)
|
|
30
|
-
/swl:revisar typescript — Revisión TypeScript (tipos, patrones, testing)
|
|
31
|
-
/swl:revisar sql — Revisión SQL/PostgreSQL (queries, indices, N+1)
|
|
32
|
-
/swl:revisar seguridad — Revisión de seguridad OWASP (todos los lenguajes)
|
|
33
|
-
/swl:revisar <archivo> — Revisa un archivo específico (detecta lenguaje por extensión)
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Paso 0 — Detección de tecnología
|
|
37
|
-
|
|
38
|
-
Si no se proporciona argumento, detectar automáticamente:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
ls package.json pyproject.toml requirements.txt go.mod Cargo.toml \
|
|
42
|
-
*.csproj *.sln build.gradle.kts Package.swift composer.json 2>/dev/null
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Reglas de detección:
|
|
46
|
-
- `package.json` con `"next"` → nextjs
|
|
47
|
-
- `package.json` con `"@angular/core"` → angular
|
|
48
|
-
- `package.json` con `"react"` (sin next ni angular) → react
|
|
49
|
-
- `package.json` sin frameworks conocidos → typescript
|
|
50
|
-
- `pyproject.toml` o `requirements.txt` → python
|
|
51
|
-
- `go.mod` → go
|
|
52
|
-
- `Cargo.toml` → rust
|
|
53
|
-
- `*.csproj` o `*.sln` → csharp
|
|
54
|
-
- `build.gradle.kts` → kotlin
|
|
55
|
-
- `Package.swift` → swift
|
|
56
|
-
- `composer.json` → php
|
|
57
|
-
- Múltiples detectados → revisión en paralelo (ver Paso 3b)
|
|
58
|
-
|
|
59
|
-
Si se proporciona un archivo como argumento, detectar por extension:
|
|
60
|
-
`.py` → python | `.go` → go | `.rs` → rust | `.cs` → csharp |
|
|
61
|
-
`.kt` → kotlin | `.swift` → swift | `.php` → php |
|
|
62
|
-
`.ts` / `.tsx` → typescript | `.sql` → sql |
|
|
63
|
-
`.js` / `.jsx` → typescript
|
|
64
|
-
|
|
65
|
-
## Paso 1 — Determinar alcance
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
# Archivos cambiados respecto a main (preferido)
|
|
69
|
-
git diff --name-only main...HEAD 2>/dev/null
|
|
70
|
-
|
|
71
|
-
# O archivos staged
|
|
72
|
-
git diff --cached --name-only 2>/dev/null
|
|
73
|
-
|
|
74
|
-
# O commits recientes si lo anterior esta vacio
|
|
75
|
-
git diff --name-only HEAD~10 2>/dev/null
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Filtrar por extensión del lenguaje detectado. Anunciar al usuario:
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
Revisión [tecnología]: [N] archivos en alcance
|
|
82
|
-
Agente: [nombre-del-revisor]
|
|
83
|
-
Skills: [lista de skills que cargará]
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Paso 2 — Tabla de delegación
|
|
87
|
-
|
|
88
|
-
| Argumento | Agente | Skills principales |
|
|
89
|
-
|--------------|---------------------------|-----------------------------------------------------------------|
|
|
90
|
-
| `python` | `revisor-codigo-swl` | `patrones-python`, `fastapi-experto`, `testing-python` |
|
|
91
|
-
| `java` | `revisor-java-swl` | `java-experto`, `java-testing`, `java-patrones` |
|
|
92
|
-
| `go` | `revisor-go-swl` | `go-experto`, `go-testing`, `go-patrones` |
|
|
93
|
-
| `rust` | `revisor-rust-swl` | `rust-experto`, `rust-testing`, `rust-patrones` |
|
|
94
|
-
| `csharp` | `revisor-csharp-swl` | `csharp-experto`, `csharp-testing`, `csharp-patrones` |
|
|
95
|
-
| `kotlin` | `revisor-kotlin-swl` | `kotlin-experto`, `kotlin-testing`, `kotlin-compose` |
|
|
96
|
-
| `swift` | `revisor-swift-swl` | `swift-experto`, `swift-testing`, `swift-patrones` |
|
|
97
|
-
| `php` | `revisor-php-swl` | `php-experto`, `php-testing`, `php-patrones` |
|
|
98
|
-
| `nextjs` | `revisor-nextjs-swl` | `nextjs-experto`, `nextjs-testing`, `nextjs-patrones` |
|
|
99
|
-
| `react` | `revisor-react-swl` | `react-experto`, `react-optimizacion`, `typescript-avanzado` |
|
|
100
|
-
| `angular` | `revisor-angular-swl` | `angular-moderno`, `angular-avanzado`, `typescript-avanzado` |
|
|
101
|
-
| `typescript` | `revisor-typescript-swl` | `typescript-avanzado`, `node-experto` |
|
|
102
|
-
| `sql` | `revisor-codigo-swl` | `postgresql-experto`, `sql-optimizacion` |
|
|
103
|
-
| `seguridad` | `revisor-seguridad-swl` | `checklist-seguridad`, `auth-patrones`, `iam-secretos` |
|
|
104
|
-
|
|
105
|
-
## Paso 3a — Revisión de un solo stack
|
|
106
|
-
|
|
107
|
-
Construir la instrucción al agente y delegarla con `Agent()`:
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
Revisa el código [tecnología] del proyecto.
|
|
111
|
-
|
|
112
|
-
Archivos a revisar:
|
|
113
|
-
[lista de archivos filtrados por extension]
|
|
114
|
-
|
|
115
|
-
Carga antes de empezar:
|
|
116
|
-
[skills segun tabla del Paso 2]
|
|
117
|
-
|
|
118
|
-
Aplica revision en dos capas:
|
|
119
|
-
|
|
120
|
-
CAPA 1 — Correctitud y spec compliance:
|
|
121
|
-
- La implementación cumple los requisitos visibles (PLAN.md, criterios de aceptación)
|
|
122
|
-
- No hay scope creep ni código muerto
|
|
123
|
-
- Los casos borde están manejados
|
|
124
|
-
|
|
125
|
-
CAPA 2 — Calidad idiomática del lenguaje [tecnología]:
|
|
126
|
-
- Patrones idiomáticos del lenguaje (no anti-patrones)
|
|
127
|
-
- Error handling correcto y explícito
|
|
128
|
-
- Sin código de debug (console.log, print, breakpoints)
|
|
129
|
-
- Cobertura de tests básica
|
|
130
|
-
- Performance obvios: N+1, loops anidados O(n²), carga innecesaria en memoria
|
|
131
|
-
- Seguridad básica: inputs validados, sin secrets hardcodeados, sin SQL crudo
|
|
132
|
-
|
|
133
|
-
Reporta cada hallazgo con:
|
|
134
|
-
- Archivo y línea exacta
|
|
135
|
-
- Severidad: CRITICO | IMPORTANTE | MENOR
|
|
136
|
-
- Descripción clara del problema
|
|
137
|
-
- Corrección recomendada con fragmento de código cuando aplique
|
|
138
|
-
|
|
139
|
-
Al final, produce un veredicto: APROBADO | CON OBSERVACIONES | RECHAZADO
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Paso 3b — Revisión de múltiples stacks (auto-detect)
|
|
143
|
-
|
|
144
|
-
Si el proyecto tiene varios lenguajes, lanzar los revisores en paralelo en un mismo mensaje:
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
Agent("revisor-python", description="Revisar archivos Python del proyecto")
|
|
148
|
-
Agent("revisor-frontend", description="Revisar archivos TypeScript/React/Angular del proyecto")
|
|
149
|
-
Agent("revisor-sql", description="Revisar queries SQL y migraciones del proyecto")
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
Consolidar los reportes de todos los agentes en un solo reporte final al usuario.
|
|
153
|
-
|
|
154
|
-
## Paso 4 — Verificaciones automáticas por tecnología
|
|
155
|
-
|
|
156
|
-
Ejecutar ANTES de la revisión manual del agente. Los resultados se incluyen en el reporte.
|
|
157
|
-
|
|
158
|
-
### Python
|
|
159
|
-
```bash
|
|
160
|
-
ruff check . --output-format=concise 2>/dev/null
|
|
161
|
-
mypy . --ignore-missing-imports --no-error-summary 2>/dev/null
|
|
162
|
-
pytest --tb=short -q 2>/dev/null
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Go
|
|
166
|
-
```bash
|
|
167
|
-
go vet ./... 2>/dev/null
|
|
168
|
-
go test -race ./... 2>/dev/null
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Rust
|
|
172
|
-
```bash
|
|
173
|
-
cargo clippy -- -D warnings 2>/dev/null
|
|
174
|
-
cargo test 2>/dev/null
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### C#
|
|
178
|
-
```bash
|
|
179
|
-
dotnet build -warnaserror 2>/dev/null
|
|
180
|
-
dotnet test 2>/dev/null
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### TypeScript / React / Angular / Next.js
|
|
184
|
-
```bash
|
|
185
|
-
npx tsc --noEmit 2>/dev/null
|
|
186
|
-
npx eslint src/ --format=compact 2>/dev/null
|
|
187
|
-
npm test -- --watchAll=false --passWithNoTests 2>/dev/null
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### PHP
|
|
191
|
-
```bash
|
|
192
|
-
vendor/bin/phpstan analyse 2>/dev/null
|
|
193
|
-
php artisan test 2>/dev/null
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Kotlin
|
|
197
|
-
```bash
|
|
198
|
-
./gradlew detekt 2>/dev/null
|
|
199
|
-
./gradlew test 2>/dev/null
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
### Swift
|
|
203
|
-
```bash
|
|
204
|
-
swift build 2>/dev/null
|
|
205
|
-
swift test 2>/dev/null
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### SQL / PostgreSQL
|
|
209
|
-
```bash
|
|
210
|
-
# Buscar queries dentro de loops (potencial N+1)
|
|
211
|
-
grep -rn "execute\|query\|SELECT" --include="*.py" --include="*.ts" . 2>/dev/null | head -40
|
|
212
|
-
# Buscar SQL crudo sin parametrizar
|
|
213
|
-
grep -rn 'f"SELECT\|f"INSERT\|f"UPDATE\|"SELECT.*+\|"INSERT.*+' . 2>/dev/null
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Seguridad (todos los lenguajes)
|
|
217
|
-
```bash
|
|
218
|
-
# Secrets potenciales
|
|
219
|
-
git grep -i "password\|secret\|api_key\|token\s*=" -- "*.py" "*.ts" "*.js" "*.go" 2>/dev/null | grep -v "test\|spec\|\.example" | head -20
|
|
220
|
-
# Funciones peligrosas
|
|
221
|
-
grep -rn "eval(\|exec(\|shell=True\|pickle.loads\|yaml.load(" . 2>/dev/null | grep -v "test\|spec" | head -20
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
## Paso 5 — Reporte consolidado
|
|
225
|
-
|
|
226
|
-
Produce el reporte directamente en la conversación con este formato:
|
|
227
|
-
|
|
228
|
-
```markdown
|
|
229
|
-
# Revisión de Código — [tecnología]
|
|
230
|
-
|
|
231
|
-
**Proyecto**: [nombre del directorio raíz]
|
|
232
|
-
**Fecha**: [fecha actual]
|
|
233
|
-
**Archivos revisados**: [N]
|
|
234
|
-
|
|
235
|
-
## Resumen
|
|
236
|
-
|
|
237
|
-
| Severidad | Cantidad |
|
|
238
|
-
|------------|----------|
|
|
239
|
-
| Crítico | N |
|
|
240
|
-
| Importante | N |
|
|
241
|
-
| Menor | N |
|
|
242
|
-
|
|
243
|
-
## Verificaciones automáticas
|
|
244
|
-
|
|
245
|
-
| Verificación | Resultado |
|
|
246
|
-
|--------------|------------------------|
|
|
247
|
-
| Linter | PASA / N errores |
|
|
248
|
-
| Type check | PASA / N errores |
|
|
249
|
-
| Tests | N pasan, N fallan |
|
|
250
|
-
| Build | PASA / FALLA |
|
|
251
|
-
|
|
252
|
-
## Hallazgos
|
|
253
|
-
|
|
254
|
-
### Crítico
|
|
255
|
-
|
|
256
|
-
1. **[archivo:línea]** — [descripción]
|
|
257
|
-
```[lang]
|
|
258
|
-
// código problemático
|
|
259
|
-
```
|
|
260
|
-
**Corrección:**
|
|
261
|
-
```[lang]
|
|
262
|
-
// código corregido
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
### Importante
|
|
266
|
-
|
|
267
|
-
[idem]
|
|
268
|
-
|
|
269
|
-
### Menor
|
|
270
|
-
|
|
271
|
-
[idem]
|
|
272
|
-
|
|
273
|
-
## Veredicto
|
|
274
|
-
|
|
275
|
-
**[APROBADO | CON OBSERVACIONES | RECHAZADO]**
|
|
276
|
-
|
|
277
|
-
[Una línea explicando el veredicto]
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
## Paso 6 — Revisión multi-agente en paralelo (modo profundo)
|
|
281
|
-
|
|
282
|
-
Cuando el usuario dice `/swl:revisar profundo`, `/swl:revisar --profundo` o
|
|
283
|
-
"revisión completa con todos los agentes":
|
|
284
|
-
|
|
285
|
-
Lanzar **en paralelo** hasta 5 revisores especializados (además del revisor de stack):
|
|
286
|
-
|
|
287
|
-
```
|
|
288
|
-
Agent("revisor-seguridad-swl", "Auditar seguridad OWASP de archivos cambiados")
|
|
289
|
-
Agent("revisor-codigo-swl", "Auditar errores silenciosos: catch vacíos, except:pass, error checks sin log")
|
|
290
|
-
Agent("tdd-qa-swl", "Evaluar cobertura de tests: gaps críticos, tests faltantes para código nuevo")
|
|
291
|
-
Agent("documentador-swl", "Verificar documentación afectada por los cambios: README, CHANGELOG, docstrings")
|
|
292
|
-
Agent("rendimiento-swl", "Detectar N+1, loops O(n²), carga innecesaria en memoria en archivos cambiados")
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
Cada agente recibe:
|
|
296
|
-
- Lista de archivos en alcance (del Paso 1)
|
|
297
|
-
- Instrucción de reportar SOLO hallazgos con confianza >= 80%
|
|
298
|
-
- Formato de salida: severidad + archivo:línea + descripción + corrección
|
|
299
|
-
|
|
300
|
-
Consolidar todos los reportes en un solo reporte con secciones por agente:
|
|
301
|
-
|
|
302
|
-
```markdown
|
|
303
|
-
## Revisión multi-agente — [N] agentes, [M] hallazgos
|
|
304
|
-
|
|
305
|
-
### Seguridad (revisor-seguridad-swl)
|
|
306
|
-
[hallazgos o "Sin hallazgos"]
|
|
307
|
-
|
|
308
|
-
### Errores silenciosos (revisor-codigo-swl)
|
|
309
|
-
[hallazgos o "Sin hallazgos"]
|
|
310
|
-
|
|
311
|
-
### Cobertura de tests (tdd-qa-swl)
|
|
312
|
-
[hallazgos o "Sin hallazgos"]
|
|
313
|
-
|
|
314
|
-
### Documentación afectada (documentador-swl)
|
|
315
|
-
[hallazgos o "Sin hallazgos"]
|
|
316
|
-
|
|
317
|
-
### Rendimiento (rendimiento-swl)
|
|
318
|
-
[hallazgos o "Sin hallazgos"]
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
## Reglas de comportamiento
|
|
322
|
-
|
|
323
|
-
- NUNCA corregir código directamente — solo identificar y recomendar.
|
|
324
|
-
- SIEMPRE ejecutar las verificaciones automáticas del Paso 4 antes de delegar al agente.
|
|
325
|
-
- Si los tests fallan es CRITICO sin excepción, independientemente del lenguaje.
|
|
326
|
-
- Para SQL: buscar siempre N+1 queries y SQL crudo sin parametrizar.
|
|
327
|
-
- Para seguridad: aplicar `Skill("checklist-seguridad")` y verificar OWASP Top 10.
|
|
328
|
-
- Si el argumento es un archivo que no existe, informar y terminar.
|
|
329
|
-
- El reporte se emite siempre en la conversación. No crear archivo a menos que el usuario lo pida.
|
|
330
|
-
- En modo profundo: lanzar los 5 agentes en paralelo para máxima eficiencia.
|
|
1
|
+
---
|
|
2
|
+
name: swl:revisar
|
|
3
|
+
description: >
|
|
4
|
+
Ejecuta revisión de código especializada por tecnología. Detecta automáticamente
|
|
5
|
+
el stack del proyecto o acepta argumento explícito. Delega al agente revisor
|
|
6
|
+
correspondiente con el skill de lenguaje cargado. Produce reporte con severidades.
|
|
7
|
+
allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Agent"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /swl:revisar — Revisión de código por tecnología
|
|
11
|
+
|
|
12
|
+
Comando unificado de revisión que detecta la tecnología y delega al revisor especializado.
|
|
13
|
+
Soporta revisión genérica, por lenguaje, por stack y por archivo específico.
|
|
14
|
+
|
|
15
|
+
## Uso
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/swl:revisar — Auto-detecta stack y revisa todo
|
|
19
|
+
/swl:revisar python — Revisión Python (FastAPI, Django, patrones)
|
|
20
|
+
/swl:revisar java — Revisión Java (Spring Boot, JPA, streams)
|
|
21
|
+
/swl:revisar go — Revisión Go (concurrency, error handling, interfaces)
|
|
22
|
+
/swl:revisar rust — Revisión Rust (ownership, unsafe, async)
|
|
23
|
+
/swl:revisar csharp — Revisión C# (ASP.NET Core, EF Core, async)
|
|
24
|
+
/swl:revisar kotlin — Revisión Kotlin (coroutines, Compose, null safety)
|
|
25
|
+
/swl:revisar swift — Revisión Swift (SwiftUI, actors, concurrency)
|
|
26
|
+
/swl:revisar php — Revisión PHP (Laravel, Eloquent, seguridad)
|
|
27
|
+
/swl:revisar nextjs — Revisión Next.js (RSC, Server Actions, caching)
|
|
28
|
+
/swl:revisar react — Revisión React (hooks, state, performance)
|
|
29
|
+
/swl:revisar angular — Revisión Angular (signals, standalone, OnPush)
|
|
30
|
+
/swl:revisar typescript — Revisión TypeScript (tipos, patrones, testing)
|
|
31
|
+
/swl:revisar sql — Revisión SQL/PostgreSQL (queries, indices, N+1)
|
|
32
|
+
/swl:revisar seguridad — Revisión de seguridad OWASP (todos los lenguajes)
|
|
33
|
+
/swl:revisar <archivo> — Revisa un archivo específico (detecta lenguaje por extensión)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Paso 0 — Detección de tecnología
|
|
37
|
+
|
|
38
|
+
Si no se proporciona argumento, detectar automáticamente:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
ls package.json pyproject.toml requirements.txt go.mod Cargo.toml \
|
|
42
|
+
*.csproj *.sln build.gradle.kts Package.swift composer.json 2>/dev/null
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Reglas de detección:
|
|
46
|
+
- `package.json` con `"next"` → nextjs
|
|
47
|
+
- `package.json` con `"@angular/core"` → angular
|
|
48
|
+
- `package.json` con `"react"` (sin next ni angular) → react
|
|
49
|
+
- `package.json` sin frameworks conocidos → typescript
|
|
50
|
+
- `pyproject.toml` o `requirements.txt` → python
|
|
51
|
+
- `go.mod` → go
|
|
52
|
+
- `Cargo.toml` → rust
|
|
53
|
+
- `*.csproj` o `*.sln` → csharp
|
|
54
|
+
- `build.gradle.kts` → kotlin
|
|
55
|
+
- `Package.swift` → swift
|
|
56
|
+
- `composer.json` → php
|
|
57
|
+
- Múltiples detectados → revisión en paralelo (ver Paso 3b)
|
|
58
|
+
|
|
59
|
+
Si se proporciona un archivo como argumento, detectar por extension:
|
|
60
|
+
`.py` → python | `.go` → go | `.rs` → rust | `.cs` → csharp |
|
|
61
|
+
`.kt` → kotlin | `.swift` → swift | `.php` → php |
|
|
62
|
+
`.ts` / `.tsx` → typescript | `.sql` → sql |
|
|
63
|
+
`.js` / `.jsx` → typescript
|
|
64
|
+
|
|
65
|
+
## Paso 1 — Determinar alcance
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Archivos cambiados respecto a main (preferido)
|
|
69
|
+
git diff --name-only main...HEAD 2>/dev/null
|
|
70
|
+
|
|
71
|
+
# O archivos staged
|
|
72
|
+
git diff --cached --name-only 2>/dev/null
|
|
73
|
+
|
|
74
|
+
# O commits recientes si lo anterior esta vacio
|
|
75
|
+
git diff --name-only HEAD~10 2>/dev/null
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Filtrar por extensión del lenguaje detectado. Anunciar al usuario:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Revisión [tecnología]: [N] archivos en alcance
|
|
82
|
+
Agente: [nombre-del-revisor]
|
|
83
|
+
Skills: [lista de skills que cargará]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Paso 2 — Tabla de delegación
|
|
87
|
+
|
|
88
|
+
| Argumento | Agente | Skills principales |
|
|
89
|
+
|--------------|---------------------------|-----------------------------------------------------------------|
|
|
90
|
+
| `python` | `revisor-codigo-swl` | `patrones-python`, `fastapi-experto`, `testing-python` |
|
|
91
|
+
| `java` | `revisor-java-swl` | `java-experto`, `java-testing`, `java-patrones` |
|
|
92
|
+
| `go` | `revisor-go-swl` | `go-experto`, `go-testing`, `go-patrones` |
|
|
93
|
+
| `rust` | `revisor-rust-swl` | `rust-experto`, `rust-testing`, `rust-patrones` |
|
|
94
|
+
| `csharp` | `revisor-csharp-swl` | `csharp-experto`, `csharp-testing`, `csharp-patrones` |
|
|
95
|
+
| `kotlin` | `revisor-kotlin-swl` | `kotlin-experto`, `kotlin-testing`, `kotlin-compose` |
|
|
96
|
+
| `swift` | `revisor-swift-swl` | `swift-experto`, `swift-testing`, `swift-patrones` |
|
|
97
|
+
| `php` | `revisor-php-swl` | `php-experto`, `php-testing`, `php-patrones` |
|
|
98
|
+
| `nextjs` | `revisor-nextjs-swl` | `nextjs-experto`, `nextjs-testing`, `nextjs-patrones` |
|
|
99
|
+
| `react` | `revisor-react-swl` | `react-experto`, `react-optimizacion`, `typescript-avanzado` |
|
|
100
|
+
| `angular` | `revisor-angular-swl` | `angular-moderno`, `angular-avanzado`, `typescript-avanzado` |
|
|
101
|
+
| `typescript` | `revisor-typescript-swl` | `typescript-avanzado`, `node-experto` |
|
|
102
|
+
| `sql` | `revisor-codigo-swl` | `postgresql-experto`, `sql-optimizacion` |
|
|
103
|
+
| `seguridad` | `revisor-seguridad-swl` | `checklist-seguridad`, `auth-patrones`, `iam-secretos` |
|
|
104
|
+
|
|
105
|
+
## Paso 3a — Revisión de un solo stack
|
|
106
|
+
|
|
107
|
+
Construir la instrucción al agente y delegarla con `Agent()`:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
Revisa el código [tecnología] del proyecto.
|
|
111
|
+
|
|
112
|
+
Archivos a revisar:
|
|
113
|
+
[lista de archivos filtrados por extension]
|
|
114
|
+
|
|
115
|
+
Carga antes de empezar:
|
|
116
|
+
[skills segun tabla del Paso 2]
|
|
117
|
+
|
|
118
|
+
Aplica revision en dos capas:
|
|
119
|
+
|
|
120
|
+
CAPA 1 — Correctitud y spec compliance:
|
|
121
|
+
- La implementación cumple los requisitos visibles (PLAN.md, criterios de aceptación)
|
|
122
|
+
- No hay scope creep ni código muerto
|
|
123
|
+
- Los casos borde están manejados
|
|
124
|
+
|
|
125
|
+
CAPA 2 — Calidad idiomática del lenguaje [tecnología]:
|
|
126
|
+
- Patrones idiomáticos del lenguaje (no anti-patrones)
|
|
127
|
+
- Error handling correcto y explícito
|
|
128
|
+
- Sin código de debug (console.log, print, breakpoints)
|
|
129
|
+
- Cobertura de tests básica
|
|
130
|
+
- Performance obvios: N+1, loops anidados O(n²), carga innecesaria en memoria
|
|
131
|
+
- Seguridad básica: inputs validados, sin secrets hardcodeados, sin SQL crudo
|
|
132
|
+
|
|
133
|
+
Reporta cada hallazgo con:
|
|
134
|
+
- Archivo y línea exacta
|
|
135
|
+
- Severidad: CRITICO | IMPORTANTE | MENOR
|
|
136
|
+
- Descripción clara del problema
|
|
137
|
+
- Corrección recomendada con fragmento de código cuando aplique
|
|
138
|
+
|
|
139
|
+
Al final, produce un veredicto: APROBADO | CON OBSERVACIONES | RECHAZADO
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Paso 3b — Revisión de múltiples stacks (auto-detect)
|
|
143
|
+
|
|
144
|
+
Si el proyecto tiene varios lenguajes, lanzar los revisores en paralelo en un mismo mensaje:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
Agent("revisor-python", description="Revisar archivos Python del proyecto")
|
|
148
|
+
Agent("revisor-frontend", description="Revisar archivos TypeScript/React/Angular del proyecto")
|
|
149
|
+
Agent("revisor-sql", description="Revisar queries SQL y migraciones del proyecto")
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Consolidar los reportes de todos los agentes en un solo reporte final al usuario.
|
|
153
|
+
|
|
154
|
+
## Paso 4 — Verificaciones automáticas por tecnología
|
|
155
|
+
|
|
156
|
+
Ejecutar ANTES de la revisión manual del agente. Los resultados se incluyen en el reporte.
|
|
157
|
+
|
|
158
|
+
### Python
|
|
159
|
+
```bash
|
|
160
|
+
ruff check . --output-format=concise 2>/dev/null
|
|
161
|
+
mypy . --ignore-missing-imports --no-error-summary 2>/dev/null
|
|
162
|
+
pytest --tb=short -q 2>/dev/null
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Go
|
|
166
|
+
```bash
|
|
167
|
+
go vet ./... 2>/dev/null
|
|
168
|
+
go test -race ./... 2>/dev/null
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Rust
|
|
172
|
+
```bash
|
|
173
|
+
cargo clippy -- -D warnings 2>/dev/null
|
|
174
|
+
cargo test 2>/dev/null
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### C#
|
|
178
|
+
```bash
|
|
179
|
+
dotnet build -warnaserror 2>/dev/null
|
|
180
|
+
dotnet test 2>/dev/null
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### TypeScript / React / Angular / Next.js
|
|
184
|
+
```bash
|
|
185
|
+
npx tsc --noEmit 2>/dev/null
|
|
186
|
+
npx eslint src/ --format=compact 2>/dev/null
|
|
187
|
+
npm test -- --watchAll=false --passWithNoTests 2>/dev/null
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### PHP
|
|
191
|
+
```bash
|
|
192
|
+
vendor/bin/phpstan analyse 2>/dev/null
|
|
193
|
+
php artisan test 2>/dev/null
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Kotlin
|
|
197
|
+
```bash
|
|
198
|
+
./gradlew detekt 2>/dev/null
|
|
199
|
+
./gradlew test 2>/dev/null
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Swift
|
|
203
|
+
```bash
|
|
204
|
+
swift build 2>/dev/null
|
|
205
|
+
swift test 2>/dev/null
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### SQL / PostgreSQL
|
|
209
|
+
```bash
|
|
210
|
+
# Buscar queries dentro de loops (potencial N+1)
|
|
211
|
+
grep -rn "execute\|query\|SELECT" --include="*.py" --include="*.ts" . 2>/dev/null | head -40
|
|
212
|
+
# Buscar SQL crudo sin parametrizar
|
|
213
|
+
grep -rn 'f"SELECT\|f"INSERT\|f"UPDATE\|"SELECT.*+\|"INSERT.*+' . 2>/dev/null
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Seguridad (todos los lenguajes)
|
|
217
|
+
```bash
|
|
218
|
+
# Secrets potenciales
|
|
219
|
+
git grep -i "password\|secret\|api_key\|token\s*=" -- "*.py" "*.ts" "*.js" "*.go" 2>/dev/null | grep -v "test\|spec\|\.example" | head -20
|
|
220
|
+
# Funciones peligrosas
|
|
221
|
+
grep -rn "eval(\|exec(\|shell=True\|pickle.loads\|yaml.load(" . 2>/dev/null | grep -v "test\|spec" | head -20
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Paso 5 — Reporte consolidado
|
|
225
|
+
|
|
226
|
+
Produce el reporte directamente en la conversación con este formato:
|
|
227
|
+
|
|
228
|
+
```markdown
|
|
229
|
+
# Revisión de Código — [tecnología]
|
|
230
|
+
|
|
231
|
+
**Proyecto**: [nombre del directorio raíz]
|
|
232
|
+
**Fecha**: [fecha actual]
|
|
233
|
+
**Archivos revisados**: [N]
|
|
234
|
+
|
|
235
|
+
## Resumen
|
|
236
|
+
|
|
237
|
+
| Severidad | Cantidad |
|
|
238
|
+
|------------|----------|
|
|
239
|
+
| Crítico | N |
|
|
240
|
+
| Importante | N |
|
|
241
|
+
| Menor | N |
|
|
242
|
+
|
|
243
|
+
## Verificaciones automáticas
|
|
244
|
+
|
|
245
|
+
| Verificación | Resultado |
|
|
246
|
+
|--------------|------------------------|
|
|
247
|
+
| Linter | PASA / N errores |
|
|
248
|
+
| Type check | PASA / N errores |
|
|
249
|
+
| Tests | N pasan, N fallan |
|
|
250
|
+
| Build | PASA / FALLA |
|
|
251
|
+
|
|
252
|
+
## Hallazgos
|
|
253
|
+
|
|
254
|
+
### Crítico
|
|
255
|
+
|
|
256
|
+
1. **[archivo:línea]** — [descripción]
|
|
257
|
+
```[lang]
|
|
258
|
+
// código problemático
|
|
259
|
+
```
|
|
260
|
+
**Corrección:**
|
|
261
|
+
```[lang]
|
|
262
|
+
// código corregido
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Importante
|
|
266
|
+
|
|
267
|
+
[idem]
|
|
268
|
+
|
|
269
|
+
### Menor
|
|
270
|
+
|
|
271
|
+
[idem]
|
|
272
|
+
|
|
273
|
+
## Veredicto
|
|
274
|
+
|
|
275
|
+
**[APROBADO | CON OBSERVACIONES | RECHAZADO]**
|
|
276
|
+
|
|
277
|
+
[Una línea explicando el veredicto]
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Paso 6 — Revisión multi-agente en paralelo (modo profundo)
|
|
281
|
+
|
|
282
|
+
Cuando el usuario dice `/swl:revisar profundo`, `/swl:revisar --profundo` o
|
|
283
|
+
"revisión completa con todos los agentes":
|
|
284
|
+
|
|
285
|
+
Lanzar **en paralelo** hasta 5 revisores especializados (además del revisor de stack):
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
Agent("revisor-seguridad-swl", "Auditar seguridad OWASP de archivos cambiados")
|
|
289
|
+
Agent("revisor-codigo-swl", "Auditar errores silenciosos: catch vacíos, except:pass, error checks sin log")
|
|
290
|
+
Agent("tdd-qa-swl", "Evaluar cobertura de tests: gaps críticos, tests faltantes para código nuevo")
|
|
291
|
+
Agent("documentador-swl", "Verificar documentación afectada por los cambios: README, CHANGELOG, docstrings")
|
|
292
|
+
Agent("rendimiento-swl", "Detectar N+1, loops O(n²), carga innecesaria en memoria en archivos cambiados")
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Cada agente recibe:
|
|
296
|
+
- Lista de archivos en alcance (del Paso 1)
|
|
297
|
+
- Instrucción de reportar SOLO hallazgos con confianza >= 80%
|
|
298
|
+
- Formato de salida: severidad + archivo:línea + descripción + corrección
|
|
299
|
+
|
|
300
|
+
Consolidar todos los reportes en un solo reporte con secciones por agente:
|
|
301
|
+
|
|
302
|
+
```markdown
|
|
303
|
+
## Revisión multi-agente — [N] agentes, [M] hallazgos
|
|
304
|
+
|
|
305
|
+
### Seguridad (revisor-seguridad-swl)
|
|
306
|
+
[hallazgos o "Sin hallazgos"]
|
|
307
|
+
|
|
308
|
+
### Errores silenciosos (revisor-codigo-swl)
|
|
309
|
+
[hallazgos o "Sin hallazgos"]
|
|
310
|
+
|
|
311
|
+
### Cobertura de tests (tdd-qa-swl)
|
|
312
|
+
[hallazgos o "Sin hallazgos"]
|
|
313
|
+
|
|
314
|
+
### Documentación afectada (documentador-swl)
|
|
315
|
+
[hallazgos o "Sin hallazgos"]
|
|
316
|
+
|
|
317
|
+
### Rendimiento (rendimiento-swl)
|
|
318
|
+
[hallazgos o "Sin hallazgos"]
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
## Reglas de comportamiento
|
|
322
|
+
|
|
323
|
+
- NUNCA corregir código directamente — solo identificar y recomendar.
|
|
324
|
+
- SIEMPRE ejecutar las verificaciones automáticas del Paso 4 antes de delegar al agente.
|
|
325
|
+
- Si los tests fallan es CRITICO sin excepción, independientemente del lenguaje.
|
|
326
|
+
- Para SQL: buscar siempre N+1 queries y SQL crudo sin parametrizar.
|
|
327
|
+
- Para seguridad: aplicar `Skill("checklist-seguridad")` y verificar OWASP Top 10.
|
|
328
|
+
- Si el argumento es un archivo que no existe, informar y terminar.
|
|
329
|
+
- El reporte se emite siempre en la conversación. No crear archivo a menos que el usuario lo pida.
|
|
330
|
+
- En modo profundo: lanzar los 5 agentes en paralelo para máxima eficiencia.
|