@saulwade/swl-ses 1.4.0 → 1.4.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 (116) hide show
  1. package/CLAUDE.md +4 -3
  2. package/README.md +15 -14
  3. package/agentes/nemesis-auditor-swl.md +161 -0
  4. package/bin/swl-mcp-server.js +187 -187
  5. package/comandos/swl/.evolved.json +22 -22
  6. package/comandos/swl/contribuir.md +233 -233
  7. package/comandos/swl/nemesis.md +122 -0
  8. package/comandos/swl/salud.md +34 -0
  9. package/comandos/swl/verificar.md +45 -0
  10. package/gateway/lib/event-channel.js +191 -191
  11. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  12. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  13. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  14. package/habilidades/doubt-driven-review/SKILL.md +171 -171
  15. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  16. package/habilidades/eval-framework/SKILL.md +212 -212
  17. package/habilidades/feynman-auditor-swl/SKILL.md +123 -0
  18. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -0
  19. package/habilidades/harness-claude-code/SKILL.md +299 -299
  20. package/habilidades/infra-github-actions/SKILL.md +166 -166
  21. package/habilidades/legacy-code-rescue/SKILL.md +267 -267
  22. package/habilidades/manejo-errores/.evolved.json +8 -8
  23. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  24. package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -163
  25. package/habilidades/patrones-python/SKILL.md +229 -229
  26. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  27. package/habilidades/planear-fase/SKILL.md +319 -319
  28. package/habilidades/release-semver/.evolved.json +8 -8
  29. package/habilidades/state-inconsistency-auditor-swl/SKILL.md +166 -0
  30. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -0
  31. package/habilidades/testing-python/SKILL.md +340 -340
  32. package/habilidades/web-fetcher-routing/SKILL.md +75 -0
  33. package/hooks/claudemd-bloat-detector.js +161 -161
  34. package/hooks/lib/agent-routing.js +107 -107
  35. package/hooks/lib/auto-consolidator.js +335 -335
  36. package/hooks/lib/error-classifier.js +308 -308
  37. package/hooks/lib/merkle-audit.js +96 -96
  38. package/hooks/lib/provenance-tracker.js +191 -191
  39. package/hooks/lib/rate-limit-tracker.js +253 -253
  40. package/hooks/lib/resource-quota.js +122 -122
  41. package/hooks/lib/retry-jitter.js +165 -165
  42. package/hooks/lib/security-net.js +201 -0
  43. package/hooks/lib/skill-auditor.js +588 -588
  44. package/hooks/lib/sync-status.js +228 -228
  45. package/hooks/lib/taint-tracker.js +107 -107
  46. package/hooks/lib/text-similarity.js +241 -241
  47. package/hooks/lib/toon-compressor.js +245 -245
  48. package/hooks/registro-turnos.js +209 -209
  49. package/hooks/sugerir-regenerar-inventario.js +170 -170
  50. package/hooks/validar-formato-post-subagente.js +140 -140
  51. package/hooks/validar-memoria-hook.js +218 -218
  52. package/instintos/prompt-appendices.yaml +57 -57
  53. package/manifiestos/agent-output-schemas.json +57 -57
  54. package/manifiestos/modulos.json +41 -6
  55. package/manifiestos/perfiles.json +2 -1
  56. package/manifiestos/skills-lock.json +30 -9
  57. package/package.json +2 -2
  58. package/plantillas/auditor-veto-template.md +105 -105
  59. package/plantillas/github-workflows/README.md +47 -47
  60. package/plantillas/github-workflows/release-please.yml +44 -44
  61. package/plantillas/github-workflows/swl-ci.yml +107 -107
  62. package/plantillas/github-workflows/swl-security.yml +51 -51
  63. package/plugin.json +10 -2
  64. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  65. package/reglas/arreglar-al-detectar.md +147 -147
  66. package/reglas/fragmentos-compartidos.md +152 -152
  67. package/reglas/harness-claude-code.md +213 -213
  68. package/reglas/usar-context7.md +226 -226
  69. package/schemas/diary-entry.schema.json +80 -80
  70. package/scripts/audit-tools/audit-history.js +330 -0
  71. package/scripts/audit-tools/bundle-tracker.js +290 -0
  72. package/scripts/audit-tools/canary-monitor.js +352 -0
  73. package/scripts/audit-tools/code-profiler.js +605 -0
  74. package/scripts/audit-tools/dep-doctor.js +320 -0
  75. package/scripts/audit-tools/env-validator.js +206 -0
  76. package/scripts/audit-tools/lib/fs-walk.js +48 -0
  77. package/scripts/audit-tools/lib/output.js +23 -0
  78. package/scripts/audit-tools/migration-checker.js +392 -0
  79. package/scripts/audit-tools/pentest-scanner.js +1436 -0
  80. package/scripts/benchmark-memoria.js +167 -167
  81. package/scripts/configurar-branch-protection.js +418 -418
  82. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  83. package/scripts/field-report.js +199 -199
  84. package/scripts/generar-checklists-consolidados.js +273 -273
  85. package/scripts/generar-inventario.js +420 -420
  86. package/scripts/generar-matriz-lenguajes.js +271 -271
  87. package/scripts/lib/artefactos-python.js +43 -43
  88. package/scripts/lib/benchmark-metrics.js +160 -160
  89. package/scripts/lib/budget-enforcer.js +252 -252
  90. package/scripts/lib/configurar-ci.js +380 -380
  91. package/scripts/lib/contadores-inventario.js +217 -217
  92. package/scripts/lib/detectar-stack-detallado.js +307 -307
  93. package/scripts/lib/diary-entry.js +234 -234
  94. package/scripts/lib/eval-metrics-store.js +218 -218
  95. package/scripts/lib/eval-quality.js +171 -171
  96. package/scripts/lib/eval-schemas.js +144 -144
  97. package/scripts/lib/eval-self-correct.js +106 -106
  98. package/scripts/lib/eval-validator.js +185 -185
  99. package/scripts/lib/jaccard-similarity.js +98 -98
  100. package/scripts/lib/longmemeval-runner.js +125 -125
  101. package/scripts/lib/manifiestos.js +42 -1
  102. package/scripts/lib/npm-version.js +261 -261
  103. package/scripts/lib/paquetes-conocidos.js +50 -50
  104. package/scripts/lib/prompt-builder.js +264 -264
  105. package/scripts/lib/rrf-fusion.js +175 -175
  106. package/scripts/lib/scoring-instintos.js +277 -277
  107. package/scripts/lib/semantic-search.js +252 -252
  108. package/scripts/limpiar-artefactos-python.js +131 -131
  109. package/scripts/mcp-server/README.md +128 -128
  110. package/scripts/mcp-server/handlers.js +206 -206
  111. package/scripts/migrar-csv-a-array.js +168 -168
  112. package/scripts/migrar-fase-dominio.js +201 -201
  113. package/scripts/publicar.js +511 -511
  114. package/scripts/run-eval.js +141 -141
  115. package/scripts/validar-manifest.js +231 -195
  116. package/scripts/validar-userland-vacio.js +110 -110
