@saulwade/swl-ses 1.0.1 → 1.1.2

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 (113) hide show
  1. package/CLAUDE.md +8 -5
  2. package/README.md +3 -3
  3. package/agentes/accesibilidad-wcag-swl.md +5 -7
  4. package/agentes/arquitecto-swl.md +5 -3
  5. package/agentes/auto-evolucion-swl.md +42 -12
  6. package/agentes/backend-api-swl.md +5 -3
  7. package/agentes/backend-csharp-swl.md +5 -3
  8. package/agentes/backend-go-swl.md +5 -3
  9. package/agentes/backend-java-swl.md +5 -3
  10. package/agentes/backend-node-swl.md +5 -3
  11. package/agentes/backend-python-swl.md +5 -3
  12. package/agentes/backend-rust-swl.md +5 -3
  13. package/agentes/backend-workers-swl.md +5 -3
  14. package/agentes/cloud-infra-swl.md +5 -6
  15. package/agentes/consolidador-swl.md +5 -3
  16. package/agentes/datos-swl.md +5 -7
  17. package/agentes/depurador-swl.md +6 -3
  18. package/agentes/devops-ci-swl.md +5 -3
  19. package/agentes/disenador-ui-swl.md +5 -7
  20. package/agentes/documentador-swl.md +5 -3
  21. package/agentes/frontend-angular-swl.md +5 -11
  22. package/agentes/frontend-css-swl.md +5 -9
  23. package/agentes/frontend-react-swl.md +5 -9
  24. package/agentes/frontend-swl.md +5 -9
  25. package/agentes/frontend-tailwind-swl.md +5 -9
  26. package/agentes/implementador-swl.md +6 -3
  27. package/agentes/investigador-swl.md +5 -3
  28. package/agentes/investigador-ux-swl.md +5 -9
  29. package/agentes/llm-apps-swl.md +5 -3
  30. package/agentes/migrador-swl.md +6 -3
  31. package/agentes/mobile-android-swl.md +5 -3
  32. package/agentes/mobile-cross-swl.md +5 -3
  33. package/agentes/mobile-ios-swl.md +5 -3
  34. package/agentes/mobile-testing-swl.md +5 -3
  35. package/agentes/notificador-swl.md +5 -3
  36. package/agentes/observabilidad-swl.md +5 -3
  37. package/agentes/orquestador-swl.md +29 -8
  38. package/agentes/pagos-swl.md +5 -3
  39. package/agentes/perfilador-usuario-swl.md +4 -2
  40. package/agentes/planificador-swl.md +5 -3
  41. package/agentes/producto-prd-swl.md +5 -3
  42. package/agentes/red-team-swl.md +4 -2
  43. package/agentes/release-manager-swl.md +6 -8
  44. package/agentes/rendimiento-swl.md +5 -6
  45. package/agentes/resolutor-build-swl.md +5 -3
  46. package/agentes/revisor-angular-swl.md +5 -3
  47. package/agentes/revisor-codigo-swl.md +90 -4
  48. package/agentes/revisor-csharp-swl.md +5 -3
  49. package/agentes/revisor-go-swl.md +5 -3
  50. package/agentes/revisor-java-swl.md +5 -3
  51. package/agentes/revisor-kotlin-swl.md +5 -3
  52. package/agentes/revisor-nextjs-swl.md +5 -3
  53. package/agentes/revisor-php-swl.md +5 -3
  54. package/agentes/revisor-react-swl.md +5 -3
  55. package/agentes/revisor-rust-swl.md +5 -3
  56. package/agentes/revisor-seguridad-swl.md +5 -3
  57. package/agentes/revisor-swift-swl.md +5 -3
  58. package/agentes/revisor-typescript-swl.md +5 -3
  59. package/agentes/sre-swl.md +5 -3
  60. package/agentes/tdd-qa-swl.md +5 -3
  61. package/agentes/ux-disenador-swl.md +5 -9
  62. package/comandos/swl/evaluar-skill.md +18 -0
  63. package/comandos/swl/evolucion-estado.md +49 -0
  64. package/comandos/swl/release.md +77 -1
  65. package/comandos/swl/salud.md +23 -0
  66. package/habilidades/checklist-seguridad/SKILL.md +57 -1
  67. package/habilidades/extractor-de-aprendizajes/SKILL.md +15 -5
  68. package/habilidades/fastapi-experto/SKILL.md +10 -1
  69. package/habilidades/manejo-errores/.evolved.json +8 -8
  70. package/habilidades/manejo-errores/SKILL.md +63 -4
  71. package/habilidades/patrones-python/SKILL.md +5 -4
  72. package/habilidades/release-semver/.evolved.json +8 -8
  73. package/habilidades/release-semver/SKILL.md +85 -1
  74. package/hooks/auto-evolucion.js +35 -1
  75. package/hooks/clasificador-mensajes.js +50 -3
  76. package/hooks/lib/agent-routing.js +107 -0
  77. package/hooks/lib/delegation-tracker.js +162 -44
  78. package/hooks/lib/evolution-tracker.js +12 -3
  79. package/hooks/lib/memory-search.js +59 -1
  80. package/hooks/lib/nudge-tracker.js +10 -1
  81. package/hooks/lib/provenance-tracker.js +11 -3
  82. package/hooks/lib/text-similarity.js +241 -0
  83. package/hooks/metricas-evolucion.js +168 -1
  84. package/hooks/monitor-contexto.js +54 -6
  85. package/hooks/preservar-estado-pre-compact.js +11 -1
  86. package/hooks/risk-scoring.js +10 -1
  87. package/hooks/tracking-costos.js +10 -1
  88. package/hooks/validar-formato-post-subagente.js +140 -0
  89. package/hooks/validar-memoria-hook.js +218 -0
  90. package/manifiestos/agent-output-schemas.json +57 -0
  91. package/manifiestos/hooks-config.json +18 -0
  92. package/manifiestos/modulos.json +3 -0
  93. package/manifiestos/skills-lock.json +1065 -0
  94. package/package.json +1 -1
  95. package/plugin.json +1 -1
  96. package/reglas/arquitectura.md +20 -0
  97. package/reglas/fragmentos-compartidos.md +152 -0
  98. package/reglas/gobernanza.md +10 -1
  99. package/reglas/seguridad-agentes.md +12 -0
  100. package/reglas/skills-estandar.md +19 -0
  101. package/schemas/agent-frontmatter.schema.json +18 -0
  102. package/scripts/auditar-agentes-gaps.js +9 -1
  103. package/scripts/auditar-cobertura-frameworks.js +9 -1
  104. package/scripts/auditar-skills-gaps.js +9 -1
  105. package/scripts/bootstrap-instintos.js +11 -1
  106. package/scripts/generar-inventario.js +112 -9
  107. package/scripts/generar-matriz-lenguajes.js +271 -0
  108. package/scripts/generar-skills-lock.js +190 -0
  109. package/scripts/lib/estado.js +12 -2
  110. package/scripts/lib/gitignore-manifest.js +32 -2
  111. package/scripts/migrar-csv-a-array.js +168 -0
  112. package/scripts/migrar-fase-dominio.js +201 -0
  113. package/scripts/publicar.js +88 -18
