@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,194 +1,194 @@
1
- ---
2
- name: swl:cron
3
- description: Gestiona tareas programadas del sistema SWL. Crear, listar, pausar, reanudar y eliminar jobs recurrentes. Soporta 4 formatos de schedule (duración, intervalo, cron, timestamp ISO). Los jobs se almacenan en .planning/cron/jobs.json.
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
- user-invocable: true
6
- version: "1.0.0"
7
- ---
8
-
9
- # /swl:cron — Gestión de tareas programadas
10
-
11
- Eres el gestor de tareas programadas del sistema SWL. Administras jobs que se ejecutan automáticamente según un schedule definido.
12
-
13
- ## Subcomandos
14
-
15
- | Subcomando | Descripción |
16
- |-----------|-------------|
17
- | `list` | Lista todos los jobs con estado, schedule y próxima ejecución |
18
- | `add` | Crear un nuevo job (guía interactiva) |
19
- | `remove <id>` | Eliminar un job |
20
- | `pause <id>` | Pausar un job sin eliminarlo |
21
- | `resume <id>` | Reanudar un job pausado |
22
- | `log [N]` | Mostrar últimas N ejecuciones |
23
- | `start` | Iniciar el scheduler daemon |
24
- | `run <id>` | Ejecutar un job manualmente (una vez, sin afectar schedule) |
25
-
26
- ## Formatos de schedule soportados
27
-
28
- | Formato | Ejemplo | Descripción |
29
- |---------|---------|-------------|
30
- | Duración única | `30m`, `2h`, `1d` | Ejecutar una vez en N minutos/horas/días |
31
- | Intervalo recurrente | `every 30m`, `every 2h` | Ejecutar cada N periódicamente |
32
- | Expresión cron | `0 9 * * 1-5` | Cron estándar de 5 campos |
33
- | Timestamp ISO | `2026-04-15T09:00` | Una vez a hora exacta |
34
- | **Lenguaje natural (es-MX)** | `cada lunes a las 9am` | El comando lo traduce al formato técnico |
35
-
36
- ### Traducción de lenguaje natural
37
-
38
- Si el usuario describe el schedule con una frase en español, tradúcela a cron
39
- o a los formatos técnicos ANTES de guardar. Ejemplos de traducción:
40
-
41
- | Frase del usuario | Traducción |
42
- |---|---|
43
- | "cada lunes a las 9am" / "todos los lunes 9 de la mañana" | `0 9 * * 1` |
44
- | "cada día a las 8:30" | `30 8 * * *` |
45
- | "cada hora" | `every 1h` |
46
- | "cada 30 minutos" | `every 30m` |
47
- | "de lunes a viernes a las 9am" | `0 9 * * 1-5` |
48
- | "cada primer día del mes" / "el 1 de cada mes a medianoche" | `0 0 1 * *` |
49
- | "cada domingo a las 23:00" | `0 23 * * 0` |
50
- | "cada 2 horas en horario laboral" | `0 9-18/2 * * 1-5` |
51
- | "en 30 minutos" (one-shot) | `30m` |
52
- | "mañana a las 10am" (one-shot) | `<timestamp ISO calculado>` |
53
- | "dentro de una semana" (one-shot) | `7d` |
54
-
55
- **Reglas de traducción:**
56
-
57
- 1. **Días de la semana**: lunes=1, martes=2, …, sábado=6, domingo=0 (estándar cron).
58
- 2. **Horas**: interpretar "de la mañana"/"am" = 0-11; "de la tarde"/"pm" = 12-23.
59
- 3. **Zona horaria**: asumir la local del sistema salvo que el usuario especifique una.
60
- 4. **Ambigüedad**: si la frase es ambigua ("a veces", "pronto", "seguido"), pregunta
61
- al usuario antes de guardar. Nunca inventes un valor por "parecerse".
62
- 5. **Validación obligatoria**: después de traducir, MOSTRAR al usuario la expresión
63
- técnica resultante y la próxima ejecución estimada, y pedir confirmación:
64
-
65
- ```
66
- Traduje "cada lunes a las 9am" → `0 9 * * 1`
67
- Próxima ejecución: lunes 21 de abril 2026, 09:00:00 (hora local)
68
- ¿Confirmas? (sí / no / corrige la frase)
69
- ```
70
-
71
- 6. **No guardar** hasta confirmación explícita.
72
-
73
- ## Subcomando: list
74
-
75
- ```bash
76
- node -e "const s=require('./gateway/cron/store'); const jobs=s.loadJobs(process.cwd()); console.log(JSON.stringify(jobs,null,2))"
77
- ```
78
-
79
- Mostrar como tabla formateada:
80
- ```
81
- === Jobs programados ===
82
-
83
- | ID | Nombre | Schedule | Estado | Próxima ejecución | Última |
84
- |----|--------|----------|--------|-------------------|--------|
85
- ```
86
-
87
- Si no hay jobs: "No hay tareas programadas. Usa `/swl:cron add` para crear una."
88
-
89
- ## Subcomando: add
90
-
91
- Preguntar al usuario:
92
- 1. **Nombre**: descripción breve del job
93
- 2. **Comando**: qué ejecutar (ej: `node bin/swl-ses.js doctor --json`)
94
- 3. **Schedule**: puede ser en lenguaje natural (ej: "cada lunes a las 9am") o
95
- en formato técnico. Si es lenguaje natural, traducir según la tabla de la
96
- sección **Traducción de lenguaje natural** y CONFIRMAR con el usuario la
97
- expresión técnica resultante antes de continuar.
98
- 4. **Entrega**: dónde entregar el resultado (`local`, `telegram`, `discord`)
99
-
100
- Crear el job:
101
- ```javascript
102
- const store = require('./gateway/cron/store');
103
- store.addJob(process.cwd(), {
104
- name: '[nombre]',
105
- schedule: '[schedule]',
106
- command: '[comando]',
107
- deliver: '[destino]',
108
- });
109
- ```
110
-
111
- Jobs sugeridos para el sistema SWL:
112
- - **Salud diaria**: `node bin/swl-ses.js doctor` — schedule `0 9 * * 1-5`
113
- - **Auditoría de deps semanal**: `npm audit --json` — schedule `0 10 * * 1`
114
- - **Backup de instintos**: `cp instintos/proyecto.yaml .planning/backups/` — schedule `every 1d`
115
-
116
- ## Subcomando: remove <id>
117
-
118
- ```javascript
119
- const store = require('./gateway/cron/store');
120
- store.removeJob(process.cwd(), '[id]');
121
- ```
122
-
123
- Confirmar antes de eliminar.
124
-
125
- ## Subcomando: pause / resume
126
-
127
- ```javascript
128
- store.pauseJob(process.cwd(), '[id]');
129
- store.resumeJob(process.cwd(), '[id]');
130
- ```
131
-
132
- ## Subcomando: log
133
-
134
- ```javascript
135
- const store = require('./gateway/cron/store');
136
- const log = store.readLog(process.cwd(), N);
137
- ```
138
-
139
- Mostrar como tabla con fecha, job, status y output resumido.
140
-
141
- ## Subcomando: start
142
-
143
- ```bash
144
- node gateway/cron/scheduler.js
145
- ```
146
-
147
- Inicia el scheduler. Muestra PID y confirma que el lock fue adquirido.
148
-
149
- ## Subcomando: run <id>
150
-
151
- Ejecuta un job manualmente sin afectar su schedule normal:
152
- ```javascript
153
- const { executeJob, deliverResult } = require('./gateway/cron/scheduler');
154
- const store = require('./gateway/cron/store');
155
- const jobs = store.loadJobs(process.cwd());
156
- const job = jobs.find(j => j.id === '[id]');
157
- const result = executeJob(job, process.cwd());
158
- deliverResult(job, result, process.cwd());
159
- ```
160
-
161
- ## Parser de lenguaje natural programático (experimental)
162
-
163
- El subcomando `swl-ses schedule-parse` parsea frases en inglés a expresiones
164
- cron (resuelve cross-scope; ver `docs/invocacion-cli-cross-scope.md`). No
165
- requiere dependencias externas.
166
-
167
- ```bash
168
- # "every morning at 9am" → { "cron": "0 9 * * *", "descripcion": "Diariamente a las 9 AM" }
169
- swl-ses schedule-parse "every morning at 9am"
170
- # fallback: npx -y @saulwade/swl-ses@latest schedule-parse "every morning at 9am"
171
- ```
172
-
173
- La verificación de si un cron debe ejecutarse ahora (`isCronDue`) la usa el
174
- motor de scheduling internamente; no se expone como subcomando.
175
-
176
- Frases reconocidas:
177
- - `"hourly"` → `0 * * * *`
178
- - `"daily"` / `"every day"` → `0 9 * * *`
179
- - `"weekly"` → `0 9 * * 1`
180
- - `"every N minutes"` (1-59) → `*/N * * * *`
181
- - `"every N hours"` (1-23) → `0 */N * * *`
182
- - `"every morning at 9am"` / `"daily at 14:30"` → expresión con hora específica
183
- - `"every monday at 9am"` / `"weekly on friday"` → expresión con día de semana
184
- - Expresión cron cruda de 5 campos → passthrough sin modificar
185
-
186
- Para frases en español, la traducción manual (tabla de la sección anterior)
187
- sigue siendo el método principal — el parser solo opera en inglés.
188
-
189
- ## Reglas de comportamiento
190
-
191
- - SIEMPRE confirmar antes de eliminar un job
192
- - SIEMPRE mostrar el schedule en formato legible junto al formato técnico
193
- - Los jobs con `deliver: telegram/discord` requieren que el gateway esté configurado
194
- - El scheduler usa file lock exclusivo — solo una instancia puede correr a la vez
1
+ ---
2
+ name: swl:cron
3
+ description: Gestiona tareas programadas del sistema SWL. Crear, listar, pausar, reanudar y eliminar jobs recurrentes. Soporta 4 formatos de schedule (duración, intervalo, cron, timestamp ISO). Los jobs se almacenan en .planning/cron/jobs.json.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ user-invocable: true
6
+ version: "1.0.0"
7
+ ---
8
+
9
+ # /swl:cron — Gestión de tareas programadas
10
+
11
+ Eres el gestor de tareas programadas del sistema SWL. Administras jobs que se ejecutan automáticamente según un schedule definido.
12
+
13
+ ## Subcomandos
14
+
15
+ | Subcomando | Descripción |
16
+ |-----------|-------------|
17
+ | `list` | Lista todos los jobs con estado, schedule y próxima ejecución |
18
+ | `add` | Crear un nuevo job (guía interactiva) |
19
+ | `remove <id>` | Eliminar un job |
20
+ | `pause <id>` | Pausar un job sin eliminarlo |
21
+ | `resume <id>` | Reanudar un job pausado |
22
+ | `log [N]` | Mostrar últimas N ejecuciones |
23
+ | `start` | Iniciar el scheduler daemon |
24
+ | `run <id>` | Ejecutar un job manualmente (una vez, sin afectar schedule) |
25
+
26
+ ## Formatos de schedule soportados
27
+
28
+ | Formato | Ejemplo | Descripción |
29
+ |---------|---------|-------------|
30
+ | Duración única | `30m`, `2h`, `1d` | Ejecutar una vez en N minutos/horas/días |
31
+ | Intervalo recurrente | `every 30m`, `every 2h` | Ejecutar cada N periódicamente |
32
+ | Expresión cron | `0 9 * * 1-5` | Cron estándar de 5 campos |
33
+ | Timestamp ISO | `2026-04-15T09:00` | Una vez a hora exacta |
34
+ | **Lenguaje natural (es-MX)** | `cada lunes a las 9am` | El comando lo traduce al formato técnico |
35
+
36
+ ### Traducción de lenguaje natural
37
+
38
+ Si el usuario describe el schedule con una frase en español, tradúcela a cron
39
+ o a los formatos técnicos ANTES de guardar. Ejemplos de traducción:
40
+
41
+ | Frase del usuario | Traducción |
42
+ |---|---|
43
+ | "cada lunes a las 9am" / "todos los lunes 9 de la mañana" | `0 9 * * 1` |
44
+ | "cada día a las 8:30" | `30 8 * * *` |
45
+ | "cada hora" | `every 1h` |
46
+ | "cada 30 minutos" | `every 30m` |
47
+ | "de lunes a viernes a las 9am" | `0 9 * * 1-5` |
48
+ | "cada primer día del mes" / "el 1 de cada mes a medianoche" | `0 0 1 * *` |
49
+ | "cada domingo a las 23:00" | `0 23 * * 0` |
50
+ | "cada 2 horas en horario laboral" | `0 9-18/2 * * 1-5` |
51
+ | "en 30 minutos" (one-shot) | `30m` |
52
+ | "mañana a las 10am" (one-shot) | `<timestamp ISO calculado>` |
53
+ | "dentro de una semana" (one-shot) | `7d` |
54
+
55
+ **Reglas de traducción:**
56
+
57
+ 1. **Días de la semana**: lunes=1, martes=2, …, sábado=6, domingo=0 (estándar cron).
58
+ 2. **Horas**: interpretar "de la mañana"/"am" = 0-11; "de la tarde"/"pm" = 12-23.
59
+ 3. **Zona horaria**: asumir la local del sistema salvo que el usuario especifique una.
60
+ 4. **Ambigüedad**: si la frase es ambigua ("a veces", "pronto", "seguido"), pregunta
61
+ al usuario antes de guardar. Nunca inventes un valor por "parecerse".
62
+ 5. **Validación obligatoria**: después de traducir, MOSTRAR al usuario la expresión
63
+ técnica resultante y la próxima ejecución estimada, y pedir confirmación:
64
+
65
+ ```
66
+ Traduje "cada lunes a las 9am" → `0 9 * * 1`
67
+ Próxima ejecución: lunes 21 de abril 2026, 09:00:00 (hora local)
68
+ ¿Confirmas? (sí / no / corrige la frase)
69
+ ```
70
+
71
+ 6. **No guardar** hasta confirmación explícita.
72
+
73
+ ## Subcomando: list
74
+
75
+ ```bash
76
+ node -e "const s=require('./gateway/cron/store'); const jobs=s.loadJobs(process.cwd()); console.log(JSON.stringify(jobs,null,2))"
77
+ ```
78
+
79
+ Mostrar como tabla formateada:
80
+ ```
81
+ === Jobs programados ===
82
+
83
+ | ID | Nombre | Schedule | Estado | Próxima ejecución | Última |
84
+ |----|--------|----------|--------|-------------------|--------|
85
+ ```
86
+
87
+ Si no hay jobs: "No hay tareas programadas. Usa `/swl:cron add` para crear una."
88
+
89
+ ## Subcomando: add
90
+
91
+ Preguntar al usuario:
92
+ 1. **Nombre**: descripción breve del job
93
+ 2. **Comando**: qué ejecutar (ej: `node bin/swl-ses.js doctor --json`)
94
+ 3. **Schedule**: puede ser en lenguaje natural (ej: "cada lunes a las 9am") o
95
+ en formato técnico. Si es lenguaje natural, traducir según la tabla de la
96
+ sección **Traducción de lenguaje natural** y CONFIRMAR con el usuario la
97
+ expresión técnica resultante antes de continuar.
98
+ 4. **Entrega**: dónde entregar el resultado (`local`, `telegram`, `discord`)
99
+
100
+ Crear el job:
101
+ ```javascript
102
+ const store = require('./gateway/cron/store');
103
+ store.addJob(process.cwd(), {
104
+ name: '[nombre]',
105
+ schedule: '[schedule]',
106
+ command: '[comando]',
107
+ deliver: '[destino]',
108
+ });
109
+ ```
110
+
111
+ Jobs sugeridos para el sistema SWL:
112
+ - **Salud diaria**: `node bin/swl-ses.js doctor` — schedule `0 9 * * 1-5`
113
+ - **Auditoría de deps semanal**: `npm audit --json` — schedule `0 10 * * 1`
114
+ - **Backup de instintos**: `cp instintos/proyecto.yaml .planning/backups/` — schedule `every 1d`
115
+
116
+ ## Subcomando: remove <id>
117
+
118
+ ```javascript
119
+ const store = require('./gateway/cron/store');
120
+ store.removeJob(process.cwd(), '[id]');
121
+ ```
122
+
123
+ Confirmar antes de eliminar.
124
+
125
+ ## Subcomando: pause / resume
126
+
127
+ ```javascript
128
+ store.pauseJob(process.cwd(), '[id]');
129
+ store.resumeJob(process.cwd(), '[id]');
130
+ ```
131
+
132
+ ## Subcomando: log
133
+
134
+ ```javascript
135
+ const store = require('./gateway/cron/store');
136
+ const log = store.readLog(process.cwd(), N);
137
+ ```
138
+
139
+ Mostrar como tabla con fecha, job, status y output resumido.
140
+
141
+ ## Subcomando: start
142
+
143
+ ```bash
144
+ node gateway/cron/scheduler.js
145
+ ```
146
+
147
+ Inicia el scheduler. Muestra PID y confirma que el lock fue adquirido.
148
+
149
+ ## Subcomando: run <id>
150
+
151
+ Ejecuta un job manualmente sin afectar su schedule normal:
152
+ ```javascript
153
+ const { executeJob, deliverResult } = require('./gateway/cron/scheduler');
154
+ const store = require('./gateway/cron/store');
155
+ const jobs = store.loadJobs(process.cwd());
156
+ const job = jobs.find(j => j.id === '[id]');
157
+ const result = executeJob(job, process.cwd());
158
+ deliverResult(job, result, process.cwd());
159
+ ```
160
+
161
+ ## Parser de lenguaje natural programático (experimental)
162
+
163
+ El subcomando `swl-ses schedule-parse` parsea frases en inglés a expresiones
164
+ cron (resuelve cross-scope; ver `docs/invocacion-cli-cross-scope.md`). No
165
+ requiere dependencias externas.
166
+
167
+ ```bash
168
+ # "every morning at 9am" → { "cron": "0 9 * * *", "descripcion": "Diariamente a las 9 AM" }
169
+ swl-ses schedule-parse "every morning at 9am"
170
+ # fallback: npx -y @saulwade/swl-ses@latest schedule-parse "every morning at 9am"
171
+ ```
172
+
173
+ La verificación de si un cron debe ejecutarse ahora (`isCronDue`) la usa el
174
+ motor de scheduling internamente; no se expone como subcomando.
175
+
176
+ Frases reconocidas:
177
+ - `"hourly"` → `0 * * * *`
178
+ - `"daily"` / `"every day"` → `0 9 * * *`
179
+ - `"weekly"` → `0 9 * * 1`
180
+ - `"every N minutes"` (1-59) → `*/N * * * *`
181
+ - `"every N hours"` (1-23) → `0 */N * * *`
182
+ - `"every morning at 9am"` / `"daily at 14:30"` → expresión con hora específica
183
+ - `"every monday at 9am"` / `"weekly on friday"` → expresión con día de semana
184
+ - Expresión cron cruda de 5 campos → passthrough sin modificar
185
+
186
+ Para frases en español, la traducción manual (tabla de la sección anterior)
187
+ sigue siendo el método principal — el parser solo opera en inglés.
188
+
189
+ ## Reglas de comportamiento
190
+
191
+ - SIEMPRE confirmar antes de eliminar un job
192
+ - SIEMPRE mostrar el schedule en formato legible junto al formato técnico
193
+ - Los jobs con `deliver: telegram/discord` requieren que el gateway esté configurado
194
+ - El scheduler usa file lock exclusivo — solo una instancia puede correr a la vez
@@ -1,97 +1,97 @@
1
- ---
2
- name: swl:deuda-codigo
3
- description: Cosecha los marcadores `simplificado:` del código (simplificaciones deliberadas con techo y trigger de upgrade) hacia un ledger visible, detecta marcadores sin trigger (riesgo de rot) y sincroniza opcionalmente con .planning/DEUDA-TECNICA.md. Cargar cuando el usuario pida "qué simplificamos", "deuda de código", "cosecha los marcadores", o tras una fase que dejó marcadores simplificado:.
4
- allowed_tools: ["Grep", "Read", "Edit", "Bash"]
5
- ---
6
-
7
- # /swl:deuda-codigo — Cosecha de simplificaciones deliberadas
8
-
9
- Todo atajo intencional marcado con `simplificado: <techo>, <trigger>` (convención
10
- de `Skill("prevencion-sobreingenieria")`, adaptada del patrón `ponytail:` de
11
- ponytail, MIT) se cosecha aquí en un ledger — para que un "después" no se
12
- convierta en "nunca" (regla `arreglar-al-detectar.md`).
13
-
14
- ## Uso
15
-
16
- ```
17
- /swl:deuda-codigo — Reporte en pantalla (no escribe nada)
18
- /swl:deuda-codigo --sync — Además sincroniza a .planning/DEUDA-TECNICA.md
19
- /swl:deuda-codigo --owners — Agrega autor por marcador (git blame)
20
- /swl:deuda-codigo <directorio> — Limita la cosecha a un subárbol
21
- ```
22
-
23
- ## Paso 1 — Cosechar los marcadores
24
-
25
- Buscar con Grep (herramienta, no shell) el patrón sobre el árbol del proyecto,
26
- excluyendo `node_modules`, `.git`, `dist`, `build`, `temp`, `respositorios-git`:
27
-
28
- ```
29
- Grep(pattern: "(#|//|--|<!--|/\\*)\\s?simplificado:", output_mode: "content", -n: true)
30
- ```
31
-
32
- Cada hit es una fila del ledger. El prefijo de comentario evita capturar prosa
33
- que solo menciona la convención (como este archivo o el SKILL.md).
34
-
35
- ## Paso 2 — Parsear techo y trigger
36
-
37
- La convención es `simplificado: <techo>, <trigger de upgrade>`:
38
-
39
- - **techo**: el límite conocido del atajo (lock global, O(n²), heurística naive).
40
- - **trigger**: la condición observable que obliga el upgrade ("si throughput > X",
41
- "cuando haya un segundo consumidor", "antes del primer deploy productivo").
42
-
43
- Si el texto tras `simplificado:` no contiene una condición observable,
44
- etiquetar la fila `sin-trigger` — esos son los que rotan en silencio.
45
-
46
- ## Paso 3 — Reporte
47
-
48
- Una fila por marcador, agrupado por archivo:
49
-
50
- ```
51
- ## Ledger de simplificaciones — [fecha]
52
-
53
- | Ubicación | Qué se simplificó | Techo | Trigger de upgrade | Estado |
54
- |---|---|---|---|---|
55
- | src/locks.py:42 | lock global | contención con N workers | throughput > 500 rps | ok |
56
- | api/cache.js:17 | TTL fijo 5 min | staleness | (ninguno) | sin-trigger |
57
-
58
- Total: N marcadores, M sin trigger.
59
- ```
60
-
61
- Con `--owners`: agregar columna con `git blame -L<línea>,<línea> --porcelain <archivo>`
62
- (solo el autor, una llamada por fila).
63
-
64
- Si no hay marcadores: `Sin deuda simplificado:. Ledger limpio.` — y terminar.
65
-
66
- ## Paso 4 — Sincronizar al ledger formal (solo con --sync)
67
-
68
- Para cada marcador `sin-trigger` o de techo relevante que no exista ya en
69
- `.planning/DEUDA-TECNICA.md`:
70
-
71
- 1. Leer el ledger actual y verificar duplicados por ubicación (`archivo:línea`).
72
- 2. Agregar entrada `### DT-SIMPLIFICADO-<n>` con: ubicación, techo, trigger
73
- (o `PENDIENTE DE TRIGGER` marcado como acción requerida), fecha de cosecha.
74
- 3. Los `sin-trigger` NO se sincronizan como DT válidas hasta tener trigger:
75
- reportarlos al usuario como acción inmediata — una DT sin trigger verificable
76
- viola `arreglar-al-detectar.md § DT formal`.
77
-
78
- NUNCA borrar ni editar los marcadores del código durante la cosecha: el
79
- comando lee y reporta; el código solo cambia cuando el trigger se cumple y
80
- el upgrade se implementa.
81
-
82
- ## Cuándo usarlo
83
-
84
- - Cierre de fase (`/swl:verificar` lo puede invocar como pasada complementaria).
85
- - Antes de un release: los `sin-trigger` son bloqueo blando (reportar en el gate).
86
- - Auditorías de deuda: junto con la sección "Sobre-ingeniería" de `/swl:revisar`.
87
-
88
- ## Gotchas
89
-
90
- - **Marcadores en fixtures o docs**: los hits dentro de `tests/fixtures/`,
91
- ejemplos de skills o este propio comando son material de referencia, no deuda
92
- — excluirlos del conteo y decir cuántos se excluyeron (sin caps silenciosos).
93
- - **Prefijos de comentario por stack**: el patrón cubre `#` (Python/shell),
94
- `//` (JS/TS/Go/Rust/C#/Java), `--` (SQL/Lua), `<!--` (HTML/MD) y `/*` (CSS/C).
95
- Si el proyecto usa otro prefijo, agregarlo al patrón y decirlo en el reporte.
96
- - **`git blame` sobre archivos renombrados**: usar `git blame -M -C` si el
97
- autor aparece como el commit del rename.
1
+ ---
2
+ name: swl:deuda-codigo
3
+ description: Cosecha los marcadores `simplificado:` del código (simplificaciones deliberadas con techo y trigger de upgrade) hacia un ledger visible, detecta marcadores sin trigger (riesgo de rot) y sincroniza opcionalmente con .planning/DEUDA-TECNICA.md. Cargar cuando el usuario pida "qué simplificamos", "deuda de código", "cosecha los marcadores", o tras una fase que dejó marcadores simplificado:.
4
+ allowed_tools: ["Grep", "Read", "Edit", "Bash"]
5
+ ---
6
+
7
+ # /swl:deuda-codigo — Cosecha de simplificaciones deliberadas
8
+
9
+ Todo atajo intencional marcado con `simplificado: <techo>, <trigger>` (convención
10
+ de `Skill("prevencion-sobreingenieria")`, adaptada del patrón `ponytail:` de
11
+ ponytail, MIT) se cosecha aquí en un ledger — para que un "después" no se
12
+ convierta en "nunca" (regla `arreglar-al-detectar.md`).
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /swl:deuda-codigo — Reporte en pantalla (no escribe nada)
18
+ /swl:deuda-codigo --sync — Además sincroniza a .planning/DEUDA-TECNICA.md
19
+ /swl:deuda-codigo --owners — Agrega autor por marcador (git blame)
20
+ /swl:deuda-codigo <directorio> — Limita la cosecha a un subárbol
21
+ ```
22
+
23
+ ## Paso 1 — Cosechar los marcadores
24
+
25
+ Buscar con Grep (herramienta, no shell) el patrón sobre el árbol del proyecto,
26
+ excluyendo `node_modules`, `.git`, `dist`, `build`, `temp`, `respositorios-git`:
27
+
28
+ ```
29
+ Grep(pattern: "(#|//|--|<!--|/\\*)\\s?simplificado:", output_mode: "content", -n: true)
30
+ ```
31
+
32
+ Cada hit es una fila del ledger. El prefijo de comentario evita capturar prosa
33
+ que solo menciona la convención (como este archivo o el SKILL.md).
34
+
35
+ ## Paso 2 — Parsear techo y trigger
36
+
37
+ La convención es `simplificado: <techo>, <trigger de upgrade>`:
38
+
39
+ - **techo**: el límite conocido del atajo (lock global, O(n²), heurística naive).
40
+ - **trigger**: la condición observable que obliga el upgrade ("si throughput > X",
41
+ "cuando haya un segundo consumidor", "antes del primer deploy productivo").
42
+
43
+ Si el texto tras `simplificado:` no contiene una condición observable,
44
+ etiquetar la fila `sin-trigger` — esos son los que rotan en silencio.
45
+
46
+ ## Paso 3 — Reporte
47
+
48
+ Una fila por marcador, agrupado por archivo:
49
+
50
+ ```
51
+ ## Ledger de simplificaciones — [fecha]
52
+
53
+ | Ubicación | Qué se simplificó | Techo | Trigger de upgrade | Estado |
54
+ |---|---|---|---|---|
55
+ | src/locks.py:42 | lock global | contención con N workers | throughput > 500 rps | ok |
56
+ | api/cache.js:17 | TTL fijo 5 min | staleness | (ninguno) | sin-trigger |
57
+
58
+ Total: N marcadores, M sin trigger.
59
+ ```
60
+
61
+ Con `--owners`: agregar columna con `git blame -L<línea>,<línea> --porcelain <archivo>`
62
+ (solo el autor, una llamada por fila).
63
+
64
+ Si no hay marcadores: `Sin deuda simplificado:. Ledger limpio.` — y terminar.
65
+
66
+ ## Paso 4 — Sincronizar al ledger formal (solo con --sync)
67
+
68
+ Para cada marcador `sin-trigger` o de techo relevante que no exista ya en
69
+ `.planning/DEUDA-TECNICA.md`:
70
+
71
+ 1. Leer el ledger actual y verificar duplicados por ubicación (`archivo:línea`).
72
+ 2. Agregar entrada `### DT-SIMPLIFICADO-<n>` con: ubicación, techo, trigger
73
+ (o `PENDIENTE DE TRIGGER` marcado como acción requerida), fecha de cosecha.
74
+ 3. Los `sin-trigger` NO se sincronizan como DT válidas hasta tener trigger:
75
+ reportarlos al usuario como acción inmediata — una DT sin trigger verificable
76
+ viola `arreglar-al-detectar.md § DT formal`.
77
+
78
+ NUNCA borrar ni editar los marcadores del código durante la cosecha: el
79
+ comando lee y reporta; el código solo cambia cuando el trigger se cumple y
80
+ el upgrade se implementa.
81
+
82
+ ## Cuándo usarlo
83
+
84
+ - Cierre de fase (`/swl:verificar` lo puede invocar como pasada complementaria).
85
+ - Antes de un release: los `sin-trigger` son bloqueo blando (reportar en el gate).
86
+ - Auditorías de deuda: junto con la sección "Sobre-ingeniería" de `/swl:revisar`.
87
+
88
+ ## Gotchas
89
+
90
+ - **Marcadores en fixtures o docs**: los hits dentro de `tests/fixtures/`,
91
+ ejemplos de skills o este propio comando son material de referencia, no deuda
92
+ — excluirlos del conteo y decir cuántos se excluyeron (sin caps silenciosos).
93
+ - **Prefijos de comentario por stack**: el patrón cubre `#` (Python/shell),
94
+ `//` (JS/TS/Go/Rust/C#/Java), `--` (SQL/Lua), `<!--` (HTML/MD) y `/*` (CSS/C).
95
+ Si el proyecto usa otro prefijo, agregarlo al patrón y decirlo en el reporte.
96
+ - **`git blame` sobre archivos renombrados**: usar `git blame -M -C` si el
97
+ autor aparece como el commit del rename.