@@ -1,57 +1,57 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "descripcion": "Schemas de output esperado por agente — formato compacto declarado en reglas/brevedad-output.md. El hook validar-formato-post-subagente.js usa estos patrones para detectar cuándo un agente devuelve output fuera de contrato.",
4
- "version": "1.0.0",
5
- "schemas": {
6
- "revisor-codigo-swl": {
7
- "descripcion": "Revisión de calidad — formato compacto",
8
- "patronesRequeridos": [
9
- "(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES|CUMPLE|PARCIAL|NO\\s+CUMPLE)",
10
- "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
11
- "(?im)MAYORES\\s*:\\s*\\d+",
12
- "(?im)MENORES\\s*:\\s*\\d+",
13
- "(?im)HALLAZGOS\\s*:"
14
- ]
15
- },
16
- "revisor-seguridad-swl": {
17
- "descripcion": "Revisión de seguridad OWASP — formato compacto",
18
- "patronesRequeridos": [
19
- "(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES)",
20
- "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
21
- "(?im)MAYORES\\s*:\\s*\\d+",
22
- "(?im)HALLAZGOS\\s*:"
23
- ]
24
- },
25
- "revisor-typescript-swl": {
26
- "descripcion": "Revisión TypeScript — formato compacto",
27
- "patronesRequeridos": [
28
- "(?im)VEREDICTO\\s*:\\s*\\w+",
29
- "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
30
- "(?im)HALLAZGOS\\s*:"
31
- ]
32
- },
33
- "revisor-react-swl": {
34
- "descripcion": "Revisión React — formato compacto",
35
- "patronesRequeridos": [
36
- "(?im)VEREDICTO\\s*:\\s*\\w+",
37
- "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
38
- "(?im)HALLAZGOS\\s*:"
39
- ]
40
- },
41
- "revisor-angular-swl": {
42
- "descripcion": "Revisión Angular — formato compacto",
43
- "patronesRequeridos": [
44
- "(?im)VEREDICTO\\s*:\\s*\\w+",
45
- "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
46
- "(?im)HALLAZGOS\\s*:"
47
- ]
48
- },
49
- "tdd-qa-swl": {
50
- "descripcion": "QA con TDD — reporte de implementación",
51
- "patronesRequeridos": [
52
- "(?im)ESTADO\\s*:\\s*(COMPLETADO|PARCIAL|BLOQUEADO)",
53
- "(?im)(SLICES|TESTS)\\s*:"
54
- ]
55
- }
56
- }
57
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "descripcion": "Schemas de output esperado por agente — formato compacto declarado en reglas/brevedad-output.md. El hook validar-formato-post-subagente.js usa estos patrones para detectar cuándo un agente devuelve output fuera de contrato.",
4
+ "version": "1.0.0",
5
+ "schemas": {
6
+ "revisor-codigo-swl": {
7
+ "descripcion": "Revisión de calidad — formato compacto",
8
+ "patronesRequeridos": [
9
+ "(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES|CUMPLE|PARCIAL|NO\\s+CUMPLE)",
10
+ "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
11
+ "(?im)MAYORES\\s*:\\s*\\d+",
12
+ "(?im)MENORES\\s*:\\s*\\d+",
13
+ "(?im)HALLAZGOS\\s*:"
14
+ ]
15
+ },
16
+ "revisor-seguridad-swl": {
17
+ "descripcion": "Revisión de seguridad OWASP — formato compacto",
18
+ "patronesRequeridos": [
19
+ "(?im)VEREDICTO\\s*:\\s*(APROBADO|APROBADO_CON_OBSERVACIONES|RECHAZADO|REQUIERE_CORRECCIONES)",
20
+ "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
21
+ "(?im)MAYORES\\s*:\\s*\\d+",
22
+ "(?im)HALLAZGOS\\s*:"
23
+ ]
24
+ },
25
+ "revisor-typescript-swl": {
26
+ "descripcion": "Revisión TypeScript — formato compacto",
27
+ "patronesRequeridos": [
28
+ "(?im)VEREDICTO\\s*:\\s*\\w+",
29
+ "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
30
+ "(?im)HALLAZGOS\\s*:"
31
+ ]
32
+ },
33
+ "revisor-react-swl": {
34
+ "descripcion": "Revisión React — formato compacto",
35
+ "patronesRequeridos": [
36
+ "(?im)VEREDICTO\\s*:\\s*\\w+",
37
+ "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
38
+ "(?im)HALLAZGOS\\s*:"
39
+ ]
40
+ },
41
+ "revisor-angular-swl": {
42
+ "descripcion": "Revisión Angular — formato compacto",
43
+ "patronesRequeridos": [
44
+ "(?im)VEREDICTO\\s*:\\s*\\w+",
45
+ "(?im)CR[IÍ]TICOS\\s*:\\s*\\d+",
46
+ "(?im)HALLAZGOS\\s*:"
47
+ ]
48
+ },
49
+ "tdd-qa-swl": {
50
+ "descripcion": "QA con TDD — reporte de implementación",
51
+ "patronesRequeridos": [
52
+ "(?im)ESTADO\\s*:\\s*(COMPLETADO|PARCIAL|BLOQUEADO)",
53
+ "(?im)(SLICES|TESTS)\\s*:"
54
+ ]
55
+ }
56
+ }
57
+ }
@@ -1089,7 +1089,8 @@
1089
1089
  "claude",