@@ -7,7 +7,7 @@ description: >
7
7
  pagos, se implementen suscripciones, se configuren webhooks, o se diseñe
8
8
  el flujo de pago de un e-commerce. NO invocar para lógica de negocio sin
9
9
  componentes de pago — usar implementador-swl o backend-python-swl.
10
- tools: Read, Write, Edit, Bash, Grep, Glob, Skill
10
+ tools: [Read, Write, Edit, Bash, Grep, Glob, Skill]
11
11
  model: claude-sonnet-4-6
12
12
  modeloAlterno: claude-opus-4-7
13
13
  ventanaContexto: 200k
@@ -15,8 +15,8 @@ permissionMode: acceptEdits
15
15
  color: green
16
16
  version: 1.0.0
17
17
  nivelRiesgo: ALTO
18
- skillsInvocables: stripe-pagos, auth-patrones, checklist-seguridad, fastapi-experto, manejo-errores, typescript-avanzado
19
- skillsRestringidos: angular-moderno, mobile-flutter
18
+ skillsInvocables: [stripe-pagos, auth-patrones, checklist-seguridad, fastapi-experto, manejo-errores, typescript-avanzado]
19
+ skillsRestringidos: [angular-moderno, mobile-flutter]
20
20
  permisosRed: false
21
21
  permisosEscritura: true
22
22
  permisosComandos: true
@@ -25,6 +25,8 @@ toolBudget:
25
25
  standard: 30
26
26
  complex: 55
27
27
  evolvable: false # nivelRiesgo=ALTO
28
+ fase: implement
29
+ dominio: backend
28
30
  exclusiones:
29
31
  - "No invocar para lógica de negocio sin componentes de pago — usar implementador-swl o backend-python-swl."
30
32
  - "No invocar para frontend ni mobile puro — si se necesita un checkout UI, invocar junto con frontend-*-swl."
@@ -11,7 +11,7 @@ description: >
11
11
  de un proyecto nuevo para adaptar comportamiento. NO inferir datos personales
12
12
  sensibles (ubicación exacta, datos financieros, salud) — solo preferencias de
13
13
  ingeniería y colaboración.
14
- tools: Read, Write, Edit, Grep, Glob, Bash
14
+ tools: [Read, Write, Edit, Grep, Glob, Bash, Skill]
15
15
  model: claude-sonnet-4-6
16
16
  modeloAlterno: claude-opus-4-7
17
17
  ventanaContexto: 200k
@@ -19,11 +19,13 @@ permissionMode: acceptEdits
19
19
  color: indigo
20
20
  version: 1.0.0
21
21
  nivelRiesgo: MEDIO
22
- skillsInvocables: perfil-usuario, aprendizaje-continuo, memoria-busqueda, privacy-memoria
22
+ skillsInvocables: [perfil-usuario, aprendizaje-continuo, memoria-busqueda, privacy-memoria]
23
23
  permisosRed: false
24
24
  permisosEscritura: true
25
25
  permisosComandos: false
26
26
  evolvable: false # nivelRiesgo=MEDIO (conservador)
27
+ fase: meta
28
+ dominio: meta
27
29
  exclusiones:
28
30
  - "No invocar para implementación de código o features — este agente observa y modela al usuario, no construye software."
29
31
  - "No invocar para generar documentación técnica del sistema — ese trabajo corresponde a documentador-swl."
@@ -6,7 +6,7 @@ description: >
6
6
  Invocar cuando existe un requisito aprobado que necesita convertirse en trabajo
7
7
  concreto para el implementador. No invocar para preguntas de arquitectura (usar
8
8
  arquitecto-swl) ni para implementación directa (usar implementador-swl).
9
- tools: Read, Grep, Glob, Write
9
+ tools: [Read, Grep, Glob, Write, Skill]
10
10
  model: claude-opus-4-7
11
11
  permissionMode: plan
12
12
  modeloAlterno: claude-haiku-4-5-20251001
@@ -14,8 +14,8 @@ ventanaContexto: 200k
14
14
  color: green
