@saulwade/swl-ses 2.6.0 → 2.8.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 (435) hide show
  1. package/CLAUDE.md +209 -197
  2. package/README.md +647 -600
  3. package/agentes/accesibilidad-wcag-swl.md +690 -690
  4. package/agentes/arquitecto-swl.md +267 -267
  5. package/agentes/auto-evolucion-swl.md +932 -932
  6. package/agentes/backend-csharp-swl.md +420 -420
  7. package/agentes/backend-go-swl.md +390 -390
  8. package/agentes/backend-java-swl.md +281 -281
  9. package/agentes/backend-rust-swl.md +364 -364
  10. package/agentes/backend-workers-swl.md +482 -482
  11. package/agentes/cloud-infra-swl.md +509 -509
  12. package/agentes/consolidador-swl.md +541 -541
  13. package/agentes/depurador-swl.md +352 -352
  14. package/agentes/devops-ci-swl.md +400 -400
  15. package/agentes/disenador-ui-swl.md +569 -569
  16. package/agentes/documentador-swl.md +345 -345
  17. package/agentes/frontend-angular-swl.md +621 -621
  18. package/agentes/frontend-css-swl.md +716 -716
  19. package/agentes/frontend-react-swl.md +692 -692
  20. package/agentes/frontend-swl.md +496 -496
  21. package/agentes/frontend-tailwind-swl.md +826 -826
  22. package/agentes/investigador-swl.md +432 -432
  23. package/agentes/investigador-ux-swl.md +505 -505
  24. package/agentes/migrador-swl.md +442 -442
  25. package/agentes/mobile-android-swl.md +511 -511
  26. package/agentes/mobile-cross-swl.md +541 -541
  27. package/agentes/mobile-ios-swl.md +502 -502
  28. package/agentes/mobile-testing-swl.md +302 -302
  29. package/agentes/nemesis-auditor-swl.md +285 -285
  30. package/agentes/observabilidad-swl.md +438 -438
  31. package/agentes/pagos-swl.md +310 -310
  32. package/agentes/perfilador-usuario-swl.md +321 -321
  33. package/agentes/planificador-swl.md +399 -399
  34. package/agentes/producto-prd-swl.md +589 -589
  35. package/agentes/red-team-swl.md +218 -218
  36. package/agentes/release-manager-swl.md +590 -590
  37. package/agentes/rendimiento-swl.md +713 -713
  38. package/agentes/revisor-angular-swl.md +278 -278
  39. package/agentes/revisor-csharp-swl.md +264 -264
  40. package/agentes/revisor-go-swl.md +259 -259
  41. package/agentes/revisor-java-swl.md +257 -257
  42. package/agentes/revisor-kotlin-swl.md +273 -273
  43. package/agentes/revisor-nextjs-swl.md +281 -281
  44. package/agentes/revisor-php-swl.md +271 -271
  45. package/agentes/revisor-react-swl.md +278 -278
  46. package/agentes/revisor-rust-swl.md +346 -346
  47. package/agentes/revisor-seguridad-swl.md +399 -399
  48. package/agentes/revisor-swift-swl.md +268 -268
  49. package/agentes/revisor-typescript-swl.md +346 -346
  50. package/agentes/tdd-qa-swl.md +393 -393
  51. package/bin/swl-ses.js +10 -0
  52. package/comandos/swl/actualizar.md +174 -174
  53. package/comandos/swl/adoptar-proyecto.md +265 -265
  54. package/comandos/swl/aprender.md +836 -836
  55. package/comandos/swl/aprobar-plan.md +146 -146
  56. package/comandos/swl/auditar-deps.md +134 -134
  57. package/comandos/swl/autoresearch.md +264 -264
  58. package/comandos/swl/ayuda.md +224 -224
  59. package/comandos/swl/brainstorm.md +52 -51
  60. package/comandos/swl/checkpoint.md +325 -325
  61. package/comandos/swl/claudemd.md +234 -234
  62. package/comandos/swl/compactar.md +310 -310
  63. package/comandos/swl/configurar-ci.md +235 -235
  64. package/comandos/swl/contexto.md +110 -110
  65. package/comandos/swl/crear-skill.md +292 -292
  66. package/comandos/swl/cron.md +194 -194
  67. package/comandos/swl/deuda-codigo.md +97 -97
  68. package/comandos/swl/discutir-fase.md +169 -169
  69. package/comandos/swl/ejecutar-fase.md +233 -233
  70. package/comandos/swl/evaluar-skill.md +520 -520
  71. package/comandos/swl/evolucion-continua.md +73 -73
  72. package/comandos/swl/evolucionar.md +267 -267
  73. package/comandos/swl/exportar-vault.md +583 -583
  74. package/comandos/swl/fix.md +118 -118
  75. package/comandos/swl/gateway.md +158 -158
  76. package/comandos/swl/inbox.md +116 -116
  77. package/comandos/swl/instalar.md +220 -220
  78. package/comandos/swl/instintos.md +86 -86
  79. package/comandos/swl/mapear-codebase.md +312 -312
  80. package/comandos/swl/mcp-status.md +176 -175
  81. package/comandos/swl/modelo.md +100 -100
  82. package/comandos/swl/nemesis.md +433 -433
  83. package/comandos/swl/notificaciones.md +299 -299
  84. package/comandos/swl/nuevo-proyecto.md +251 -251
  85. package/comandos/swl/planear-fase.md +263 -263
  86. package/comandos/swl/plugins.md +256 -256
  87. package/comandos/swl/predecir.md +169 -169
  88. package/comandos/swl/reflect-skills.md +125 -125
  89. package/comandos/swl/release.md +450 -450
  90. package/comandos/swl/revisar-impacto.md +201 -201
  91. package/comandos/swl/revisar.md +330 -330
  92. package/comandos/swl/seguridad.md +189 -189
  93. package/comandos/swl/sesiones.md +200 -200
  94. package/comandos/swl/skill-search.md +113 -113
  95. package/comandos/swl/status.md +345 -345
  96. package/comandos/swl/verificar.md +817 -817
  97. package/comandos/swl/wiki.md +620 -620
  98. package/gateway/cron/jobs.example.json +12 -12
  99. package/gateway/lib/event-channel.js +191 -191
  100. package/habilidades/agent-deep-links/SKILL.md +148 -148
  101. package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -294
  102. package/habilidades/backend-async-postgres-testing/SKILL.md +216 -215
  103. package/habilidades/backend-error-design/SKILL.md +221 -221
  104. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  105. package/habilidades/calidad-anti-patrones-universales/SKILL.md +105 -1
  106. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  107. package/habilidades/calidad-mutation-testing/SKILL.md +25 -1
  108. package/habilidades/changelog-generator/SKILL.md +174 -174
  109. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  110. package/habilidades/ci-cd-pipelines/SKILL.md +5 -1
  111. package/habilidades/compactacion-contexto/SKILL.md +2 -1
  112. package/habilidades/contenedores-docker/SKILL.md +4 -2
  113. package/habilidades/css-moderno/SKILL.md +7 -1
  114. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  115. package/habilidades/doubt-driven-review/SKILL.md +207 -207
  116. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  117. package/habilidades/drift-detection/SKILL.md +1 -1
  118. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  119. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  120. package/habilidades/extractor-de-aprendizajes/SKILL.md +12 -2
  121. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  122. package/habilidades/git-worktrees-paralelo/SKILL.md +19 -1
  123. package/habilidades/harness-claude-code/SKILL.md +315 -314
  124. package/habilidades/instalar-sistema/SKILL.md +227 -227
  125. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  126. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  127. package/habilidades/perfil-usuario/SKILL.md +200 -200
  128. package/habilidades/planear-fase/SKILL.md +358 -358
  129. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  130. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  131. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  132. package/habilidades/proceso-dynamic-workflows/SKILL.md +60 -0
  133. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  134. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  135. package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -147
  136. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  137. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  138. package/habilidades/release-semver/SKILL.md +2 -2
  139. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  140. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  141. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  142. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  143. package/habilidades/tdd-workflow/SKILL.md +749 -749
  144. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  145. package/hooks/agente-lifecycle.js +1 -1
  146. package/hooks/audit-trail.js +1 -1
  147. package/hooks/auto-consolidacion.js +1 -1
  148. package/hooks/calidad-pre-commit.js +159 -10
  149. package/hooks/captura-acciones-post.js +1 -1
  150. package/hooks/captura-acciones-session.js +1 -1
  151. package/hooks/captura-feedback-usuario.js +1 -1
  152. package/hooks/ciclo-evolucion-subagente.js +26 -26
  153. package/hooks/ciclo-evolucion.js +26 -26
  154. package/hooks/contexto-iteracion.js +1 -1
  155. package/hooks/degradacion-instintos.js +1 -1
  156. package/hooks/grafo-contexto.js +1 -1
  157. package/hooks/guardrail-modelo.js +1 -1
  158. package/hooks/inbox-aviso.js +1 -1
  159. package/hooks/inyeccion-contexto.js +1 -1
  160. package/hooks/lib/agent-matcher.js +1 -1
  161. package/hooks/lib/agent-routing.js +1 -1
  162. package/hooks/lib/auto-consolidator.js +335 -335
  163. package/hooks/lib/captura-acciones.js +1 -1
  164. package/hooks/lib/ciclo-evolucion.js +47 -47
  165. package/hooks/lib/deep-links.js +185 -185
  166. package/hooks/lib/error-classifier.js +308 -308
  167. package/hooks/lib/etapa-metricas.js +1 -1
  168. package/hooks/lib/evolution-tracker.js +1 -1
  169. package/hooks/lib/gateway-notify.js +193 -193
  170. package/hooks/lib/mcp-health.js +1 -1
  171. package/hooks/lib/notificacion-formato.js +92 -0
  172. package/hooks/lib/nudge-tracker.js +1 -1
  173. package/hooks/lib/otlp-exporter.js +1 -1
  174. package/hooks/lib/propose-step.js +1 -1
  175. package/hooks/lib/provenance-tracker.js +191 -191
  176. package/hooks/lib/raiz-proyecto.js +158 -102
  177. package/hooks/lib/resource-quota.js +122 -122
  178. package/hooks/lib/retry-jitter.js +165 -165
  179. package/hooks/lib/run-log.js +1 -1
  180. package/hooks/lib/security-net.js +201 -201
  181. package/hooks/lib/singleton-guard.js +20 -13
  182. package/hooks/lib/skill-auditor.js +588 -588
  183. package/hooks/lib/sync-status.js +228 -228
  184. package/hooks/lib/taint-tracker.js +107 -107
  185. package/hooks/lib/telegram-cliente.js +11 -3
  186. package/hooks/lib/text-similarity.js +241 -241
  187. package/hooks/lib/toon-compressor.js +245 -245
  188. package/hooks/notificacion-telegram.js +17 -13
  189. package/hooks/preservar-estado-pre-compact.js +1 -1
  190. package/hooks/registro-turnos.js +1 -1
  191. package/hooks/resumen-sesion.js +1 -1
  192. package/hooks/risk-scoring.js +1 -1
  193. package/hooks/session-briefing.js +13 -5
  194. package/hooks/spec-gate.js +1 -1
  195. package/hooks/sugerir-regenerar-inventario.js +1 -1
  196. package/hooks/tdd-gate.js +1 -1
  197. package/hooks/telemetria-agentes.js +1 -1
  198. package/hooks/telemetria-skill-routing.js +1 -1
  199. package/hooks/tracking-costos.js +1 -1
  200. package/hooks/validar-formato-post-subagente.js +1 -1
  201. package/hooks/validar-intent-spec.js +1 -1
  202. package/hooks/validar-planning-paths.js +1 -1
  203. package/instintos/autonomia.yaml +27 -27
  204. package/instintos/prompt-appendices.yaml +57 -57
  205. package/llms.txt +29 -29
  206. package/manifiestos/agent-output-schemas.json +57 -57
  207. package/manifiestos/canonical-hashes.json +6250 -5257
  208. package/manifiestos/harness-ir.json +47536 -0
  209. package/manifiestos/modulos.json +1429 -1428
  210. package/manifiestos/policy-bundle.json +2065 -0
  211. package/manifiestos/policy-corpus-w2.json +3926 -0
  212. package/manifiestos/runtime-adapters-core3.json +208 -0
  213. package/manifiestos/runtime-conformance.json +139 -0
  214. package/manifiestos/skills-lock.json +1275 -1275
  215. package/package.json +94 -94
  216. package/plantillas/auditor-veto-template.md +105 -105
  217. package/plantillas/github-workflows/release-please.yml +44 -44
  218. package/plantillas/github-workflows/swl-ci.yml +107 -107
  219. package/plantillas/github-workflows/swl-security.yml +51 -51
  220. package/plugin.json +369 -369
  221. package/reglas/accesibilidad.md +10 -10
  222. package/reglas/auditorias-documentales-estructurales.md +7 -7
  223. package/reglas/cloud-infra.md +8 -8
  224. package/reglas/consultar-vault-primero.md +195 -195
  225. package/reglas/git-workflow.md +1 -0
  226. package/reglas/hooks.md +6 -6
  227. package/reglas/intent-engineering.md +218 -218
  228. package/reglas/markitdown.md +8 -8
  229. package/reglas/monitor-ci.md +12 -0
  230. package/reglas/patrones.md +6 -6
  231. package/reglas/testing.md +7 -7
  232. package/reglas/tests-cleanup.md +224 -224
  233. package/schemas/agent-message.schema.json +73 -73
  234. package/schemas/agent-output-implementacion.schema.json +114 -114
  235. package/schemas/agent-output-planificacion.schema.json +150 -150
  236. package/schemas/agent-output-review.schema.json +98 -98
  237. package/schemas/diary-entry.schema.json +112 -112
  238. package/schemas/gate-state.schema.json +76 -0
  239. package/schemas/harness-ir.schema.json +369 -0
  240. package/schemas/hook-profiles.schema.json +54 -54
  241. package/schemas/hooks-config.schema.json +89 -89
  242. package/schemas/legacy-gates.schema.json +45 -0
  243. package/schemas/modulos.schema.json +38 -38
  244. package/schemas/perfiles.schema.json +36 -36
  245. package/schemas/plugin.schema.json +77 -77
  246. package/schemas/policy-bundle.schema.json +140 -0
  247. package/schemas/policy-enforcement.schema.json +117 -0
  248. package/schemas/policy-operation.schema.json +261 -0
  249. package/schemas/runtime-adapter.schema.json +176 -0
  250. package/schemas/runtime-build-attestation.schema.json +100 -0
  251. package/schemas/runtime-conformance.schema.json +239 -0
  252. package/schemas/runtime-diagnostic.schema.json +395 -0
  253. package/schemas/skill-evals.schema.json +119 -119
  254. package/schemas/skill-frontmatter.schema.json +245 -245
  255. package/schemas/w4-certification-request.schema.json +72 -0
  256. package/schemas/w4-certification-verdict.schema.json +224 -0
  257. package/schemas/w4-corpus.schema.json +172 -0
  258. package/schemas/w4-mutation-report.schema.json +116 -0
  259. package/schemas/w4-replay-result.schema.json +164 -0
  260. package/schemas/w4-scoring-report.schema.json +89 -0
  261. package/scripts/audit-tools/audit-history.js +330 -330
  262. package/scripts/audit-tools/bundle-tracker.js +290 -290
  263. package/scripts/audit-tools/canary-monitor.js +352 -352
  264. package/scripts/audit-tools/code-profiler.js +605 -605
  265. package/scripts/audit-tools/dep-doctor.js +320 -320
  266. package/scripts/audit-tools/env-validator.js +206 -206
  267. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  268. package/scripts/audit-tools/lib/output.js +23 -23
  269. package/scripts/audit-tools/migration-checker.js +392 -392
  270. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  271. package/scripts/auditar-clases-conocidas.js +134 -134
  272. package/scripts/bootstrap-instintos.js +88 -14
  273. package/scripts/canario-hooks.js +166 -166
  274. package/scripts/cli/aprobar-plan.js +73 -73
  275. package/scripts/cli/autonomia.js +23 -23
  276. package/scripts/cli/benchmark-memoria.js +37 -37
  277. package/scripts/cli/briefing.js +23 -23
  278. package/scripts/cli/ciclo-autonomo.js +73 -73
  279. package/scripts/cli/ciclo-evolucion.js +26 -26
  280. package/scripts/cli/ciclo-fase-b.js +102 -102
  281. package/scripts/cli/derivar-feature-list.js +25 -25
  282. package/scripts/cli/detectar-host.js +27 -27
  283. package/scripts/cli/diary-entry.js +69 -69
  284. package/scripts/cli/execution-state.js +18 -18
  285. package/scripts/cli/gateway-notify.js +41 -41
  286. package/scripts/cli/guardrail-metrics.js +39 -39
  287. package/scripts/cli/liberar-fase.js +42 -42
  288. package/scripts/cli/mark-evolved.js +56 -56
  289. package/scripts/cli/memoria-search.js +69 -69
  290. package/scripts/cli/metricas-dora.js +26 -26
  291. package/scripts/cli/near-duplicate.js +55 -55
  292. package/scripts/cli/notificaciones.js +123 -123
  293. package/scripts/cli/nudge-accionar.js +39 -39
  294. package/scripts/cli/propose-step.js +29 -29
  295. package/scripts/cli/run-eval.js +38 -38
  296. package/scripts/cli/schedule-parse.js +19 -19
  297. package/scripts/cli/sugerir-modelo.js +20 -20
  298. package/scripts/cli/verificar-plan.js +36 -36
  299. package/scripts/cli/verificar-trazabilidad.js +35 -35
  300. package/scripts/comandos/install-asistido.js +8 -7
  301. package/scripts/configurar-branch-protection.js +418 -418
  302. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  303. package/scripts/doctor.js +61 -13
  304. package/scripts/evidencia-valor.js +101 -101
  305. package/scripts/field-report.js +16 -16
  306. package/scripts/generar-checklists-consolidados.js +273 -273
  307. package/scripts/generar-claims-runtime.js +1342 -0
  308. package/scripts/generar-harness-ir.js +257 -0
  309. package/scripts/generar-inventario.js +52 -54
  310. package/scripts/generar-policy-bundle.js +202 -0
  311. package/scripts/instalador.js +39 -7
  312. package/scripts/lib/activar-hooks-proyecto.js +116 -116
  313. package/scripts/lib/approval-receipts.js +190 -0
  314. package/scripts/lib/artefactos-python.js +43 -43
  315. package/scripts/lib/benchmark-metrics.js +160 -160
  316. package/scripts/lib/budget-enforcer.js +252 -252
  317. package/scripts/lib/certificacion-loop-state.js +421 -0
  318. package/scripts/lib/ci-reader.js +193 -193
  319. package/scripts/lib/ciclo-autonomo/candidatos.js +174 -174
  320. package/scripts/lib/ciclo-autonomo/config.js +165 -165
  321. package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -174
  322. package/scripts/lib/ciclo-autonomo/fallback.js +77 -77
  323. package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -139
  324. package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -112
  325. package/scripts/lib/ciclo-autonomo/index.js +301 -301
  326. package/scripts/lib/ciclo-autonomo/lock.js +124 -124
  327. package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -122
  328. package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -240
  329. package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -248
  330. package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -190
  331. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +591 -535
  332. package/scripts/lib/clasificar-directorio.js +92 -0
  333. package/scripts/lib/contadores-inventario.js +217 -217
  334. package/scripts/lib/detectar-host-swl.js +175 -175
  335. package/scripts/lib/detectar-runtime.js +29 -20
  336. package/scripts/lib/detectar-stack-detallado.js +307 -307
  337. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  338. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  339. package/scripts/lib/eval-metrics-store.js +218 -218
  340. package/scripts/lib/eval-quality.js +171 -171
  341. package/scripts/lib/eval-schemas.js +144 -144
  342. package/scripts/lib/eval-self-correct.js +106 -106
  343. package/scripts/lib/eval-validator.js +185 -185
  344. package/scripts/lib/evidence-verifier.js +192 -0
  345. package/scripts/lib/evidencia-release.js +322 -322
  346. package/scripts/lib/evidencia-valor.js +228 -228
  347. package/scripts/lib/expandir-targets.js +71 -71
  348. package/scripts/lib/frontmatter-canonico.js +509 -0
  349. package/scripts/lib/gate-engine.js +871 -0
  350. package/scripts/lib/gate-hooks-requires.js +249 -249
  351. package/scripts/lib/gate-licencias.js +212 -212
  352. package/scripts/lib/git-config-preflight.js +48 -0
  353. package/scripts/lib/git-metricas.js +257 -257
  354. package/scripts/lib/harness-ir.js +778 -0
  355. package/scripts/lib/harness-source-snapshot.js +309 -0
  356. package/scripts/lib/integrity-ledger.js +1147 -0
  357. package/scripts/lib/jaccard-similarity.js +98 -98
  358. package/scripts/lib/legacy-gate-migration.js +324 -0
  359. package/scripts/lib/limpiar-basura-global.js +204 -0
  360. package/scripts/lib/longmemeval-runner.js +125 -125
  361. package/scripts/lib/metricas-dora.js +204 -204
  362. package/scripts/lib/notificaciones-telegram.js +1 -0
  363. package/scripts/lib/npm-version.js +1 -0
  364. package/scripts/lib/paquetes-conocidos.js +50 -50
  365. package/scripts/lib/plan-lock.js +61 -13
  366. package/scripts/lib/policy-broker.js +338 -0
  367. package/scripts/lib/policy-bundle.js +342 -0
  368. package/scripts/lib/policy-context-provider.js +310 -0
  369. package/scripts/lib/policy-contract.js +479 -0
  370. package/scripts/lib/policy-verifier-utils.js +65 -0
  371. package/scripts/lib/pr-analyzer.js +399 -399
  372. package/scripts/lib/principal-verifier.js +178 -0
  373. package/scripts/lib/prompt-builder.js +264 -264
  374. package/scripts/lib/resolver-plan-fase.js +37 -37
  375. package/scripts/lib/rrf-fusion.js +175 -175
  376. package/scripts/lib/runtime-adapter-contract.js +267 -0
  377. package/scripts/lib/runtime-artifact-verifier.js +426 -0
  378. package/scripts/lib/runtime-build-attestation.js +127 -0
  379. package/scripts/lib/runtime-bundle-installer.js +586 -0
  380. package/scripts/lib/runtime-compiler.js +327 -0
  381. package/scripts/lib/runtime-conformance.js +202 -0
  382. package/scripts/lib/runtime-doctor-core3.js +567 -0
  383. package/scripts/lib/runtime-doctor-input.js +59 -0
  384. package/scripts/lib/runtime-operation-adapter.js +267 -0
  385. package/scripts/lib/schema-version.js +164 -164
  386. package/scripts/lib/semantic-search.js +252 -252
  387. package/scripts/lib/signed-envelope.js +545 -0
  388. package/scripts/lib/single-use-store.js +359 -0
  389. package/scripts/lib/skills-externas.js +31 -0
  390. package/scripts/lib/toml-merge.js +204 -204
  391. package/scripts/lib/transformadores/codex.js +15 -8
  392. package/scripts/lib/transformadores/gemini.js +79 -5
  393. package/scripts/lib/w4-attestation-adapter.js +158 -0
  394. package/scripts/lib/w4-canario.js +337 -0
  395. package/scripts/lib/w4-claims.js +182 -0
  396. package/scripts/lib/w4-corpus-generador.js +542 -0
  397. package/scripts/lib/w4-gate-c5.js +115 -0
  398. package/scripts/lib/w4-harness-bajo-prueba.js +155 -0
  399. package/scripts/lib/w4-matriz-combos.js +55 -0
  400. package/scripts/lib/w4-motor-mutacion.js +1348 -0
  401. package/scripts/lib/w4-motor-replay.js +735 -0
  402. package/scripts/lib/w4-pin-origen.js +54 -0
  403. package/scripts/lib/w4-publicar-request.js +132 -0
  404. package/scripts/lib/w4-revocacion.js +62 -0
  405. package/scripts/lib/w4-runtimes-core3.js +38 -0
  406. package/scripts/lib/w4-scorer-certificacion.js +692 -0
  407. package/scripts/lib/w4-superficie-candidato.js +49 -0
  408. package/scripts/lib/w4-veredicto.js +452 -0
  409. package/scripts/lib/w4-verificar-veredicto.js +302 -0
  410. package/scripts/limpiar-artefactos-python.js +131 -131
  411. package/scripts/mcp-server/auth.js +105 -105
  412. package/scripts/mcp-server/cache.js +106 -106
  413. package/scripts/migrar-csv-a-array.js +168 -168
  414. package/scripts/migrar-fase-dominio.js +200 -200
  415. package/scripts/migrar-gates-legacy.js +108 -0
  416. package/scripts/publicar-certification-request.js +115 -0
  417. package/scripts/runtime-doctor.js +107 -0
  418. package/scripts/tui/componentes/selector-multi.js +189 -189
  419. package/scripts/tui/componentes/selector-unico.js +158 -158
  420. package/scripts/tui/ejecutores.js +375 -375
  421. package/scripts/tui/lib/colores.js +129 -129
  422. package/scripts/tui/lib/render.js +264 -264
  423. package/scripts/tui/lib/teclas.js +113 -113
  424. package/scripts/tui/pantallas/install-wizard.js +408 -403
  425. package/scripts/tui/pantallas/menu-principal.js +52 -52
  426. package/scripts/tui/pantallas/progreso.js +274 -274
  427. package/scripts/tui/pantallas/resumen.js +132 -132
  428. package/scripts/validar-userland-vacio.js +110 -110
  429. package/scripts/verificar-aislamiento-swl-eval.js +87 -0
  430. package/scripts/verificar-empaquetado-downstream.js +375 -0
  431. package/scripts/verificar-loop-constructor.js +215 -0
  432. package/scripts/verificar-trazabilidad.js +13 -6
  433. package/scripts/verificar-veredicto-real.js +84 -0
  434. package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +0 -53
  435. package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +0 -372