1090
1090
  "openclaude",
1091
1091
  "gemini"
1092
- ]
1092
+ ],
1093
+ "opt_in": true
1093
1094
  },
1094
1095
  "graphify-swl": {
1095
1096
  "descripcion": "Grafo de dependencias SWL: análisis topológico real portado de graphify-3. God nodes, blast radius, community detection, diff de grafos y hook de inyección de contexto.",
@@ -1138,7 +1139,8 @@
1138
1139
  "opencode",
1139
1140
  "codex",
1140
1141
  "gemini"
1141
- ]
1142
+ ],
1143
+ "opt_in": true
1142
1144
  },
1143
1145
  "claudemd-auditor": {
1144
1146
  "descripcion": "Auditor de calidad de CLAUDE.md según best practices Anthropic (ADR-0016). Detecta inflación (líneas excesivas, bullets gigantes, secciones canónicas ausentes, sin @references, placeholders). Usado por el comando /swl:claudemd y por el hook claudemd-bloat-detector. Zero-deps. Soporta --json y --strict. Umbrales configurables: SWL_CLAUDEMD_MAX_LINES (default 200), SWL_CLAUDEMD_MAX_BULLET_CHARS (default 1000).",
@@ -1156,6 +1158,36 @@
1156
1158
  "gemini"
1157
1159
  ]
1158
1160
  },