15
15
  version: 1.2.0
16
16
  nivelRiesgo: BAJO
17
- skillsInvocables: todos
18
- skillsRestringidos: ninguno
17
+ skillsInvocables: [todos]
18
+ skillsRestringidos: []
19
19
  permisosRed: false
20
20
  permisosEscritura: true
21
21
  permisosComandos: false
@@ -29,6 +29,8 @@ toolBudget:
29
29
  standard: 20
30
30
  complex: 40
31
31
  evolvable: true # nivelRiesgo=BAJO
32
+ fase: plan
33
+ dominio: process
32
34
  exclusiones:
33
35
  - "No invocar para preguntas de arquitectura — esas decisiones corresponden a arquitecto-swl; el planificador convierte decisiones ya tomadas en tareas concretas."
34
36
  - "No invocar para implementación directa: el planificador produce PLAN.md, no código; la implementación corresponde a implementador-swl."
@@ -7,7 +7,7 @@ description: >
7
7
  y antes de planificador-swl cuando el proyecto requiere requisitos formales
8
8
  de producto (no solo técnicos). NO invocar para bugs o tareas técnicas puras
9
9
  donde el planificador puede trabajar directamente del requisito.
10
- tools: Read, Write, Grep, Glob, WebSearch
10
+ tools: [Read, Write, Grep, Glob, WebSearch]
11
11
  model: claude-opus-4-7
12
12
  modeloAlterno: claude-sonnet-4-6
13
13
  ventanaContexto: 200k
@@ -15,12 +15,14 @@ permissionMode: plan
15
15
  color: indigo
16
16
  version: 1.0.0
17
17
  nivelRiesgo: BAJO
18
- skillsInvocables: ux-diseno, api-rest-diseno, accesibilidad-a11y, pdf, pptx, docx, extraccion-documentos
19
- skillsRestringidos: ninguno
18
+ skillsInvocables: [ux-diseno, api-rest-diseno, accesibilidad-a11y, pdf, pptx, docx, extraccion-documentos]
19
+ skillsRestringidos: []
20
20
  permisosRed: true
21
21
  permisosEscritura: true
22
22
  permisosComandos: false
23
23
  evolvable: true # nivelRiesgo=BAJO
24
+ fase: discover
25
+ dominio: process
24
26
  exclusiones:
25
27
  - "No invocar para bugs o tareas técnicas puras sin componente de producto — en esos casos el planificador-swl puede trabajar directamente del requisito técnico."
26
28
  - "No invocar cuando el discovery no ha ocurrido aún: se necesita output de investigador-swl o investigador-ux-swl antes de producir un PRD."
@@ -9,18 +9,20 @@ description: >
9
9
  de amenazas al scanner, o en intervalos regulares vía /swl:cron. NO invocar
10
10
  en operación normal del usuario — este agente escribe fixtures a
11
11
  .planning/red-team/ con contenido adversarial intencionado.
12
- tools: Read, Write, Edit, Bash
12
+ tools: [Read, Write, Edit, Bash, Skill]
13
13
  model: claude-sonnet-4-6
14
14
  ventanaContexto: 200k
15
15
  permissionMode: acceptEdits
16
16
  color: red
17
17
  version: 1.0.0
18
18
  nivelRiesgo: MEDIO
19
- skillsInvocables: privacy-memoria
19
+ skillsInvocables: [privacy-memoria]
20
20
  permisosRed: false
21
21
  permisosEscritura: true
22
22
  permisosComandos: true
23
23
  evolvable: false # bloqueado por lista (funcion sistemica)
24
+ fase: verify
25
+ dominio: security
24
26
  exclusiones:
25
27
  - "No invocar para implementar las correcciones de los ataques detectados — ese trabajo corresponde a implementador-swl o al agente de stack; este agente solo ataca y reporta."
26
28
  - "No invocar para auditorías de seguridad de código de aplicación del usuario — ese trabajo corresponde a revisor-seguridad-swl."
@@ -11,7 +11,7 @@ description: >
11
11
  el procedimiento de rollback de una feature. No invocar para debugging de código
12
12
  (usar depurador-swl), ni para configurar los pipelines CI/CD subyacentes
13
13
  (usar devops-ci-swl) — este agente orquesta el proceso, no la infraestructura.
14
- tools: Read, Write, Edit, Bash, Grep, Glob
14
+ tools: [Read, Write, Edit, Bash, Grep, Glob]
15
15
  model: claude-sonnet-4-6
16
16
  modeloAlterno: claude-haiku-4-5-20251001
17
17
  ventanaContexto: 200k
@@ -19,17 +19,15 @@ permissionMode: acceptEdits
19
19
  color: magenta
20
20
  version: 1.0.1
21
21
  nivelRiesgo: ALTO
22
- skillsInvocables: release-semver, ci-cd-pipelines, doc-sync
23
- skillsRestringidos:
24
- - angular-component
25
- - angular-forms
26
- - angular-signals
27
- - postgresql-schema-design
28
- - fastapi-python
22
+ skillsInvocables: [release-semver, ci-cd-pipelines, doc-sync]
23
+ skillsRestringidos: [angular-component, angular-forms, angular-signals, postgresql-schema-design, fastapi-python]
29
24
  permisosRed: false
30
25
  permisosEscritura: true
31
26
  permisosComandos: true
27
+ maxTurnos: 18 # 4+ fases: versionado → changelog → deploy → monitor → rollback potencial
32
28
  evolvable: false # nivelRiesgo=ALTO
29
+ fase: release
30
+ dominio: process
33
31
  exclusiones:
