@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.
Files changed (181) hide show
  1. package/CLAUDE.md +192 -192
  2. package/README.md +600 -600
  3. package/agentes/auto-evolucion-swl.md +27 -3
  4. package/bin/swl-ses.js +32 -7
  5. package/comandos/swl/actualizar.md +174 -174
  6. package/comandos/swl/adoptar-proyecto.md +265 -265
  7. package/comandos/swl/aprender.md +836 -823
  8. package/comandos/swl/aprobar-plan.md +146 -146
  9. package/comandos/swl/auditar-deps.md +134 -134
  10. package/comandos/swl/autoresearch.md +264 -264
  11. package/comandos/swl/ayuda.md +224 -224
  12. package/comandos/swl/brainstorm.md +51 -51
  13. package/comandos/swl/briefing.md +119 -119
  14. package/comandos/swl/checkpoint.md +325 -325
  15. package/comandos/swl/claudemd.md +234 -234
  16. package/comandos/swl/compactar.md +310 -310
  17. package/comandos/swl/configurar-ci.md +235 -235
  18. package/comandos/swl/contexto.md +110 -110
  19. package/comandos/swl/contribuir.md +233 -233
  20. package/comandos/swl/crear-skill.md +292 -292
  21. package/comandos/swl/cron.md +194 -194
  22. package/comandos/swl/deuda-codigo.md +97 -97
  23. package/comandos/swl/discutir-fase.md +169 -169
  24. package/comandos/swl/ejecutar-fase.md +233 -233
  25. package/comandos/swl/evaluar-skill.md +520 -505
  26. package/comandos/swl/evolucion-continua.md +73 -0
  27. package/comandos/swl/evolucionar.md +267 -254
  28. package/comandos/swl/exportar-vault.md +583 -583
  29. package/comandos/swl/fix.md +118 -118
  30. package/comandos/swl/gateway.md +158 -158
  31. package/comandos/swl/inbox.md +116 -116
  32. package/comandos/swl/instalar.md +220 -220
  33. package/comandos/swl/instintos.md +86 -86
  34. package/comandos/swl/mapear-codebase.md +312 -312
  35. package/comandos/swl/mcp-status.md +175 -175
  36. package/comandos/swl/modelo.md +100 -100
  37. package/comandos/swl/nemesis.md +433 -433
  38. package/comandos/swl/notificaciones.md +299 -299
  39. package/comandos/swl/nuevo-proyecto.md +251 -251
  40. package/comandos/swl/planear-fase.md +263 -263
  41. package/comandos/swl/plugins.md +256 -256
  42. package/comandos/swl/predecir.md +169 -169
  43. package/comandos/swl/reflect-skills.md +125 -125
  44. package/comandos/swl/release.md +450 -450
  45. package/comandos/swl/revisar-impacto.md +201 -201
  46. package/comandos/swl/revisar.md +330 -330
  47. package/comandos/swl/seguridad.md +189 -189
  48. package/comandos/swl/sesiones.md +200 -200
  49. package/comandos/swl/skill-search.md +113 -113
  50. package/comandos/swl/status.md +343 -343
  51. package/comandos/swl/verificar.md +817 -817
  52. package/comandos/swl/wiki.md +620 -620
  53. package/gateway/cron/jobs.example.json +12 -0
  54. package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -276
  55. package/habilidades/autoresearch/SKILL.md +3 -2
  56. package/habilidades/benchmark-memoria/SKILL.md +7 -7
  57. package/habilidades/changelog-generator/SKILL.md +174 -174
  58. package/habilidades/changelog-generator/scripts/parse-commits.js +2 -1
  59. package/habilidades/checkpoints-verificacion/SKILL.md +6 -0
  60. package/habilidades/context-builder/SKILL.md +4 -0
  61. package/habilidades/doubt-driven-review/SKILL.md +207 -191
  62. package/habilidades/drift-detection/SKILL.md +6 -1
  63. package/habilidades/ejecutar-fase/SKILL.md +6 -6
  64. package/habilidades/eval-framework/SKILL.md +8 -3
  65. package/habilidades/harness-claude-code/SKILL.md +312 -308
  66. package/habilidades/infra-github-actions/SKILL.md +4 -3
  67. package/habilidades/instalar-sistema/SKILL.md +227 -223
  68. package/habilidades/memoria-busqueda/SKILL.md +31 -39
  69. package/habilidades/planear-fase/SKILL.md +358 -350
  70. package/habilidades/proceso-ddia-fundamentos/SKILL.md +3 -2
  71. package/habilidades/swl-claudemd/SKILL.md +6 -7
  72. package/habilidades/swl-dashboard/SKILL.md +11 -43
  73. package/habilidades/tdd-workflow/SKILL.md +749 -744
  74. package/habilidades/validacion-ci-sistema/SKILL.md +1 -1
  75. package/hooks/agente-lifecycle.js +2 -1
  76. package/hooks/aiisms-detector.js +13 -4
  77. package/hooks/audit-trail.js +2 -1
  78. package/hooks/auto-consolidacion.js +2 -1
  79. package/hooks/captura-acciones-post.js +2 -1
  80. package/hooks/captura-acciones-session.js +2 -1
  81. package/hooks/captura-feedback-usuario.js +3 -2
  82. package/hooks/claudemd-bloat-detector.js +12 -3
  83. package/hooks/claudemd-duplicacion-detector.js +13 -3
  84. package/hooks/contexto-iteracion.js +2 -1
  85. package/hooks/degradacion-instintos.js +2 -1
  86. package/hooks/extraccion-aprendizajes.js +109 -15
  87. package/hooks/grafo-contexto.js +2 -1
  88. package/hooks/guardrail-modelo.js +2 -1
  89. package/hooks/inbox-aviso.js +2 -1
  90. package/hooks/inyeccion-contexto.js +2 -1
  91. package/hooks/lib/agent-matcher.js +2 -1
  92. package/hooks/lib/agent-routing.js +2 -1
  93. package/hooks/lib/autonomia.js +5 -3
  94. package/hooks/lib/captura-acciones.js +2 -1
  95. package/hooks/lib/consolidation-lock.js +21 -10
  96. package/hooks/lib/etapa-auto-evolucion.js +10 -4
  97. package/hooks/lib/etapa-metricas.js +2 -1
  98. package/hooks/lib/etapa-perfil-usuario.js +20 -4
  99. package/hooks/lib/evolution-tracker.js +2 -1
  100. package/hooks/lib/gateway-notify.js +193 -179
  101. package/hooks/lib/loop-telemetry.js +5 -4
  102. package/hooks/lib/mcp-health.js +2 -1
  103. package/hooks/lib/memory-search.js +4 -0
  104. package/hooks/lib/merkle-audit.js +58 -6
  105. package/hooks/lib/nudge-tracker.js +2 -1
  106. package/hooks/lib/otlp-exporter.js +2 -1
  107. package/hooks/lib/propose-step.js +3 -2
  108. package/hooks/lib/raiz-proyecto.js +102 -0
  109. package/hooks/lib/run-log.js +2 -1
  110. package/hooks/lib/singleton-guard.js +218 -27
  111. package/hooks/lib/telegram-cliente.js +17 -8
  112. package/hooks/preservar-estado-pre-compact.js +2 -1
  113. package/hooks/proteccion-rutas.js +59 -3
  114. package/hooks/registro-turnos.js +2 -1
  115. package/hooks/resumen-sesion.js +2 -1
  116. package/hooks/risk-scoring.js +2 -1
  117. package/hooks/rotar-audit-auto.js +46 -20
  118. package/hooks/session-briefing.js +127 -1
  119. package/hooks/spec-gate.js +2 -1
  120. package/hooks/sugerir-contribuir.js +6 -3
  121. package/hooks/sugerir-regenerar-inventario.js +3 -2
  122. package/hooks/tdd-gate.js +2 -1
  123. package/hooks/telemetria-agentes.js +2 -1
  124. package/hooks/telemetria-skill-routing.js +2 -1
  125. package/hooks/tracking-costos.js +4 -3
  126. package/hooks/validar-formato-post-subagente.js +2 -1
  127. package/hooks/validar-intent-spec.js +2 -1
  128. package/hooks/validar-memoria-hook.js +13 -3
  129. package/hooks/validar-planning-paths.js +2 -1
  130. package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +53 -0
  131. package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +372 -0
  132. package/instintos/perfil-usuario.yaml +506 -3
  133. package/instintos/proyecto.yaml +78 -0
  134. package/llms.txt +2 -2
  135. package/manifiestos/canonical-hashes.json +335 -3
  136. package/manifiestos/modulos.json +19 -14
  137. package/manifiestos/planning-paths.json +1 -0
  138. package/manifiestos/skills-lock.json +50 -50
  139. package/package.json +2 -3
  140. package/plugin.json +2 -2
  141. package/scripts/actualizar.js +3 -0
  142. package/scripts/auditar-clases-conocidas.js +32 -4
  143. package/scripts/benchmark-memoria.js +1 -0
  144. package/scripts/cli/autonomia.js +23 -0
  145. package/scripts/cli/benchmark-memoria.js +37 -0
  146. package/scripts/cli/ciclo-autonomo.js +73 -0
  147. package/scripts/cli/ciclo-fase-b.js +102 -0
  148. package/scripts/cli/guardrail-metrics.js +39 -0
  149. package/scripts/cli/loop-telemetry.js +4 -2
  150. package/scripts/cli/memoria-search.js +69 -0
  151. package/scripts/cli/nudge-accionar.js +39 -0
  152. package/scripts/cli/run-eval.js +38 -0
  153. package/scripts/cli/run-skill-evals.js +13 -2
  154. package/scripts/derivar-feature-list.js +15 -14
  155. package/scripts/desinstalar.js +11 -0
  156. package/scripts/doctor.js +24 -10
  157. package/scripts/instalador.js +85 -7
  158. package/scripts/lib/activar-hooks-proyecto.js +12 -0
  159. package/scripts/lib/auditar-invocaciones-comandos.js +96 -6
  160. package/scripts/lib/ciclo-autonomo/candidatos.js +174 -0
  161. package/scripts/lib/ciclo-autonomo/config.js +165 -0
  162. package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -0
  163. package/scripts/lib/ciclo-autonomo/fallback.js +77 -0
  164. package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -0
  165. package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -0
  166. package/scripts/lib/ciclo-autonomo/index.js +301 -0
  167. package/scripts/lib/ciclo-autonomo/lock.js +124 -0
  168. package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -0
  169. package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -0
  170. package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -0
  171. package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -0
  172. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -0
  173. package/scripts/lib/estado.js +9 -0
  174. package/scripts/lib/gitignore-manifest.js +8 -1
  175. package/scripts/lib/hooks-settings.js +45 -0
  176. package/scripts/rotar-audit-logs.js +48 -2
  177. package/scripts/run-eval.js +1 -0
  178. package/scripts/run-skill-evals.js +287 -8
  179. package/scripts/smoke-test.js +16 -8
  180. package/scripts/tui/pantallas/install-wizard.js +403 -347
  181. package/scripts/validar.js +40 -1
@@ -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.