@@ -1,146 +1,146 @@
1
- ---
2
- name: swl:aprobar-plan
3
- description: Aprueba el PLAN.md de una fase y lo firma con un lock SHA256 (gate G1 de SDD). Transiciona el frontmatter de estado borrador a aprobado y escribe .planning/locks/<plan>.lock. Es la única vía válida de aprobación — ejecutar-fase verifica este lock antes de implementar y detiene la ejecución si el plan fue mutado tras la firma.
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob"]
5
- ---
6
-
7
- # /swl:aprobar-plan <n> — Aprobar y firmar el plan de una fase (Gate G1)
8
-
9
- Eres el guardián del gate G1 del enforcement SDD. Tu trabajo es transicionar un
10
- PLAN de `borrador` a `aprobado` Y firmarlo con un lock SHA256, de modo que
11
- cualquier mutación posterior del plan sea detectable por `/swl:ejecutar-fase`.
12
-
13
- Este comando es la **única vía documentada de aprobación**. Editar el frontmatter
14
- a mano (`estado: aprobado`) deja el plan en modo legacy (cláusula de gracia D-05):
15
- se ejecuta con advertencia pero sin protección de integridad. Usar este comando
16
- es lo que activa el gate real.
17
-
18
- > **Invocación cross-scope** (ver `@docs/invocacion-cli-cross-scope.md`): las
19
- > partes deterministas del gate viven en subcomandos del CLI. Resuélvelos así:
20
- > si existe `./scripts/cli/<sub>.js` (repo madre) usa `node scripts/cli/<sub>.js`;
21
- > si `command -v swl-ses` responde usa `swl-ses <sub>`; si no,
22
- > `npx -y @saulwade/swl-ses@latest <sub>`. Abajo escribo la forma `swl-ses <sub>`
23
- > como canónica. NUNCA uses `node -e "require('./scripts/lib/...')"` — esa ruta no
24
- > existe en proyectos downstream.
25
-
26
- ## Uso
27
-
28
- ```
29
- /swl:aprobar-plan 9
30
- ```
31
-
32
- El argumento `<n>` es el número de la fase cuyo PLAN se aprueba.
33
-
34
- ## Paso 1 — Localizar el PLAN
35
-
36
- Resuelve la ruta `.planning/fases/0N-PLAN.md` (N con cero a la izquierda si N < 10).
37
-
38
- - Si no existe: detente con "No existe el PLAN de la fase N. Ejecuta `/swl:planear-fase N` primero."
39
- - Lee el archivo completo.
40
-
41
- ## Paso 2 — Validar el estado actual del frontmatter
42
-
43
- Lee el campo `estado:` del frontmatter:
44
-
45
- - Si `estado: borrador` → continúa al Paso 3 (caso normal).
46
- - Si `estado: aprobado` → ya está aprobado. Verifica si existe el lock:
47
- ```bash
48
- swl-ses verificar-plan --fase=N
49
- ```
50
- - Si `modo: "firmado"` → informa "El plan ya está aprobado y firmado." y termina.
51
- - Si `modo: "legacy"` (aprobado sin lock) → pregunta al usuario: "El plan está
52
- aprobado pero sin firmar (modo legacy). ¿Lo firmo ahora para activar el gate
53
- G1?" Si confirma, salta al Paso 4 (firmar sin re-transicionar).
54
- - Si `modo: "mutado"` → el plan cambió tras una firma previa. Informa el
55
- `hashEsperado` vs `hashActual` y pregunta si re-aprobar (re-firmar el estado
56
- actual). Procede solo con confirmación explícita.
57
- - Si no hay campo `estado` → detente: "El PLAN no tiene campo `estado` en el
58
- frontmatter. Revisa que sea un plan válido generado por `/swl:planear-fase`."
59
-
60
- ## Paso 2.5 — Validar la matriz REQ×T (trazabilidad G4)
61
-
62
- Lee `.planning/fases/0N-CONTEXTO.md` y extrae los IDs `REQ-NN:` (fases 01-11) o
63
- `REQ-<fase>-NN:` (namespaceados, fases ≥12) de la sección de criterios de
64
- aceptación. `verificar-trazabilidad.js` reconoce ambos formatos.
65
-
66
- - **CONTEXTO sin REQ-IDs** (fases legacy 01-09): advertencia informativa
67
- ("CONTEXTO sin REQ-IDs — trazabilidad no exigible, gracia legacy") y continúa.
68
- - **CONTEXTO con REQ-IDs**: verifica que el PLAN cubra TODOS:
69
- ```bash
70
- swl-ses verificar-trazabilidad --fase=N --solo-plan
71
- ```
72
- - Exit 0 → continúa al Paso 3.
73
- - Exit 1 (REQ huérfanos) → **RECHAZA la aprobación**. Lista los REQ sin tarea y
74
- remite a `/swl:planear-fase N` para cubrirlos (o a retirar el REQ del CONTEXTO
75
- con marca "RETIRADO — razón"). NO firmes un plan con REQ huérfanos.
76
- - **WARN "headers de tarea malformados"** (warn-only, no cambia el exit): si el
77
- reporte lista headers como `#### T-01 — ...`, son la **causa silenciosa** de
78
- REQ huérfanos. El parser de la matriz exige `### T-NN:` (2-4 `#`, dos puntos
79
- tras el ID; nunca em-dash). Corrige el separador en el PLAN y re-ejecuta antes
80
- de aprobar — un header con `—` deja la tarea invisible aunque declare su REQ.
81
-
82
- ## Paso 3 — Confirmar con el usuario antes de aprobar
83
-
84
- NUNCA apruebes sin confirmación explícita. Presenta un resumen breve del plan
85
- (número de slices, tareas, slices HITL) y pregunta:
86
-
87
- ```
88
- El plan de la fase N tiene [X] slices y [Y] tareas ([Z] HITL).
89
- ¿Confirmas la aprobación? Al aprobar se firma con SHA256 y queda inmutable:
90
- cualquier edición posterior detendrá /swl:ejecutar-fase.
91
- ```
92
-
93
- Espera respuesta afirmativa. Si el usuario pide cambios, NO apruebes — remítelo
94
- a `/swl:planear-fase N` para refinar.
95
-
96
- ## Paso 4 — Transicionar y firmar
97
-
98
- 1. **Transicionar** (omitir si el plan ya estaba `aprobado` en modo legacy):
99
- edita el frontmatter `estado: borrador` → `estado: aprobado` y agrega
100
- `aprobadoPor: usuario (<nombre>) — <fecha>, via /swl:aprobar-plan`.
101
-
102
- 2. **Firmar y marcar la fase activa** — un solo subcomando hace las tres
103
- operaciones deterministas: firma SHA256 → `.planning/locks/0N-PLAN.md.lock`,
104
- verifica la firma, y escribe `.planning/locks/fase-activa.json` (gate G0 que
105
- consume `hooks/spec-gate.js`):
106
- ```bash
107
- swl-ses aprobar-plan --fase=N
108
- ```
109
- Verifica en la salida JSON que `ok: true` y `modo: "firmado"`. Si reporta
110
- error de firma, **NO continúes** — revisa el `motivo`.
111
-
112
- El `.lock` SÍ se versiona en git (evidencia de aprobación, parte del audit
113
- trail SDD). El `fase-activa.json` es runtime local (gitignored);
114
- `/swl:ejecutar-fase` lo elimina al cerrar la fase. Re-ejecutar
115
- `swl-ses aprobar-plan --fase=N` tras una re-aprobación (plan mutado) realinea
116
- lock y fase-activa automáticamente.
117
-
118
- ## Paso 5 — Reporte
119
-
120
- ```
121
- Plan de la fase N aprobado y firmado (gate G1 activo).
122
-
123
- estado: borrador -> aprobado
124
- lock: .planning/locks/0N-PLAN.md.lock
125
- fase activa: .planning/locks/fase-activa.json (gate G0 cubierto)
126
- sha256: <hash corto>
127
-
128
- Cualquier edición del PLAN tras esta firma detendrá /swl:ejecutar-fase con un
129
- mensaje de "plan mutado tras aprobación". Para cambiar el plan: edítalo y vuelve
130
- a ejecutar /swl:aprobar-plan N.
131
-
132
- Próximo paso: /swl:ejecutar-fase N
133
- ```
134
-
135
- ## Reglas de comportamiento
136
-
137
- - NUNCA apruebes un plan sin confirmación explícita del usuario.
138
- - NUNCA modifiques el contenido del plan al aprobarlo — solo el campo `estado`
139
- del frontmatter y la línea `aprobadoPor`. El cuerpo es lo que se firma.
140
- - El lock vive en `.planning/locks/` y SÍ se versiona en git (es evidencia de
141
- aprobación, parte del audit trail de SDD).
142
- - Si el usuario quiere cambiar el plan después de aprobado, el flujo correcto es
143
- editar el PLAN y re-ejecutar `/swl:aprobar-plan N` (re-firma). NUNCA editar el
144
- lock a mano.
145
- - El número de versión del release que publique esta fase lo decide el usuario
146
- (regla CLAUDE.md) — este comando no toca versiones.
1
+ ---
2
+ name: swl:aprobar-plan
3
+ description: Aprueba el PLAN.md de una fase y lo firma con un lock SHA256 (gate G1 de SDD). Transiciona el frontmatter de estado borrador a aprobado y escribe .planning/locks/<plan>.lock. Es la única vía válida de aprobación — ejecutar-fase verifica este lock antes de implementar y detiene la ejecución si el plan fue mutado tras la firma.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob"]
5
+ ---
6
+
7
+ # /swl:aprobar-plan <n> — Aprobar y firmar el plan de una fase (Gate G1)
8
+
9
+ Eres el guardián del gate G1 del enforcement SDD. Tu trabajo es transicionar un
10
+ PLAN de `borrador` a `aprobado` Y firmarlo con un lock SHA256, de modo que
11
+ cualquier mutación posterior del plan sea detectable por `/swl:ejecutar-fase`.
12
+
13
+ Este comando es la **única vía documentada de aprobación**. Editar el frontmatter
14
+ a mano (`estado: aprobado`) deja el plan en modo legacy (cláusula de gracia D-05):
15
+ se ejecuta con advertencia pero sin protección de integridad. Usar este comando
16
+ es lo que activa el gate real.
17
+
18
+ > **Invocación cross-scope** (ver `@docs/invocacion-cli-cross-scope.md`): las
19
+ > partes deterministas del gate viven en subcomandos del CLI. Resuélvelos así:
20
+ > si existe `./scripts/cli/<sub>.js` (repo madre) usa `node scripts/cli/<sub>.js`;
21
+ > si `command -v swl-ses` responde usa `swl-ses <sub>`; si no,
22
+ > `npx -y @saulwade/swl-ses@latest <sub>`. Abajo escribo la forma `swl-ses <sub>`
23
+ > como canónica. NUNCA uses `node -e "require('./scripts/lib/...')"` — esa ruta no
24
+ > existe en proyectos downstream.
25
+
26
+ ## Uso
27
+
28
+ ```
29
+ /swl:aprobar-plan 9
30
+ ```
31
+
32
+ El argumento `<n>` es el número de la fase cuyo PLAN se aprueba.
33
+
34
+ ## Paso 1 — Localizar el PLAN
35
+
36
+ Resuelve la ruta `.planning/fases/0N-PLAN.md` (N con cero a la izquierda si N < 10).
37
+
38
+ - Si no existe: detente con "No existe el PLAN de la fase N. Ejecuta `/swl:planear-fase N` primero."
39
+ - Lee el archivo completo.
40
+
41
+ ## Paso 2 — Validar el estado actual del frontmatter
42
+
43
+ Lee el campo `estado:` del frontmatter:
44
+
45
+ - Si `estado: borrador` → continúa al Paso 3 (caso normal).
46
+ - Si `estado: aprobado` → ya está aprobado. Verifica si existe el lock:
47
+ ```bash
48
+ swl-ses verificar-plan --fase=N
49
+ ```
50
+ - Si `modo: "firmado"` → informa "El plan ya está aprobado y firmado." y termina.
51
+ - Si `modo: "legacy"` (aprobado sin lock) → pregunta al usuario: "El plan está
52
+ aprobado pero sin firmar (modo legacy). ¿Lo firmo ahora para activar el gate
53
+ G1?" Si confirma, salta al Paso 4 (firmar sin re-transicionar).
54
+ - Si `modo: "mutado"` → el plan cambió tras una firma previa. Informa el
55
+ `hashEsperado` vs `hashActual` y pregunta si re-aprobar (re-firmar el estado
56
+ actual). Procede solo con confirmación explícita.
57
+ - Si no hay campo `estado` → detente: "El PLAN no tiene campo `estado` en el
58
+ frontmatter. Revisa que sea un plan válido generado por `/swl:planear-fase`."
59
+
60
+ ## Paso 2.5 — Validar la matriz REQ×T (trazabilidad G4)
61
+
62
+ Lee `.planning/fases/0N-CONTEXTO.md` y extrae los IDs `REQ-NN:` (fases 01-11) o
63
+ `REQ-<fase>-NN:` (namespaceados, fases ≥12) de la sección de criterios de
64
+ aceptación. `verificar-trazabilidad.js` reconoce ambos formatos.
65
+
66
+ - **CONTEXTO sin REQ-IDs** (fases legacy 01-09): advertencia informativa
67
+ ("CONTEXTO sin REQ-IDs — trazabilidad no exigible, gracia legacy") y continúa.
68
+ - **CONTEXTO con REQ-IDs**: verifica que el PLAN cubra TODOS:
69
+ ```bash
70
+ swl-ses verificar-trazabilidad --fase=N --solo-plan
71
+ ```
72
+ - Exit 0 → continúa al Paso 3.
73
+ - Exit 1 (REQ huérfanos) → **RECHAZA la aprobación**. Lista los REQ sin tarea y
74
+ remite a `/swl:planear-fase N` para cubrirlos (o a retirar el REQ del CONTEXTO
75
+ con marca "RETIRADO — razón"). NO firmes un plan con REQ huérfanos.
76
+ - **WARN "headers de tarea malformados"** (warn-only, no cambia el exit): si el
77
+ reporte lista headers como `#### T-01 — ...`, son la **causa silenciosa** de
78
+ REQ huérfanos. El parser de la matriz exige `### T-NN:` (2-4 `#`, dos puntos
79
+ tras el ID; nunca em-dash). Corrige el separador en el PLAN y re-ejecuta antes
80
+ de aprobar — un header con `—` deja la tarea invisible aunque declare su REQ.
81
+
82
+ ## Paso 3 — Confirmar con el usuario antes de aprobar
83
+
84
+ NUNCA apruebes sin confirmación explícita. Presenta un resumen breve del plan
85
+ (número de slices, tareas, slices HITL) y pregunta:
86
+
87
+ ```
88
+ El plan de la fase N tiene [X] slices y [Y] tareas ([Z] HITL).
89
+ ¿Confirmas la aprobación? Al aprobar se firma con SHA256 y queda inmutable:
90
+ cualquier edición posterior detendrá /swl:ejecutar-fase.
91
+ ```
92
+
93
+ Espera respuesta afirmativa. Si el usuario pide cambios, NO apruebes — remítelo
94
+ a `/swl:planear-fase N` para refinar.
95
+
96
+ ## Paso 4 — Transicionar y firmar
97
+
98
+ 1. **Transicionar** (omitir si el plan ya estaba `aprobado` en modo legacy):
99
+ edita el frontmatter `estado: borrador` → `estado: aprobado` y agrega
100
+ `aprobadoPor: usuario (<nombre>) — <fecha>, via /swl:aprobar-plan`.
101
+
102
+ 2. **Firmar y marcar la fase activa** — un solo subcomando hace las tres
103
+ operaciones deterministas: firma SHA256 → `.planning/locks/0N-PLAN.md.lock`,
104
+ verifica la firma, y escribe `.planning/locks/fase-activa.json` (gate G0 que
105
+ consume `hooks/spec-gate.js`):
106
+ ```bash
107
+ swl-ses aprobar-plan --fase=N
108
+ ```
109
+ Verifica en la salida JSON que `ok: true` y `modo: "firmado"`. Si reporta
110
+ error de firma, **NO continúes** — revisa el `motivo`.
111
+
112
+ El `.lock` SÍ se versiona en git (evidencia de aprobación, parte del audit
113
+ trail SDD). El `fase-activa.json` es runtime local (gitignored);
114
+ `/swl:ejecutar-fase` lo elimina al cerrar la fase. Re-ejecutar
115
+ `swl-ses aprobar-plan --fase=N` tras una re-aprobación (plan mutado) realinea
116
+ lock y fase-activa automáticamente.
117
+
118
+ ## Paso 5 — Reporte
119
+
120
+ ```
121
+ Plan de la fase N aprobado y firmado (gate G1 activo).
122
+
123
+ estado: borrador -> aprobado
124
+ lock: .planning/locks/0N-PLAN.md.lock
125
+ fase activa: .planning/locks/fase-activa.json (gate G0 cubierto)
126
+ sha256: <hash corto>
127
+
128
+ Cualquier edición del PLAN tras esta firma detendrá /swl:ejecutar-fase con un
129
+ mensaje de "plan mutado tras aprobación". Para cambiar el plan: edítalo y vuelve
130
+ a ejecutar /swl:aprobar-plan N.
131
+
132
+ Próximo paso: /swl:ejecutar-fase N
133
+ ```
134
+
135
+ ## Reglas de comportamiento
136
+
137
+ - NUNCA apruebes un plan sin confirmación explícita del usuario.
138
+ - NUNCA modifiques el contenido del plan al aprobarlo — solo el campo `estado`
139
+ del frontmatter y la línea `aprobadoPor`. El cuerpo es lo que se firma.
140
+ - El lock vive en `.planning/locks/` y SÍ se versiona en git (es evidencia de
141
+ aprobación, parte del audit trail de SDD).
142
+ - Si el usuario quiere cambiar el plan después de aprobado, el flujo correcto es
143
+ editar el PLAN y re-ejecutar `/swl:aprobar-plan N` (re-firma). NUNCA editar el
144
+ lock a mano.
145
+ - El número de versión del release que publique esta fase lo decide el usuario
146
+ (regla CLAUDE.md) — este comando no toca versiones.
@@ -1,134 +1,134 @@
1
- ---
2
- name: swl:auditar-deps
3
- description: Auditoría completa de dependencias del proyecto. Escanea package.json, requirements.txt y pyproject.toml. Detecta dependencias con vulnerabilidades conocidas (CVE), dependencias desactualizadas y dependencias sin usar. Genera reporte priorizado. Flags: --fix (actualiza menores automáticamente), --json.
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
- ---
6
-
7
- # /swl:auditar-deps — Auditoría de dependencias
8
-
9
- Eres el auditor de dependencias del proyecto. Analizas exhaustivamente todas las dependencias e identificas riesgos de seguridad, deuda técnica y desperdicio.
10
-
11
- **Carga**: `Skill("dependencias-auditoria")` — contiene las categorías de riesgo (CVEs, licencias, abandonadas, desactualizadas), herramientas por stack, proceso paso a paso y plantilla de reporte. Delega toda lógica de auditoría y criterios de severidad al skill.
12
-
13
- ## Cuándo usar este comando
14
-
15
- - Al inicio de un proyecto heredado
16
- - Antes de hacer un release a producción
17
- - Mensualmente como mantenimiento preventivo
18
- - Cuando CI/CD reporta fallos de auditoría de seguridad
19
- - Cuando se agrega una dependencia nueva
20
-
21
- ## Flags soportados
22
-
23
- ```
24
- --fix Actualiza automáticamente dependencias PATCH y MINOR sin breaking changes.
25
- Requiere confirmación antes de escribir. NUNCA actualiza MAJOR.
26
- --json Genera reporte también en formato JSON (audit-report.json).
27
- ```
28
-
29
- ## Paso 0 — Detección de ecosistemas
30
-
31
- Detecta qué ecosistemas están presentes:
32
-
33
- ```bash
34
- ls package.json package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null
35
- ls requirements.txt requirements-dev.txt pyproject.toml setup.py Pipfile 2>/dev/null
36
- ls Gemfile go.mod Cargo.toml composer.json 2>/dev/null
37
- ```
38
-
39
- Reporta ecosistemas detectados. Soporte completo para Node.js y Python; para otros, reporta verificaciones disponibles.
40
-
41
- ## Paso 1 — Auditoría de vulnerabilidades (CVEs)
42
-
43
- Ejecuta los scanners del skill (`Skill("dependencias-auditoria")` seccion "Herramientas y comandos por stack"):
44
-
45
- - **Node.js**: `npm audit --json`
46
- - **Python**: `pip-audit` (preferido) o `safety check`
47
-
48
- Clasifica por severidad CVSS según la tabla del skill (Critica 9.0-10.0, Alta 7.0-8.9, Media 4.0-6.9, Baja 0.1-3.9).
49
-
50
- Si las herramientas no están disponibles, reportar exactamente qué falta y comandos de instalación.
51
-
52
- ## Paso 2 — Dependencias desactualizadas
53
-
54
- - **Node.js**: `npm outdated --json`
55
- - **Python**: `pip list --outdated --format=json`
56
-
57
- Clasifica en PATCH/MINOR/MAJOR. Marca como "DEUDA TECNICA CRITICA" si hay 2+ versiones MAJOR de retraso. Marca "POSIBLEMENTE ABANDONADA" si sin actualizaciones en 1+ año.
58
-
59
- ## Paso 3 — Dependencias sin usar
60
-
61
- - **Node.js**: `npx depcheck --json`
62
- - **Python**: análisis heurístico de imports vs paquetes instalados
63
-
64
- Nota: la detección en Python es heurística. Siempre verificar manualmente antes de eliminar.
65
-
66
- ## Paso 4 — Análisis de licencias
67
-
68
- Usa las herramientas del skill:
69
- - **Node.js**: `npx license-checker --json`
70
- - **Python**: `pip-licenses --format=json`
71
-
72
- Identifica licencias problemáticas según la tabla del skill (GPL, AGPL, LGPL, SSPL).
73
-
74
- ## Paso 5 — Verificación de lockfile
75
-
76
- - `requirements.txt` sin pins exactos -> ADVERTENCIA
77
- - `package.json` con rangos amplios en producción -> ADVERTENCIA
78
- - Lockfile desincronizado con manifiesto -> ERROR
79
-
80
- ## Paso 6 — Generar reporte
81
-
82
- Escribe `AUDIT-REPORT.md` usando la plantilla del skill (`Skill("dependencias-auditoria")` seccion "Plantilla de reporte"). Incluye:
83
-
84
- - Resumen ejecutivo con tabla de hallazgos
85
- - Score de salud: `100 - (criticas x 25) - (altas x 10) - (medias x 3) - (bajas x 1)`, minimo 0
86
- - Hallazgos priorizados (P1: acción inmediata -> P5: revisión de arquitectura)
87
- - Comandos de corrección específicos
88
-
89
- Si `--json`, escribir también `audit-report.json`.
90
-
91
- ## Paso 7 — Aplicar fixes automáticos (si --fix)
92
-
93
- Presenta lista de actualizaciones PATCH y MINOR que se aplicarán. Muestra también lo que NO se actualizará (MAJOR). Espera confirmación ("confirmo").
94
-
95
- ```bash
96
- npm update 2>&1 # Node.js
97
- pip install --upgrade [paquetes] 2>&1 # Python
98
- ```
99
-
100
- Después de aplicar, re-ejecutar auditoría de vulnerabilidades para verificar correcciones.
101
-
102
- ## Paso 8 — Reporte al usuario
103
-
104
- ```
105
- === Auditoría de dependencias completada ===
106
-
107
- Ecosistemas auditados: [lista]
108
- Total dependencias analizadas: [N]
109
-
110
- Hallazgos:
111
- Vulnerabilidades CRITICAS: [N] (acción hoy)
112
- Vulnerabilidades ALTAS: [N] (esta semana)
113
- Vulnerabilidades MEDIAS: [N] (este sprint)
114
- Vulnerabilidades BAJAS: [N] (backlog)
115
- Desactualizadas: [N] ([N] major, [N] minor, [N] patch)
116
- Sin usar: [N]
117
- Problemas de licencia: [N]
118
-
119
- Score de salud: [N]/100
120
- Reportes: AUDIT-REPORT.md [audit-report.json si aplica]
121
-
122
- Próximos pasos:
123
- 1. [acción más urgente]
124
- 2. [segunda acción]
125
- ```
126
-
127
- ## Reglas de comportamiento
128
-
129
- - NUNCA eliminar dependencias automáticamente — solo reportar y sugerir.
130
- - NUNCA aplicar actualizaciones MAJOR con `--fix`. Siempre requieren revisión humana.
131
- - Vulnerabilidades CRITICAS al inicio del reporte, no sepultadas en una lista.
132
- - Score de salud objetivo — no inflarlo.
133
- - Si las herramientas no están disponibles, reportar qué falta, no simular resultados.
134
- - Si `--fix` rompe tests, reportar y sugerir `git checkout` de archivos de dependencias.
1
+ ---
2
+ name: swl:auditar-deps
3
+ description: Auditoría completa de dependencias del proyecto. Escanea package.json, requirements.txt y pyproject.toml. Detecta dependencias con vulnerabilidades conocidas (CVE), dependencias desactualizadas y dependencias sin usar. Genera reporte priorizado. Flags: --fix (actualiza menores automáticamente), --json.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:auditar-deps — Auditoría de dependencias
8
+
9
+ Eres el auditor de dependencias del proyecto. Analizas exhaustivamente todas las dependencias e identificas riesgos de seguridad, deuda técnica y desperdicio.
10
+
11
+ **Carga**: `Skill("dependencias-auditoria")` — contiene las categorías de riesgo (CVEs, licencias, abandonadas, desactualizadas), herramientas por stack, proceso paso a paso y plantilla de reporte. Delega toda lógica de auditoría y criterios de severidad al skill.
12
+
13
+ ## Cuándo usar este comando
14
+
15
+ - Al inicio de un proyecto heredado
16
+ - Antes de hacer un release a producción
17
+ - Mensualmente como mantenimiento preventivo
18
+ - Cuando CI/CD reporta fallos de auditoría de seguridad
19
+ - Cuando se agrega una dependencia nueva
20
+
21
+ ## Flags soportados
22
+
23
+ ```
24
+ --fix Actualiza automáticamente dependencias PATCH y MINOR sin breaking changes.
25
+ Requiere confirmación antes de escribir. NUNCA actualiza MAJOR.
26
+ --json Genera reporte también en formato JSON (audit-report.json).
27
+ ```
28
+
29
+ ## Paso 0 — Detección de ecosistemas
30
+
31
+ Detecta qué ecosistemas están presentes:
32
+
33
+ ```bash
34
+ ls package.json package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null
35
+ ls requirements.txt requirements-dev.txt pyproject.toml setup.py Pipfile 2>/dev/null
36
+ ls Gemfile go.mod Cargo.toml composer.json 2>/dev/null
37
+ ```
38
+
39
+ Reporta ecosistemas detectados. Soporte completo para Node.js y Python; para otros, reporta verificaciones disponibles.
40
+
41
+ ## Paso 1 — Auditoría de vulnerabilidades (CVEs)
42
+
43
+ Ejecuta los scanners del skill (`Skill("dependencias-auditoria")` seccion "Herramientas y comandos por stack"):
44
+
45
+ - **Node.js**: `npm audit --json`
46
+ - **Python**: `pip-audit` (preferido) o `safety check`
47
+
48
+ Clasifica por severidad CVSS según la tabla del skill (Critica 9.0-10.0, Alta 7.0-8.9, Media 4.0-6.9, Baja 0.1-3.9).
49
+
50
+ Si las herramientas no están disponibles, reportar exactamente qué falta y comandos de instalación.
51
+
52
+ ## Paso 2 — Dependencias desactualizadas
53
+
54
+ - **Node.js**: `npm outdated --json`
55
+ - **Python**: `pip list --outdated --format=json`
56
+
57
+ Clasifica en PATCH/MINOR/MAJOR. Marca como "DEUDA TECNICA CRITICA" si hay 2+ versiones MAJOR de retraso. Marca "POSIBLEMENTE ABANDONADA" si sin actualizaciones en 1+ año.
58
+
59
+ ## Paso 3 — Dependencias sin usar
60
+
61
+ - **Node.js**: `npx depcheck --json`
62
+ - **Python**: análisis heurístico de imports vs paquetes instalados
63
+
64
+ Nota: la detección en Python es heurística. Siempre verificar manualmente antes de eliminar.
65
+
66
+ ## Paso 4 — Análisis de licencias
67
+
68
+ Usa las herramientas del skill:
69
+ - **Node.js**: `npx license-checker --json`
70
+ - **Python**: `pip-licenses --format=json`
71
+
72
+ Identifica licencias problemáticas según la tabla del skill (GPL, AGPL, LGPL, SSPL).
73
+
74
+ ## Paso 5 — Verificación de lockfile
75
+
76
+ - `requirements.txt` sin pins exactos -> ADVERTENCIA
77
+ - `package.json` con rangos amplios en producción -> ADVERTENCIA
78
+ - Lockfile desincronizado con manifiesto -> ERROR
79
+
80
+ ## Paso 6 — Generar reporte
81
+
82
+ Escribe `AUDIT-REPORT.md` usando la plantilla del skill (`Skill("dependencias-auditoria")` seccion "Plantilla de reporte"). Incluye:
83
+
84
+ - Resumen ejecutivo con tabla de hallazgos
85
+ - Score de salud: `100 - (criticas x 25) - (altas x 10) - (medias x 3) - (bajas x 1)`, minimo 0
86
+ - Hallazgos priorizados (P1: acción inmediata -> P5: revisión de arquitectura)
87
+ - Comandos de corrección específicos
88
+
89
+ Si `--json`, escribir también `audit-report.json`.
90
+
91
+ ## Paso 7 — Aplicar fixes automáticos (si --fix)
92
+
93
+ Presenta lista de actualizaciones PATCH y MINOR que se aplicarán. Muestra también lo que NO se actualizará (MAJOR). Espera confirmación ("confirmo").
94
+
95
+ ```bash
96
+ npm update 2>&1 # Node.js
97
+ pip install --upgrade [paquetes] 2>&1 # Python
98
+ ```
99
+
100
+ Después de aplicar, re-ejecutar auditoría de vulnerabilidades para verificar correcciones.
101
+
102
+ ## Paso 8 — Reporte al usuario
103
+
104
+ ```
105
+ === Auditoría de dependencias completada ===
106
+
107
+ Ecosistemas auditados: [lista]
108
+ Total dependencias analizadas: [N]
109
+
110
+ Hallazgos:
111
+ Vulnerabilidades CRITICAS: [N] (acción hoy)
112
+ Vulnerabilidades ALTAS: [N] (esta semana)
113
+ Vulnerabilidades MEDIAS: [N] (este sprint)
114
+ Vulnerabilidades BAJAS: [N] (backlog)
115
+ Desactualizadas: [N] ([N] major, [N] minor, [N] patch)
116
+ Sin usar: [N]
117
+ Problemas de licencia: [N]
118
+
119
+ Score de salud: [N]/100
120
+ Reportes: AUDIT-REPORT.md [audit-report.json si aplica]
121
+
122
+ Próximos pasos:
123
+ 1. [acción más urgente]
124
+ 2. [segunda acción]
125
+ ```
126
+
127
+ ## Reglas de comportamiento
128
+
129
+ - NUNCA eliminar dependencias automáticamente — solo reportar y sugerir.
130
+ - NUNCA aplicar actualizaciones MAJOR con `--fix`. Siempre requieren revisión humana.
131
+ - Vulnerabilidades CRITICAS al inicio del reporte, no sepultadas en una lista.
132
+ - Score de salud objetivo — no inflarlo.
133
+ - Si las herramientas no están disponibles, reportar qué falta, no simular resultados.
134
+ - Si `--fix` rompe tests, reportar y sugerir `git checkout` de archivos de dependencias.