34
32
  - "No invocar para implementar features — este agente coordina releases de código ya implementado y aprobado."
35
33
  - "No invocar para configurar pipelines CI/CD desde cero — ese trabajo corresponde a devops-ci-swl."
@@ -11,7 +11,7 @@ description: >
11
11
  No invocar para bugs funcionales (usar depurador-swl), ni para diseño de
12
12
  arquitectura de datos (usar datos-swl) — este agente mide, perfilar y
13
13
  optimiza lo que ya existe.
14
- tools: Read, Write, Edit, Bash, Grep, Glob, Skill
14
+ tools: [Read, Write, Edit, Bash, Grep, Glob, Skill]
15
15
  model: claude-sonnet-4-6
16
16
  modeloAlterno: claude-haiku-4-5-20251001
17
17
  ventanaContexto: 200k
@@ -19,11 +19,8 @@ permissionMode: acceptEdits
19
19
  color: lime
20
20
  version: 1.0.0
21
21
  nivelRiesgo: MEDIO
22
- skillsInvocables: performance-baseline, sql-optimizacion, monitoring-alertas
23
- skillsRestringidos:
24
- - angular-component
25
- - angular-forms
26
- - auth-implementation-patterns
22
+ skillsInvocables: [performance-baseline, sql-optimizacion, monitoring-alertas]
23
+ skillsRestringidos: [angular-component, angular-forms, auth-implementation-patterns]
27
24
  permisosRed: false
28
25
  permisosEscritura: true
29
26
  permisosComandos: true
@@ -34,6 +31,8 @@ invariantes:
34
31
  operador: eq
35
32
  valor: MEDIO
36
33
  razon: Este agente no debe escalar riesgo sin ADR explicito.
34
+ fase: verify
35
+ dominio: quality
37
36
  exclusiones:
38
37
  - "No invocar sin mediciones de baseline previas — la optimización sin datos es adivinanza."
39
38
  - "No invocar para implementar features nuevas — este agente optimiza código existente, no construye desde cero."
@@ -4,7 +4,7 @@ description: >
4
4
  Resuelve errores de build en cualquier lenguaje soportado. Detecta automáticamente
5
5
  el lenguaje del error, carga el skill de build-errors correspondiente, diagnostica
6
6
  y corrige con cambios mínimos. Invocar cuando un build falla en cualquier lenguaje.
7
- tools: Read, Write, Edit, Bash, Grep, Glob, Skill
7
+ tools: [Read, Write, Edit, Bash, Grep, Glob, Skill]
8
8
  model: claude-sonnet-4-6
9
9
  modeloAlterno: claude-haiku-4-5-20251001
10
10
  ventanaContexto: 200k
@@ -12,12 +12,14 @@ permissionMode: acceptEdits
12
12
  color: red
13
13
  version: 1.0.0
14
14
  nivelRiesgo: BAJO
15
- skillsInvocables: build-errors-java, build-errors-go, build-errors-rust, build-errors-csharp, build-errors-kotlin, build-errors-swift, build-errors-cpp, build-errors-nextjs, build-errors-python, build-errors-typescript, build-errors-php, manejo-errores, typescript-diagnosticos
16
- skillsRestringidos: ninguno
15
+ skillsInvocables: [build-errors-java, build-errors-go, build-errors-rust, build-errors-csharp, build-errors-kotlin, build-errors-swift, build-errors-cpp, build-errors-nextjs, build-errors-python, build-errors-typescript, build-errors-php, manejo-errores, typescript-diagnosticos]
16
+ skillsRestringidos: []
17
17
  permisosRed: false
18
18
  permisosEscritura: true
19
19
  permisosComandos: true
20
20
  evolvable: true # nivelRiesgo=BAJO
21
+ fase: implement
22
+ dominio: general
21
23
  exclusiones:
22
24
  - "No invocar para debugging de lógica de negocio o errores en runtime — ese trabajo corresponde a depurador-swl."
23
25
  - "No invocar para refactors o mejoras de código que van más allá de resolver el error de build — principio de cambio mínimo."
@@ -5,15 +5,15 @@ description: >
5
5
  change detection, lazy loading, RxJS patterns y accesibilidad. Detecta componentes sin
6
6
  OnPush, subscriptions sin unsubscribe, NgModules innecesarios y falta de lazy loading.
7
7
  Invocar para revisión de componentes Angular, servicios, o configuración de módulos.
8
- tools: Read, Grep, Glob, Bash
8
+ tools: [Read, Grep, Glob, Bash]
9
9
  model: claude-sonnet-4-6
10
10
  modeloAlterno: claude-haiku-4-5-20251001
11
11
  ventanaContexto: 200k
12
12
  color: red
13
13
  version: 1.0.0
14
14
  nivelRiesgo: BAJO
15
- skillsInvocables: angular-moderno, angular-avanzado, typescript-avanzado, checklist-calidad, tdd-workflow
16
- skillsRestringidos: ninguno
15
+ skillsInvocables: [angular-moderno, angular-avanzado, typescript-avanzado, checklist-calidad, tdd-workflow]
16
+ skillsRestringidos: []
17
17
  permisosRed: false
18
18
  permisosEscritura: true
19
19
  permisosComandos: true
@@ -22,6 +22,8 @@ toolBudget:
22
22
  standard: 20
23
23
  complex: 35
24
24
  evolvable: true # nivelRiesgo=BAJO
25
+ fase: verify
26
+ dominio: quality
25
27
  exclusiones:
26
28
  - "No invocar para implementar código Angular — este agente solo revisa; la implementación corresponde a frontend-angular-swl."