1161
+ "auditoria-profunda": {
1162
+ "descripcion": "Auditoría profunda integrada (Opción C, ADR-0018). Agente Nemesis iterativo (Feynman + State Inconsistency) language-agnostic, 3 skills subordinados, comando /swl:nemesis, 8 tools ejecutables JSON-output en scripts/audit-tools/ (code-profiler con Python, pentest-scanner, dep-doctor, bundle-tracker, env-validator, migration-checker con Alembic, canary-monitor, audit-history) + hook lib security-net.js (SSRF protection, validateUrl, checkFileSize, redactSensitiveValue) + skill web-fetcher-routing. Adaptado de Houseofmvps/ultraship + 0xiehnnkta/nemesis-auditor + tw93/Waza bajo MIT License. Ejemplos generalizados de blockchain a Python/TS/Go/Rust/Java/C#.",
1163
+ "tipo": "mixto",
1164
+ "archivos": [
1165
+ "agentes/nemesis-auditor-swl.md",
1166
+ "habilidades/feynman-auditor-swl",
1167
+ "habilidades/state-inconsistency-auditor-swl",
1168
+ "habilidades/web-fetcher-routing",
1169
+ "comandos/swl/nemesis.md",
1170
+ "hooks/lib/security-net.js",
1171
+ "scripts/audit-tools/lib/output.js",
1172
+ "scripts/audit-tools/lib/fs-walk.js",
1173
+ "scripts/audit-tools/code-profiler.js",
1174
+ "scripts/audit-tools/pentest-scanner.js",
1175
+ "scripts/audit-tools/dep-doctor.js",
1176
+ "scripts/audit-tools/bundle-tracker.js",
1177
+ "scripts/audit-tools/env-validator.js",
1178
+ "scripts/audit-tools/migration-checker.js",
1179
+ "scripts/audit-tools/canary-monitor.js",
1180
+ "scripts/audit-tools/audit-history.js"
1181
+ ],
1182
+ "targets": [
1183
+ "claude",
1184
+ "openclaude",
1185
+ "copilot",
1186
+ "opencode",
1187
+ "codex",
1188
+ "gemini"
1189
+ ]
1190
+ },
1159
1191
  "mcp-server-swl": {
1160
1192
  "descripcion": "MCP server stub experimental que expone memoria SWL (aprendizajes, sesiones, instintos) a clientes MCP externos (Cursor, Gemini CLI, OpenCode, Cline, Claude Desktop). Modo stdio. 3 endpoints: swl_memory_search, swl_aprendizajes_recientes, swl_instintos_activos. SIN auth, SIN rate limiting, SIN HTTP transport, SIN tests integración. NO USAR EN PRODUCCIÓN. Trigger para hardening: uso real ≥2 runtimes diferentes consistentemente por ≥1 mes. El binario `swl-mcp-server` se instala automáticamente vía npm install -g (declarado en package.json bin). NO se propaga al runtime SWL — vive en el paquete npm como herramienta opt-in. Ver scripts/mcp-server/README.md para 11 limitaciones explícitas y diseño futuro.",
1161
1193
  "tipo": "scripts",
@@ -1187,7 +1219,8 @@
1187
1219
  "opencode",
1188
1220
  "codex",
1189
1221
  "gemini"
1190
- ]
1222
+ ],
1223
+ "opt_in": true
1191
1224
  },
1192
1225
  "notificaciones-telegram": {
1193
1226
  "descripcion": "Hook saliente de notificaciones Telegram (opt-in). Envía notificaciones al finalizar un turno (Stop), cuando Claude espera respuesta (Notification) y al terminar un subagente (SubagentStop). Hook SessionStart de auto-restauración de settings global. Daemon bot bidireccional con long-polling. Zero-deps: solo node: nativos. Requiere ~/.claude/notifications/.env con TELEGRAM_BOT_TOKEN y TELEGRAM_CHAT_ID. Opt-out: SWL_NOTIFICACIONES_TELEGRAM=0.",
@@ -1208,7 +1241,8 @@
1208
1241
  ],
1209
1242
  "targets": [
1210
1243
  "claude"
1211
- ]
1244
+ ],
1245
+ "opt_in": true
1212
1246
  },
1213
1247
  "ci-cd-templates": {
1214
1248
  "descripcion": "Plantillas de workflows GitHub Actions distribuibles a proyectos usuario (opt-in). Incluye swl-security.yml (revisión de seguridad con Claude en cada PR), swl-ci.yml (CI genérico Node 22+24), release-please.yml (releases automáticos desde conventional commits) y README de instalación. Skill infra-github-actions para troubleshooting y guía avanzada. Comando /swl:configurar-ci para instalación interactiva. No se instala automáticamente — requiere invocación explícita.",
@@ -1226,7 +1260,8 @@
1226
1260
  ],
1227
1261
  "targets": [
1228
1262
  "claude"
1229
- ]
1263
+ ],
1264
+ "opt_in": true
1230
1265
  }
1231
1266
  }
1232
- }
1267
+ }
@@ -399,7 +399,8 @@
399
399
  "graphify-swl",
400
400
  "mcp-swl",
401
401
  "mcp-server-swl",
402
- "claudemd-auditor"
402
+ "claudemd-auditor",
403
+ "auditoria-profunda"
403
404
  ]
404
405
  }