27
29
  - "No invocar para revisar React, Vue o frameworks distintos a Angular — usar el revisor especializado correspondiente."
@@ -6,15 +6,20 @@ description: >
6
6
  Emite un reporte con métricas numéricas y calificación por dimensión. Invocar
7
7
  después de que el implementador termina un slice o feature, antes de pasar a
8
8
  revisión de seguridad. También invocar para auditar calidad de código heredado.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-sonnet-4-6
11
11
  modeloAlterno: claude-haiku-4-5-20251001
12
12
  ventanaContexto: 200k
13
13
  color: orange
14
- version: 1.0.0
14
+ version: 1.1.2
15
+ evolved: true
16
+ evolved-from: "1.1.1"
17
+ evolved-at: "2026-05-04"
18
+ evolved-by: "aprender"
19
+ evolved-note: "Fix Fase 5b — la guía de pasada 2 listaba patrones de naming específicos (self._repo, self.repo, uow) presentándolos como cobertura exhaustiva. Reescrita como principio semántico de dos condiciones (verbo de mutación + receptor de capa de persistencia), explícitamente independiente del naming concreto. Cubre repositorios con cualquier nombre de variable, dependencias inyectadas y CRUD modules."
15
20
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-calidad, patrones-python, api-rest-diseno, tdd-workflow, verificar-trabajo, verificacion-evidencia, swl-revisar-impacto, prevencion-sobreingenieria
17
- skillsRestringidos: ninguno
21
+ skillsInvocables: [checklist-calidad, patrones-python, api-rest-diseno, tdd-workflow, verificar-trabajo, verificacion-evidencia, swl-revisar-impacto, prevencion-sobreingenieria]
22
+ skillsRestringidos: []
18
23
  permisosRed: false
19
24
  permisosEscritura: true
20
25
  permisosComandos: true
@@ -23,6 +28,8 @@ toolBudget:
23
28
  standard: 25
24
29
  complex: 40
25
30
  evolvable: true # nivelRiesgo=BAJO
31
+ fase: verify
32
+ dominio: quality
26
33
  exclusiones:
27
34
  - "No invocar para implementar código — este agente revisa; la implementación corresponde a implementador-swl o al agente de stack."
28
35
  - "No invocar para revisiones de seguridad específicas — ese trabajo corresponde a revisor-seguridad-swl."
@@ -188,6 +195,85 @@ Duplicación a señalar:
188
195
  Nota: DRY no es solo "no duplicar texto". Es "no duplicar conocimiento".
189
196
  Dos funciones que hacen lo mismo pero por razones distintas NO son DRY violations.
190
197
 
198
+ ### Fase 5b — Scan ampliado por keyword del antipatrón detectado
199
+
200
+ Cuando detectas un anti-patrón concreto en `archivo:línea` (regla violada,
201
+ fuga de información en `detail`, parsing incorrecto, etc.), **NO cierres el
202
+ reporte sin verificar que el mismo patrón no exista en otros lugares del
203
+ mismo módulo o del codebase**.
204
+
205
+ Patrón observado en bucles `--until-converge`: el mismo anti-patrón aparece
206
+ en N>1 lugares del mismo método o módulo, pero el reporte de pasada 1 solo
207
+ captura una ocurrencia (la del archivo bajo revisión); pasadas posteriores
208
+ detectan las restantes y el loop se alarga innecesariamente.
209
+
210
+ **Protocolo del scan ampliado**:
211
+
212
+ 1. Identificar la **keyword** del anti-patrón:
213
+ - Para fugas en `detail`: nombre interno expuesto (ej: `fn_evaluar_X`,
214
+ `RLS`, `transaccional`, `fn_calcular_X`).
215
+ - Para parsing incorrecto: la cadena del anti-patrón
216
+ (ej: `endswith("1")`, `startswith("UPDATE")`).
217
+ - Para `assert` en producción: `assert ` con espacio.
218
+ - Para `except Exception`: `except Exception`.
219
+ - Para `or {}` post-mutación: hacer dos pasadas. **Pasada 1** (amplia, sin filtro):
220
+ `Grep("\\bor \\{\\}|\\bor \\[\\]", path="<modulo>")` para encontrar TODAS las
221
+ ocurrencias. **Pasada 2** (filtrado por principio semántico, NO por naming):
222
+ marcar como antipatrón cuando la asignación que precede al `or {}` cumpla
223
+ **ambas** condiciones:
224
+ (a) llama a un método o función con nombre semántico de mutación
225
+ (`crear_*`, `actualizar_*`, `eliminar_*`, `update_*`, `insert_*`, `delete_*`,
226
+ `save`, `upsert`, `set_*`, `patch_*`) o ejecuta SQL crudo de mutación
227
+ (`execute("UPDATE...")`, `execute("INSERT...")`, `execute("DELETE...")`);
228
+ (b) el receptor de la llamada representa una capa de persistencia —
229
+ repository, ORM, UoW, DAO, store, db handle, session, connection o crud
230
+ module. El **naming concreto NO importa**: `self._repo`, `self.repo`,
231
+ `self.repository`, `self.db`, `self.uow.repo`, `crud`, `store`, `dao`,
232
+ `session`, `conn`, o cualquier dependencia inyectada vía `Depends(...)`
233
+ son todos válidos. La heurística práctica es: si quitando el `or {}`
234
+ una mutación fallida en BD enmascararía un None silenciosamente, ES
235
+ antipatrón. Esto excluye automáticamente los `or {}` legítimos de
236
+ defaulting (config, query params, kwargs).
237
+
238
+ 2. Ejecutar `Grep` con la keyword en el módulo entero ANTES de cerrar el reporte:
239
+ ```bash
240
+ # Ejemplo: si detectas "RLS" en service.py:316, buscar más
241
+ Grep("RLS", path="backend/app/<modulo>/", output_mode="content")
242
+ Grep("transaccional", path="backend/app/<modulo>/", output_mode="content")
243
+ ```
244
+
245
+ 3. Reportar **TODAS las ocurrencias en el mismo hallazgo agrupado**, no como
246
+ múltiples hallazgos separados. Ejemplo:
247
+
248
+ ```
249
+ [MAYOR] service.py:316, 348, 367 — fuga de "RLS"/"transaccional" en
250
+ detail al cliente (3 ocurrencias del mismo antipatrón en el mismo método)
251
+ ```
252
+
253
+ 4. Si el patrón existe en archivos NO incluidos en el alcance del review
254
+ (commit revisado), reportarlos como **deuda preexistente** con prefijo:
255
+
256
+ ```
257
+ [PREEXISTENTE-MAYOR] otra_archivo.py:42 — mismo antipatrón "RLS" en
258
+ detail; preexistente al commit revisado pero candidato a fix en próxima
259
+ iteración
260
+ ```
261
+
262
+ **Cuándo aplicar el scan ampliado**:
263
+ - Anti-patrones detectables por keyword textual (caso típico).
264
+ - Violaciones de regla del proyecto (`backend/CLAUDE.md`, `frontend/CLAUDE.md`).
265
+ - Patrones de seguridad (str(exc), parsing incorrecto, asserts).
266
+ - Fugas de información (vocabulario interno, UUIDs internos).
267
+
268
+ **Cuándo NO aplicar** (overhead innecesario):
269
+ - Anti-patrones estructurales sin keyword (long method, god class).
270
+ - Code smells que requieren análisis semántico, no textual.
271
+ - Violaciones SOLID (requieren análisis de relaciones entre clases).
272
+
273
+ Beneficio empírico: en sesiones del 2026-05-04 con `--until-converge`, aplicar
274
+ scan ampliado en pasada 1 hubiera reducido el loop de 4 pasadas a 2 (2
275
+ hallazgos del mismo patrón quedaron sin detectar hasta pasadas posteriores).
276
+
191
277
  ### Fase 6 — Consistencia con el proyecto
192
278
 
193
279
  Verifica que el código nuevo sigue los mismos patrones del código existente:
@@ -6,15 +6,15 @@ description: >
6
6
  LINQ y convenciones de API REST con ASP.NET Core. Emite un reporte con score
7
7
  por dimension y problemas clasificados por severidad. Invocar despues de
8
8
  implementar features C# o para auditar codigo C# existente antes de merge.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-sonnet-4-6
11
11
  modeloAlterno: claude-haiku-4-5-20251001
12
12
  ventanaContexto: 200k
13
13
  color: purple
14
14
  version: 1.0.0
15
15
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow
17
- skillsRestringidos: ninguno
16
+ skillsInvocables: [checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow]
17
+ skillsRestringidos: []
18
18
  permisosRed: false
19
19
  permisosEscritura: true
20
20
  permisosComandos: true
@@ -23,6 +23,8 @@ toolBudget:
23
23
  standard: 20
24
24
  complex: 35
25
25
  evolvable: true # nivelRiesgo=BAJO
26
+ fase: verify
27
+ dominio: quality
26
28
  exclusiones:
27
29
  - "No invocar para implementar código C# — este agente solo revisa; la implementación corresponde a backend-csharp-swl."
28
30
  - "No invocar para revisar lenguajes distintos a C# y .NET — usar el revisor especializado correspondiente."
@@ -5,15 +5,15 @@ description: >
5
5
  concurrency safety, diseño de interfaces y testing patterns. Emite un reporte
6
6
  con score por dimensión y problemas clasificados por severidad. Invocar después
7
7
  de implementar features Go o para auditar código Go existente antes de merge.
8
- tools: Read, Grep, Glob, Bash
8
+ tools: [Read, Grep, Glob, Bash]
9
9
  model: claude-sonnet-4-6
10
10
  modeloAlterno: claude-haiku-4-5-20251001
11
11
  ventanaContexto: 200k
12
12
  color: cyan
13
13
  version: 1.0.0
14
14
  nivelRiesgo: BAJO
15
- skillsInvocables: checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow
16
- skillsRestringidos: ninguno
15
+ skillsInvocables: [checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow]
16
+ skillsRestringidos: []
17
17
  permisosRed: false
18
18
  permisosEscritura: true
19
19
  permisosComandos: true
@@ -22,6 +22,8 @@ toolBudget:
22
22
  standard: 20
23
23
  complex: 35
24
24
  evolvable: true # nivelRiesgo=BAJO
25
+ fase: verify
26
+ dominio: quality
25
27
  exclusiones:
26
28
  - "No invocar para implementar código Go — este agente solo revisa; la implementación corresponde a backend-go-swl."
27
29
  - "No invocar para revisar lenguajes distintos a Go — usar el revisor especializado correspondiente."
@@ -5,15 +5,15 @@ description: >
5
5
  streams idiomáticos, null safety y SOLID. Emite un reporte con score por dimensión
6
6
  y problemas clasificados por severidad. Invocar después de implementar features
7
7
  Java o para auditar código Java existente antes de merge a main.
8
- tools: Read, Grep, Glob, Bash
8
+ tools: [Read, Grep, Glob, Bash]
9
9
  model: claude-sonnet-4-6
10
10
  modeloAlterno: claude-haiku-4-5-20251001