405
406
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "lockfileVersion": 1,
3
- "generatedAt": "2026-05-14T02:32:41.863Z",
4
- "skillsCount": 155,
5
- "lockHash": "sha256:da4b9d4896cb83fc4bfd630384e3a16cd50722bf2afb54df09869d7ac02ffabc",
3
+ "generatedAt": "2026-05-15T04:05:25.970Z",
4
+ "skillsCount": 158,
5
+ "lockHash": "sha256:e8aa8826b7a7285c7a0f182973b7565db338c7bb6a13707b6c518b2ac980b096",
6
6
  "skills": [
7
7
  {
8
8
  "nombre": "accesibilidad-a11y",
@@ -452,6 +452,13 @@
452
452
  "bytes": 17608,
453
453
  "version": "\"1.2.0\""
454
454
  },
455
+ {
456
+ "nombre": "feynman-auditor-swl",
457
+ "path": "habilidades/feynman-auditor-swl/SKILL.md",
458
+ "hash": "sha256:0bfc54a0e33a7c974ba4d644f46bf3d332eb8966de68a4dcbfa2de733b78ce68",
459
+ "bytes": 5080,
460
+ "version": null
461
+ },
455
462
  {
456
463
  "nombre": "filament-admin",
457
464
  "path": "habilidades/filament-admin/SKILL.md",
@@ -714,9 +721,9 @@
714
721
  {
715
722
  "nombre": "node-experto",
716
723
  "path": "habilidades/node-experto/SKILL.md",
717
- "hash": "sha256:ff6a6ac7943a35273c0daaf554697fb85878a6328f5f55b69da839e4520152e8",
718
- "bytes": 11686,
719
- "version": "\"1.0.0\""
724
+ "hash": "sha256:8002768234ffb90d057d2d626488015c68bc969556e026b8c66542c681f3b8e6",
725
+ "bytes": 13538,
726
+ "version": "\"1.0.1\""
720
727
  },
721
728
  {
722
729
  "nombre": "notificaciones-multicanal",
@@ -914,6 +921,13 @@
914
921
  "bytes": 15651,
915
922
  "version": "\"1.0.0\""
916
923
  },
924
+ {
925
+ "nombre": "state-inconsistency-auditor-swl",
926
+ "path": "habilidades/state-inconsistency-auditor-swl/SKILL.md",
927
+ "hash": "sha256:fa1f2cbeba793f1d38c778b7ddca49f4c556dbf522de8edb10838dd54bd91c5f",
928
+ "bytes": 8013,
929
+ "version": null
930
+ },
917
931
  {
918
932
  "nombre": "stripe-pagos",
919
933
  "path": "habilidades/stripe-pagos/SKILL.md",
@@ -987,9 +1001,9 @@
987
1001
  {
988
1002
  "nombre": "tdd-workflow",
989
1003
  "path": "habilidades/tdd-workflow/SKILL.md",
990
- "hash": "sha256:4050e995cd6ce8422b965793c98605ce8a9ead4025784b5addb5a0cb24fc7acb",
991
- "bytes": 15307,
992
- "version": "\"1.0.1\""
1004
+ "hash": "sha256:5f63f554a6a54e1a3b9d47f2497ae12176eb955418d2b0b138a168475dc1d820",
1005
+ "bytes": 17424,
1006
+ "version": "\"1.0.2\""
993
1007
  },
994
1008
  {
995
1009
  "nombre": "terraform-experto",
@@ -1068,6 +1082,13 @@
1068
1082
  "bytes": 14619,
1069
1083
  "version": "\"1.1.1\""
1070
1084
  },
1085
+ {
1086
+ "nombre": "web-fetcher-routing",
1087
+ "path": "habilidades/web-fetcher-routing/SKILL.md",
1088
+ "hash": "sha256:14dc3cebbdc105c7c429f0456cc2e961ace63f9ea548f94b99da1b9e0b7c2074",
1089
+ "bytes": 3611,
1090
+ "version": null
1091
+ },
1071
1092
  {
1072
1093
  "nombre": "wiki-conocimiento",
1073
1094
  "path": "habilidades/wiki-conocimiento/SKILL.md",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@saulwade/swl-ses",
3
- "version": "1.4.0",
4
- "description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con 59 agentes, 155 habilidades, 43 comandos, 64 reglas y 41 hooks. Soporta 11 lenguajes y 5 runtimes: Claude Code, Copilot, OpenCode, Codex y Gemini CLI. 100% en espanol (Mexico). Incluye gateway bidireccional con relay Telegram a Claude Code.",
3
+ "version": "1.4.2",
4
+ "description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con 60 agentes, 158 habilidades, 44 comandos, 65 reglas y 41 hooks. Soporta 11 lenguajes y 5 runtimes: Claude Code, Copilot, OpenCode, Codex y Gemini CLI. 100% en espanol (Mexico). Incluye gateway bidireccional con relay Telegram a Claude Code y auditoria profunda Nemesis con 8 tools ejecutables.",
5
5
  "bin": {
6
6
  "swl-ses": "bin/swl-ses.js",
7
7
  "swl-telegram-bot": "bin/swl-telegram-bot.js",
@@ -1,105 +1,105 @@
1
- # Plantilla: Auditor con Veto Items + Cap Enforcement
2
-
3
- Plantilla reusable para revisores SWL que aplican el patrón "veto items + cap
4
- enforcement". Ver `reglas/gobernanza.md` sección "Veto items y cap enforcement".
5
-
6
- ---
7
-
8
- ## Cuándo usar esta plantilla
9
-
10
- Cuando crees o actualices un revisor (`revisor-*-swl.md`) que:
11
-
12
- - Audita cumplimiento de reglas globales del sistema (`reglas/*.md`).
13
- - Necesita comunicar al lector cuáles violaciones son **no negociables**.
14
- - Debe evitar que un score promedio "redondeado" oculte un problema crítico.
15
-
16
- ---
17
-
18
- ## Estructura a copiar (insertar antes de "Formato de reporte obligatorio")
19
-
20
- ```markdown
21
- ## Veto items — cap enforcement a [LÍMITE]
22
-
23
- Ciertos hallazgos son **no negociables**. Si encuentras CUALQUIERA de los
24
- siguientes, el `score` del reporte queda **CAP a [LÍMITE] como máximo absoluto**,
25
- independientemente de qué tan limpio esté el resto del código. Patrón adaptado
26
- del modelo de auditor con veto items (ver `reglas/gobernanza.md`).
27
-
28
- **Lista de veto items**:
29
-
30
- 1. **[Nombre del veto]**: [descripción específica + regla que viola].
31
- 2. ...
32
- N. ...
33
-
34
- **Reglas del cap**:
35
-
36
- - Encontrar 1 veto item → `score ≤ [LÍMITE]`. Veredicto automático:
37
- `RECHAZADO` o `APROBADO CON CORRECCIONES` (nunca `APROBADO` limpio).
38
- - Encontrar 2+ veto items → `score ≤ [LÍMITE_ESTRICTO]`. Bloqueo absoluto.
39
- - El veto NO se puede negociar bajando severidad.
40
- - El cap se levanta SOLO cuando se demuestra remediación (commit + test) y el
41
- revisor re-ejecuta la auditoría.
42
-
43
- Reportar al inicio del reporte con bloque dedicado:
44
-
45
- \`\`\`
46
- ### VETO ITEMS DETECTADOS
47
- - [VI-1] <descripción>: \`archivo:linea\` — <evidencia>
48
- - [VI-N] <descripción>: \`archivo:linea\` — <evidencia>
49
- → score CAP a [VALOR] ([N] veto items). Veredicto: [VEREDICTO].
50
- \`\`\`
51
-
52
- Si no se detecta ninguno: \`### VETO ITEMS DETECTADOS\n- Ninguno\`.
53
- ```
54
-
55
- ---
56
-
57
- ## Reglas para definir veto items
58
-
59
- Antes de declarar un veto item, verifica:
60
-
61
- 1. **¿Existe una regla global que lo respalde?** Si no, no es veto. Crear o
62
- actualizar la regla primero (`reglas/<dominio>.md`).
63
- 2. **¿Es objetivamente detectable?** Un veto debe ser binario (presente o
64
- ausente). Criterios subjetivos como "código feo" no califican.
65
- 3. **¿Su presencia justifica bloquear el merge?** Si el equipo puede aprobar
66
- el código sin corregirlo, no es veto — es hallazgo regular.
67
- 4. **¿Es proporcional al dominio del revisor?** Un revisor de seguridad no
68
- declara vetos de estilo. Cada revisor solo veta lo de su dominio.
69
- 5. **¿Está la lista cerrada?** Una lista de 50 veto items es señal de mala
70
- curación. Lo razonable: 8-15 items por revisor.
71
-
72
- ---
73
-
74
- ## Escalas recomendadas
75
-
76
- | Tipo de reporte | Cap con 1 veto | Cap con 2+ vetos |
77
- |-----------------|---------------|-----------------|
78
- | Score 0-100 (CVSSv3-like) | 60/100 | 30/100 |
79
- | Score 0-10 promedio por dimensión | 6.0/10 | 3.0/10 |
80
- | Score 0-1 (probabilístico) | 0.6 | 0.3 |
81
-
82
- ---
83
-
84
- ## Ejemplos en agentes existentes
85
-
86
- - `agentes/revisor-seguridad-swl.md` — 10 veto items de OWASP Top 10 + secrets + CVEs
87
- - `agentes/revisor-codigo-swl.md` — 10 veto items mapeando a `reglas/estilo-codigo.md`
88
- y `reglas/arquitectura.md`
89
-
90
- ---
91
-
92
- ## Cómo el ejecutor responde a un cap
93
-
94
- Si recibes un reporte con veto items detectados:
95
-
96
- 1. **NO negocies la severidad**. El cap está justificado por regla global.
97
- 2. **Aplica las correcciones específicas** que el revisor indica con
98
- archivo:línea.
99
- 3. **Agrega un test que pruebe la corrección** (regression test). Sin test,
100
- el veto puede regresar.
101
- 4. **Solicita re-revisión** al mismo revisor. Si el veto desapareció, el cap
102
- se levanta y el score se recalcula sin penalización.
103
- 5. **Si NO puedes corregir** (limitación externa, blocker técnico): documenta
104
- en `.planning/AUDITORIA.md` y escala al humano. NUNCA marques el trabajo
105
- como completado con vetos abiertos.
1
+ # Plantilla: Auditor con Veto Items + Cap Enforcement
2
+
3
+ Plantilla reusable para revisores SWL que aplican el patrón "veto items + cap
4
+ enforcement". Ver `reglas/gobernanza.md` sección "Veto items y cap enforcement".
5
+
6
+ ---
7
+
8
+ ## Cuándo usar esta plantilla
9
+
10
+ Cuando crees o actualices un revisor (`revisor-*-swl.md`) que:
11
+
12
+ - Audita cumplimiento de reglas globales del sistema (`reglas/*.md`).
13
+ - Necesita comunicar al lector cuáles violaciones son **no negociables**.
14
+ - Debe evitar que un score promedio "redondeado" oculte un problema crítico.
15
+
16
+ ---
17
+
18
+ ## Estructura a copiar (insertar antes de "Formato de reporte obligatorio")
19
+
20
+ ```markdown
21
+ ## Veto items — cap enforcement a [LÍMITE]
22
+
23
+ Ciertos hallazgos son **no negociables**. Si encuentras CUALQUIERA de los
24
+ siguientes, el `score` del reporte queda **CAP a [LÍMITE] como máximo absoluto**,
25
+ independientemente de qué tan limpio esté el resto del código. Patrón adaptado
26
+ del modelo de auditor con veto items (ver `reglas/gobernanza.md`).
27
+
28
+ **Lista de veto items**:
29
+
30
+ 1. **[Nombre del veto]**: [descripción específica + regla que viola].
31
+ 2. ...
32
+ N. ...
33
+
34
+ **Reglas del cap**:
35
+
36
+ - Encontrar 1 veto item → `score ≤ [LÍMITE]`. Veredicto automático:
37
+ `RECHAZADO` o `APROBADO CON CORRECCIONES` (nunca `APROBADO` limpio).
38
+ - Encontrar 2+ veto items → `score ≤ [LÍMITE_ESTRICTO]`. Bloqueo absoluto.
39
+ - El veto NO se puede negociar bajando severidad.
40
+ - El cap se levanta SOLO cuando se demuestra remediación (commit + test) y el
41
+ revisor re-ejecuta la auditoría.
42
+
43
+ Reportar al inicio del reporte con bloque dedicado:
44
+
45
+ \`\`\`
46
+ ### VETO ITEMS DETECTADOS
47
+ - [VI-1] <descripción>: \`archivo:linea\` — <evidencia>
48
+ - [VI-N] <descripción>: \`archivo:linea\` — <evidencia>
49
+ → score CAP a [VALOR] ([N] veto items). Veredicto: [VEREDICTO].
50
+ \`\`\`
51
+
52
+ Si no se detecta ninguno: \`### VETO ITEMS DETECTADOS\n- Ninguno\`.
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Reglas para definir veto items
58
+
59
+ Antes de declarar un veto item, verifica:
60
+
61
+ 1. **¿Existe una regla global que lo respalde?** Si no, no es veto. Crear o
62
+ actualizar la regla primero (`reglas/<dominio>.md`).
63
+ 2. **¿Es objetivamente detectable?** Un veto debe ser binario (presente o
64
+ ausente). Criterios subjetivos como "código feo" no califican.
65
+ 3. **¿Su presencia justifica bloquear el merge?** Si el equipo puede aprobar
66
+ el código sin corregirlo, no es veto — es hallazgo regular.
67
+ 4. **¿Es proporcional al dominio del revisor?** Un revisor de seguridad no
68
+ declara vetos de estilo. Cada revisor solo veta lo de su dominio.
69
+ 5. **¿Está la lista cerrada?** Una lista de 50 veto items es señal de mala
70
+ curación. Lo razonable: 8-15 items por revisor.
71
+
72
+ ---
73
+
74
+ ## Escalas recomendadas
75
+
76
+ | Tipo de reporte | Cap con 1 veto | Cap con 2+ vetos |
77
+ |-----------------|---------------|-----------------|
78
+ | Score 0-100 (CVSSv3-like) | 60/100 | 30/100 |
79
+ | Score 0-10 promedio por dimensión | 6.0/10 | 3.0/10 |
80
+ | Score 0-1 (probabilístico) | 0.6 | 0.3 |
81
+
82
+ ---
83
+
84
+ ## Ejemplos en agentes existentes
85
+
86
+ - `agentes/revisor-seguridad-swl.md` — 10 veto items de OWASP Top 10 + secrets + CVEs
87
+ - `agentes/revisor-codigo-swl.md` — 10 veto items mapeando a `reglas/estilo-codigo.md`
88
+ y `reglas/arquitectura.md`
89
+
90
+ ---
91
+
92
+ ## Cómo el ejecutor responde a un cap
93
+
94
+ Si recibes un reporte con veto items detectados:
95
+
96
+ 1. **NO negocies la severidad**. El cap está justificado por regla global.
97
+ 2. **Aplica las correcciones específicas** que el revisor indica con
98
+ archivo:línea.
99
+ 3. **Agrega un test que pruebe la corrección** (regression test). Sin test,
100
+ el veto puede regresar.
101
+ 4. **Solicita re-revisión** al mismo revisor. Si el veto desapareció, el cap
102
+ se levanta y el score se recalcula sin penalización.
103
+ 5. **Si NO puedes corregir** (limitación externa, blocker técnico): documenta
104
+ en `.planning/AUDITORIA.md` y escala al humano. NUNCA marques el trabajo
105
+ como completado con vetos abiertos.
@@ -1,47 +1,47 @@
1
- # Plantillas de GitHub Actions — swl-ses
2
-
3
- Tres workflows listos para copiar a `.github/workflows/` de cualquier proyecto.
4
-
5
- ## Cómo instalar
6
-
7
- La forma recomendada es via el comando interactivo:
8
-
9
- ```bash
10
- /swl:configurar-ci init
11
- ```
12
-
13
- O manualmente: copiar los archivos de esta carpeta a `.github/workflows/` de tu proyecto.
14
-
15
- ## Workflows disponibles
16
-
17
- ### `swl-security.yml` — Revisión de seguridad con Claude
18
-
19
- Corre en cada PR a `main`. Analiza el diff con `anthropics/claude-code-security-review`
20
- y comenta hallazgos directamente en el PR.
21
-
22
- **Requiere**: secret `CLAUDE_API_KEY` en GitHub Settings → Secrets and variables → Actions.
23
-
24
- ### `swl-ci.yml` — CI estándar
25
-
26
- Corre en push y PRs a `main`. Detecta Node.js automáticamente. Incluye secciones
27
- comentadas para Python, Rust y Go — activar las que correspondan al proyecto.
28
-
29
- - Matrix Node 22 + 24
30
- - `npm ci` → lint → type-check (si hay tsconfig.json) → tests
31
- - `concurrency: cancel-in-progress: true`
32
-
33
- **No requiere** secrets adicionales.
34
-
35
- ### `release-please.yml` — Releases automáticos
36
-
37
- Tras merge a `main`, crea un Release PR con el bump de versión y CHANGELOG
38
- generados desde conventional commits. Al mergear el Release PR, crea el tag
39
- y el GitHub Release.
40
-
41
- **No requiere** secrets adicionales (usa `GITHUB_TOKEN`). Requiere conventional commits.
42
-
43
- Ver `docs/RELEASE-PLEASE-MIGRATION.md` para comparativa con el flujo manual actual.
44
-
45
- ## Skill de referencia
46
-
47
- Para guía completa de setup, troubleshooting y gotchas: `Skill("infra-github-actions")`.
1
+ # Plantillas de GitHub Actions — swl-ses
2
+
3
+ Tres workflows listos para copiar a `.github/workflows/` de cualquier proyecto.
4
+
5
+ ## Cómo instalar
6
+
7
+ La forma recomendada es via el comando interactivo:
8
+
9
+ ```bash
10
+ /swl:configurar-ci init
11
+ ```
12
+
13
+ O manualmente: copiar los archivos de esta carpeta a `.github/workflows/` de tu proyecto.
14
+
15
+ ## Workflows disponibles
16
+
17
+ ### `swl-security.yml` — Revisión de seguridad con Claude
18
+
19
+ Corre en cada PR a `main`. Analiza el diff con `anthropics/claude-code-security-review`
20
+ y comenta hallazgos directamente en el PR.
21
+
22
+ **Requiere**: secret `CLAUDE_API_KEY` en GitHub Settings → Secrets and variables → Actions.
23
+
24
+ ### `swl-ci.yml` — CI estándar
25
+
26
+ Corre en push y PRs a `main`. Detecta Node.js automáticamente. Incluye secciones
27
+ comentadas para Python, Rust y Go — activar las que correspondan al proyecto.
28
+
29
+ - Matrix Node 22 + 24
30
+ - `npm ci` → lint → type-check (si hay tsconfig.json) → tests
31
+ - `concurrency: cancel-in-progress: true`
32
+
33
+ **No requiere** secrets adicionales.
34
+
35
+ ### `release-please.yml` — Releases automáticos
36
+
37
+ Tras merge a `main`, crea un Release PR con el bump de versión y CHANGELOG
38
+ generados desde conventional commits. Al mergear el Release PR, crea el tag
39
+ y el GitHub Release.
40
+
41
+ **No requiere** secrets adicionales (usa `GITHUB_TOKEN`). Requiere conventional commits.
42
+
43
+ Ver `docs/RELEASE-PLEASE-MIGRATION.md` para comparativa con el flujo manual actual.
44
+
45
+ ## Skill de referencia
46
+
47
+ Para guía completa de setup, troubleshooting y gotchas: `Skill("infra-github-actions")`.