11
11
  ventanaContexto: 200k
12
12
  color: blue
13
13
  version: 1.0.0
14
14
  nivelRiesgo: BAJO
15
- skillsInvocables: checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow
16
- skillsRestringidos: ninguno
15
+ skillsInvocables: [checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow]
16
+ skillsRestringidos: []
17
17
  permisosRed: false
18
18
  permisosEscritura: true
19
19
  permisosComandos: true
@@ -22,6 +22,8 @@ toolBudget:
22
22
  standard: 20
23
23
  complex: 35
24
24
  evolvable: true # nivelRiesgo=BAJO
25
+ fase: verify
26
+ dominio: quality
25
27
  exclusiones:
26
28
  - "No invocar para implementar código Java — este agente solo revisa; la implementación corresponde a backend-java-swl."
27
29
  - "No invocar para revisar lenguajes distintos a Java — usar el revisor especializado correspondiente."
@@ -6,15 +6,15 @@ description: >
6
6
  Emite un reporte con score por dimension y problemas clasificados por severidad.
7
7
  Invocar despues de implementar features Kotlin/Android o para auditar codigo
8
8
  Kotlin existente antes de merge.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-sonnet-4-6
11
11
  modeloAlterno: claude-haiku-4-5-20251001
12
12
  ventanaContexto: 200k
13
13
  color: green
14
14
  version: 1.0.0
15
15
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-calidad, manejo-errores, tdd-workflow, kotlin-experto
17
- skillsRestringidos: ninguno
16
+ skillsInvocables: [checklist-calidad, manejo-errores, tdd-workflow, kotlin-experto]
17
+ skillsRestringidos: []
18
18
  permisosRed: false
19
19
  permisosEscritura: true
20
20
  permisosComandos: true
@@ -23,6 +23,8 @@ toolBudget:
23
23
  standard: 20
24
24
  complex: 35
25
25
  evolvable: true # nivelRiesgo=BAJO
26
+ fase: verify
27
+ dominio: quality
26
28
  exclusiones:
27
29
  - "No invocar para implementar código Kotlin o Android — este agente solo revisa; la implementación corresponde a mobile-android-swl."
28
30
  - "No invocar para revisar lenguajes distintos a Kotlin — usar el revisor especializado correspondiente."
@@ -6,15 +6,15 @@ description: >
6
6
  (Core Web Vitals) y accesibilidad. Emite un reporte con score por dimensión y
7
7
  problemas clasificados por severidad. Invocar después de implementar features
8
8
  Next.js o para auditar código Next.js existente antes de merge.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-sonnet-4-6
11
11
  modeloAlterno: claude-haiku-4-5-20251001
12
12
  ventanaContexto: 200k
13
13
  color: gray
14
14
  version: 1.0.0
15
15
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow, nextjs-experto, nextjs-patrones
17
- skillsRestringidos: ninguno
16
+ skillsInvocables: [checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow, nextjs-experto, nextjs-patrones]
17
+ skillsRestringidos: []
18
18
  permisosRed: false
19
19
  permisosEscritura: true
20
20
  permisosComandos: true
@@ -23,6 +23,8 @@ toolBudget:
23
23
  standard: 20
24
24
  complex: 35
25
25
  evolvable: true # nivelRiesgo=BAJO
26
+ fase: verify
27
+ dominio: quality
26
28
  exclusiones:
27
29
  - "No invocar para implementar código Next.js — este agente solo revisa; la implementación corresponde a frontend-react-swl."
28
30
  - "No invocar para revisar Angular, Vue o frameworks distintos a React/Next.js — usar el revisor especializado correspondiente."
@@ -6,15 +6,15 @@ description: >
6
6
  types y cobertura de tests con PHPUnit y Pest. Emite un reporte con score por
7
7
  dimensión y problemas clasificados por severidad. Invocar después de implementar
8
8
  features PHP/Laravel o para auditar código PHP existente antes de merge.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-sonnet-4-6
11
11
  modeloAlterno: claude-haiku-4-5-20251001
12
12
  ventanaContexto: 200k
13
13
  color: indigo
14
14
  version: 1.0.0
15
15
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-calidad, checklist-seguridad, manejo-errores, api-rest-diseno, tdd-workflow, php-experto, php-patrones
17
- skillsRestringidos: ninguno
16
+ skillsInvocables: [checklist-calidad, checklist-seguridad, manejo-errores, api-rest-diseno, tdd-workflow, php-experto, php-patrones]
17
+ skillsRestringidos: []
18
18
  permisosRed: false
19
19
  permisosEscritura: true
20
20
  permisosComandos: true
@@ -23,6 +23,8 @@ toolBudget:
23
23
  standard: 20
24
24
  complex: 35
25
25
  evolvable: true # nivelRiesgo=BAJO
26
+ fase: verify
27
+ dominio: quality
26
28
  exclusiones:
27
29
  - "No invocar para implementar código PHP o Laravel — este agente solo revisa; la implementación corresponde a implementador-swl."
28
30
  - "No invocar para revisar lenguajes distintos a PHP — usar el revisor especializado correspondiente."
@@ -5,15 +5,15 @@ description: >
5
5
  state management, component composition y accesibilidad. Detecta useEffect innecesarios,
6
6
  state mal ubicado, prop drilling excesivo y falta de memoization. Invocar para revisión
7
7
  de componentes React, hooks custom, o integraciones con state managers.
8
- tools: Read, Grep, Glob, Bash
8
+ tools: [Read, Grep, Glob, Bash]
9
9
  model: claude-sonnet-4-6
10
10
  modeloAlterno: claude-haiku-4-5-20251001
11
11
  ventanaContexto: 200k
12
12
  color: cyan
13
13
  version: 1.0.0
14
14
  nivelRiesgo: BAJO
15
- skillsInvocables: react-experto, react-optimizacion, typescript-avanzado, checklist-calidad, tdd-workflow
16
- skillsRestringidos: ninguno
15
+ skillsInvocables: [react-experto, react-optimizacion, typescript-avanzado, checklist-calidad, tdd-workflow]
16
+ skillsRestringidos: []
17
17
  permisosRed: false
18
18
  permisosEscritura: true
19
19
  permisosComandos: true
@@ -22,6 +22,8 @@ toolBudget:
22
22
  standard: 20
23
23
  complex: 35
24
24
  evolvable: true # nivelRiesgo=BAJO
25
+ fase: verify
26
+ dominio: quality
25
27
  exclusiones:
26
28
  - "No invocar para implementar código React — este agente solo revisa; la implementación corresponde a frontend-react-swl."
27
29
  - "No invocar para revisar Angular, Vue o frameworks distintos a React — usar el revisor especializado correspondiente."
@@ -6,15 +6,15 @@ description: >
6
6
  async y cumplimiento con clippy. Emite un reporte con score por dimension y
7
7
  problemas clasificados por severidad. Invocar despues de implementar features
8
8
  Rust o para auditar codigo Rust existente antes de merge.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-sonnet-4-6
11
11
  modeloAlterno: claude-haiku-4-5-20251001
12
12
  ventanaContexto: 200k
13
13
  color: orange
14
14
  version: 1.0.0
15
15
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow
17
- skillsRestringidos: ninguno
16
+ skillsInvocables: [checklist-calidad, manejo-errores, api-rest-diseno, tdd-workflow]
17
+ skillsRestringidos: []
18
18
  permisosRed: false
19
19
  permisosEscritura: true
20
20
  permisosComandos: true
@@ -23,6 +23,8 @@ toolBudget:
23
23
  standard: 20
24
24
  complex: 35
25
25
  evolvable: true # nivelRiesgo=BAJO
26
+ fase: verify
27
+ dominio: quality
26
28
  exclusiones:
27
29
  - "No invocar para implementar código Rust — este agente solo revisa; la implementación corresponde a backend-rust-swl."
28
30
  - "No invocar para revisar lenguajes distintos a Rust — usar el revisor especializado correspondiente."
@@ -6,15 +6,15 @@ description: >
6
6
  autorización, inyección SQL/XSS/CSRF y path traversal. Emite un reporte con
7
7
  severidad CVSSv3 por hallazgo. Invocar antes de cualquier merge a main cuando
8
8
  el código toca endpoints, autenticación, manejo de archivos o datos de usuario.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-opus-4-7
11
11
  modeloAlterno: claude-sonnet-4-6
12
12
  ventanaContexto: 200k
13
13
  color: red
14
14
  version: 1.0.0
15
15
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-seguridad, threat-model-lite, auth-patrones, iam-secretos, extraccion-documentos, dependencias-auditoria
17
- skillsRestringidos: ninguno
16
+ skillsInvocables: [checklist-seguridad, threat-model-lite, auth-patrones, iam-secretos, extraccion-documentos, dependencias-auditoria]
17
+ skillsRestringidos: []
18
18
  permisosRed: false
19
19
  permisosEscritura: false
20
20
  permisosComandos: true
@@ -23,6 +23,8 @@ toolBudget:
23
23
  standard: 25
24
24
  complex: 40
25
25
  evolvable: false # bloqueado por lista (funcion sistemica)
26
+ fase: verify
27
+ dominio: security
26
28
  exclusiones:
27
29
  - "No invocar para revisiones de código de calidad general (naming, arquitectura, tests) — ese trabajo corresponde a revisor-codigo-swl o al revisor de lenguaje especializado."
28
30
  - "No invocar para implementar las correcciones de seguridad encontradas — las correcciones las aplica implementador-swl o el agente de stack; este agente solo audita."
@@ -6,15 +6,15 @@ description: >
6
6
  correcta y concurrency safety. Emite un reporte con score por dimension y
7
7
  problemas clasificados por severidad. Invocar despues de implementar features
8
8
  Swift/iOS o para auditar codigo Swift existente antes de merge.
9
- tools: Read, Grep, Glob, Bash
9
+ tools: [Read, Grep, Glob, Bash]
10
10
  model: claude-sonnet-4-6
11
11
  modeloAlterno: claude-haiku-4-5-20251001
12
12
  ventanaContexto: 200k
13
13
  color: red
14
14
  version: 1.0.0
15
15
  nivelRiesgo: BAJO
16
- skillsInvocables: checklist-calidad, manejo-errores, tdd-workflow, swift-experto
17
- skillsRestringidos: ninguno
16
+ skillsInvocables: [checklist-calidad, manejo-errores, tdd-workflow, swift-experto]
17
+ skillsRestringidos: []
18
18
  permisosRed: false
19
19
  permisosEscritura: true
20
20
  permisosComandos: true
@@ -23,6 +23,8 @@ toolBudget:
23
23
  standard: 20
24
24
  complex: 35
25
25
  evolvable: true # nivelRiesgo=BAJO
26
+ fase: verify
27
+ dominio: quality
26
28
  exclusiones:
27
29
  - "No invocar para implementar código Swift o iOS — este agente solo revisa; la implementación corresponde a mobile-ios-swl."
28
30
  - "No invocar para revisar lenguajes distintos a Swift — usar el revisor especializado correspondiente."