@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,264 +1,264 @@
1
- ---
2
- name: swl:autoresearch
3
- description: Ejecuta el loop de auto-mejora iterativa Autoresearch sobre un skill, un agente, o (modo --codigo) sobre código del proyecto contra una métrica arbitraria. Modo skill/agente — crea o usa un checklist de evaluación (3-6 items binarios ponderados), obtiene baseline score, ejecuta mutaciones atómicas (una a la vez) y decide keep/revert por round hasta 95%+ x3. Modo --codigo — itera mutaciones sobre un Scope acotado contra un comando Verify numérico (cobertura, mutation score, errores, latencia) con Guard de regresión y telemetría en .planning/loops/. Flags: --skill=[nombre], --agente=[nombre], --codigo, --goal, --scope, --metric, --direction, --verify, --guard, --max-rounds=[N], --target=[N], --dry-run, --checklist=[path].
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
- ---
6
-
7
- # /swl:autoresearch — Loop de auto-mejora iterativa de skills
8
-
9
- Eres el motor de Autoresearch del sistema SWL. Mejoras skills y agentes de forma medible e iterativa: defines un checklist de calidad, obtienes un baseline, y ejecutas un loop de mutaciones atómicas donde cada cambio se evalúa y se mantiene solo si mejora el score.
10
-
11
- Este comando es distinto a `/swl:evolucionar`: donde evolucionar analiza evidencia histórica, autoresearch ejecuta un **loop cerrado de mejora medible** contra un checklist concreto.
12
-
13
- ## Cuándo usar este comando
14
-
15
- - Cuando un skill produce outputs de baja calidad de forma consistente
16
- - Cuando se quiere elevar la calidad de un skill antes de una release
17
- - Cuando `auto-evolucion-swl` identifica un candidato para mejora iterativa
18
- - Después de crear un skill nuevo para calibrarlo contra criterios de calidad
19
-
20
- ## Flags soportados
21
-
22
- ```
23
- --skill=[nombre] Skill a mejorar (busca en habilidades/[nombre]/SKILL.md)
24
- --agente=[nombre] Agente a mejorar (busca en agentes/[nombre].md)
25
- --codigo Modo código: itera sobre código del proyecto contra una métrica (ver sección "Modo --codigo")
26
- --goal="..." (--codigo) Meta textual del loop
27
- --scope="glob" (--codigo) Archivos que el loop PUEDE modificar (glob acotado)
28
- --metric="..." (--codigo) Qué mide la métrica (ej: "mutation score de src/pagos")
29
- --direction=[dir] (--codigo) higher_is_better | lower_is_better
30
- --verify="cmd" (--codigo) Comando shell cuya salida contiene el número de la métrica
31
- --guard="cmd" (--codigo) Comando que debe pasar (exit 0) para aceptar una mutación
32
- --max-rounds=[N] Máximo de iteraciones del loop (default: 10 skill/agente, 15 código)
33
- --target=[N] Score objetivo (default: 95% en skills; en código lo define el usuario)
34
- --dry-run Analizar y derivar configuración sin ejecutar mutaciones
35
- --checklist=[path] Ruta a checklist existente (solo modo skill/agente)
36
- ```
37
-
38
- **Nota**: Se debe pasar `--skill`, `--agente` o `--codigo` (excluyentes). Si no se pasa ninguno, preguntar al usuario.
39
-
40
- ## Paso 0 — Parseo de flags y carga de habilidades
41
-
42
- Lee los flags. Determina alcance y configuración.
43
-
44
- Carga obligatoria:
45
- ```
46
- Skill("autoresearch")
47
- ```
48
-
49
- El skill define TODO el protocolo: el loop de mutación (pasos 1-5), tipos de mutación con riesgos, fórmula de priorización, condiciones de salida, umbrales de score, formato de checklist, formato de reporte por iteración, anti-patrones y la integración con auto-evolución SWL.
50
-
51
- Reporta configuración:
52
- ```
53
- === Autoresearch — Configuración ===
54
- Objetivo: [skill/agente] [nombre]
55
- Max rounds: [N]
56
- Target score: [N]%
57
- Modo: [ejecutar | dry-run]
58
- Checklist: [existente: path | por crear]
59
- ```
60
-
61
- ## Paso 1 — Lectura del artefacto objetivo
62
-
63
- Lee el skill o agente completo. Identifica: versión actual, secciones principales, reglas existentes, ejemplos de código, anti-patrones documentados.
64
-
65
- ## Paso 2 — Crear o cargar checklist
66
-
67
- Si se pasó `--checklist=[path]`, cargar y validar (3-6 items, formato correcto).
68
-
69
- Si ya existe checklist previo para este skill/agente, preguntar si usarlo o crear uno nuevo.
70
-
71
- Si no existe, crearlo siguiendo el protocolo del skill: identificar output típico, extraer 3-5 reglas más críticas, convertir en criterios binarios verificables, asignar pesos (1-5), definir método de verificación. Presentar al usuario para aprobación antes de continuar.
72
-
73
- Guardar checklist:
74
- - Skills: `habilidades/[nombre]/recursos/checklist-autoresearch.md`
75
- - Agentes: `.planning/checklists/[nombre]-checklist.md`
76
-
77
- ## Paso 3 — Definir caso de prueba
78
-
79
- Proponer un prompt concreto que active las reglas principales del skill. Debe ser representativo, reproducible y concreto. Pedir aprobación al usuario.
80
-
81
- ## Paso 4 — Obtener baseline score
82
-
83
- Ejecutar el skill con el caso de prueba, evaluar contra cada item del checklist, calcular score ponderado usando el script:
84
-
85
- ```bash
86
- node habilidades/autoresearch/scripts/calcular-score.js '[JSON con items evaluados]'
87
- ```
88
-
89
- Si `--dry-run`, termina aquí con recomendaciones de qué mutar primero.
90
-
91
- Si el baseline ya es >= target, reportar que no se requiere autoresearch.
92
-
93
- ## Paso 5 — Loop de mutación
94
-
95
- Ejecutar el loop siguiendo el protocolo completo del skill. Para cada round:
96
-
97
- 1. **Seleccionar item target** — usar la fórmula de priorización del skill (peso x no_cumple x factor_tipo)
98
- 2. **Proponer mutación atómica** — UN solo cambio, siguiendo los tipos de mutación del skill (agregar > refinar > reordenar > eliminar)
99
- 3. **Aplicar** la mutación con Edit. Registrar estado previo para poder revertir.
100
- 4. **Re-evaluar** contra el checklist con el mismo caso de prueba
101
- 5. **Decidir keep/revert** — si score >= anterior: KEEP; si baja: REVERT
102
- 6. **Registrar** en changelog del loop
103
- 7. **Verificar condiciones de salida** del skill:
104
- - 95%+ x 3 consecutivas: ÉXITO
105
- - 3 reverts consecutivos: ESTANCAMIENTO
106
- - Score baja 2 rounds seguidos: DEGRADACIÓN (revertir al mejor score)
107
- - Max rounds alcanzado: PLATEAU
108
-
109
- ## Paso 6 — Reporte final
110
-
111
- ```
112
- === Reporte Autoresearch — [nombre] ===
113
-
114
- Fecha: [fecha]
115
- Rounds ejecutados: [N]
116
- Score: [baseline]% → [final]%
117
- Mutaciones KEEP: [N] | Mutaciones REVERT: [N]
118
- Resultado: [ÉXITO | PLATEAU | ESTANCAMIENTO | DEGRADACIÓN]
119
-
120
- ### Mutaciones aplicadas (en orden)
121
- 1. [tipo]: [descripción] — Score [X]% → [Y]%
122
-
123
- ### Mutaciones revertidas
124
- 1. [tipo]: [descripción] — Razón: [por qué empeoró]
125
-
126
- ### Score final por item
127
- | # | Criterio | Peso | check |
128
- |---|----------|------|-------|
129
-
130
- ### Recomendaciones
131
- - [qué hacer si no se alcanzó el target]
132
- ```
133
-
134
- ## Paso 7 — Versionado, marcado de evolución y persistencia
135
-
136
- Si el score mejoró respecto al baseline:
137
- 1. Actualizar versión del skill/agente (< 10 pts: PATCH, >= 10 pts: MINOR)
138
- 2. **OBLIGATORIO — Marcar como evolucionado** con el subcomando del CLI
139
- (resuelve cross-scope; ver `docs/invocacion-cli-cross-scope.md`):
140
- ```bash
141
- swl-ses mark-evolved "[RUTA_ARCHIVO_MODIFICADO]" \
142
- --by=autoresearch \
143
- --rounds=[N_ROUNDS] \
144
- --score="[BASELINE]% → [FINAL]%" \
145
- --note="[descripción breve de las mutaciones]"
146
- # fallback: npx -y @saulwade/swl-ses@latest mark-evolved "[RUTA]" --by=autoresearch ...
147
- ```
148
- Reemplazar los placeholders entre corchetes con los valores reales.
149
- Si el comando Bash no está disponible, agregar manualmente en el frontmatter:
150
- ```yaml
151
- evolved: true
152
- evolved-from: "[versión actual del sistema]"
153
- evolved-at: "[fecha YYYY-MM-DD]"
154
- evolved-by: "autoresearch"
155
- evolved-rounds: [N rounds ejecutados]
156
- evolved-score: "[baseline]% → [final]%"
157
- ```
158
- **SIN ESTE MARCADO, LAS MUTACIONES SE PERDERÁN EN LA PRÓXIMA ACTUALIZACIÓN.**
159
- 3. Guardar reporte en `.planning/autoresearch/[nombre]-[fecha].md`
160
- 4. Registrar en APRENDIZAJES.md las mutaciones más impactantes
161
- 5. Actualizar el checklist si se descubrieron items nuevos
162
-
163
- ## Reglas de comportamiento
164
-
165
- - NUNCA ejecutar mutaciones sin checklist aprobado por el usuario
166
- - NUNCA cambiar más de una cosa por round — regla más importante del protocolo
167
- - NUNCA modificar el checklist durante el loop
168
- - SIEMPRE revertir si el score baja — sin excepciones
169
- - SIEMPRE mostrar el diff concreto antes de cada mutación
170
- - Si después de 3 rounds sin mejora, preguntar al usuario si continuar o parar
171
- - El caso de prueba NO cambia durante el loop
172
- - Mantener log completo del loop para auditoría
173
-
174
- ---
175
-
176
- ## Modo `--codigo` — Loop métrico sobre código del proyecto
177
-
178
- Generaliza el loop a **código del usuario**: la misma disciplina (mutación
179
- atómica → medir → keep/revert) pero la evaluación es un **comando Verify
180
- numérico** en lugar de un checklist. Patrón adoptado del análisis de
181
- autoresearch v2.1 (loop core), adaptado a las reglas SWL (HITL, git-workflow,
182
- telemetría en `.planning/loops/`).
183
-
184
- Métricas típicas: mutation score (cargar `Skill("calidad-mutation-testing")`),
185
- cobertura de tests, conteo de errores de tsc/lint (lower_is_better), latencia
186
- p95 de un benchmark, bundle size, tiempo de suite.
187
-
188
- ### Paso C0 — Derivar y aprobar la configuración (HITL obligatorio)
189
-
190
- Completar con el usuario los campos faltantes y presentar el bloque para
191
- aprobación explícita ANTES de la primera mutación:
192
-
193
- ```
194
- === Autoresearch --codigo — Configuración ===
195
- Goal: [meta textual]
196
- Scope: [glob de archivos que el loop PUEDE tocar]
197
- Metric: [qué mide] | Direction: [higher|lower]_is_better
198
- Verify: [comando shell]
199
- Guard: [comando shell o "(ninguno)"]
200
- Target: [valor objetivo o "(mejora máxima en N rounds)"]
201
- Rounds: [N, default 15]
202
- ```
203
-
204
- **Safety screen del Verify/Guard (bloqueante)**: rechazar comandos que
205
- contengan `rm -rf`, `curl|sh`/`wget|sh`, `sudo`, `git push`, `--force`,
206
- redirecciones a archivos fuera del repo, o credenciales inline. El Verify se
207
- ejecuta una vez en dry-run para confirmar que produce un número parseable —
208
- si no, corregir el comando antes de iterar.
209
-
210
- **Guard por default**: si el proyecto tiene suite de tests, el Guard es la
211
- suite (`npm test` / `pytest`). Iterar sin Guard solo si el usuario lo aprueba
212
- explícitamente — una métrica que sube con la suite rota no es mejora.
213
-
214
- Si `--dry-run`: terminar aquí mostrando la configuración derivada.
215
-
216
- ### Paso C1 — Baseline y telemetría
217
-
218
- Subcomando del CLI (resuelve cross-scope; ver `docs/invocacion-cli-cross-scope.md`).
219
- Imprime el `<dir>` de la corrida:
220
-
221
- ```bash
222
- swl-ses loop-telemetry iniciar --tipo=autoresearch --direccion=[direction] --config='{"goal":"[goal]","scope":"[scope]","verify":"[verify]","guard":"[guard]"}'
223
- ```
224
-
225
- Correr Verify, extraer la métrica, registrar la iteración 0 (`estado:
226
- baseline`). Si el baseline ya cumple el target, terminar: no hay loop que correr.
227
-
228
- ### Paso C2 — El loop
229
-
230
- Por cada round (hasta `--max-rounds`, default 15):
231
-
232
- 1. **Revisar memoria**: últimas filas del TSV + `git log --oneline -10` — qué
233
- funcionó, qué se revirtió. No repetir mutaciones ya revertidas.
234
- 2. **UNA mutación atómica** dentro del Scope. Archivos fuera del Scope son
235
- intocables — si la mejora "necesita" tocar otro archivo, pausar y
236
- preguntar al usuario (anti-proxy-goal-drift).
237
- 3. **Medir**: correr Verify → métrica nueva; correr Guard.
238
- 4. **Decidir**:
239
- - Métrica mejora Y Guard pasa → **keep**: commit `experiment(autoresearch): [descripción]`.
240
- - Métrica no mejora O Guard falla → **revert**: descartar los cambios del
241
- working tree (`git checkout -- [archivos tocados]`). NUNCA reescribir
242
- historia para revertir — solo se commitea lo que se conserva.
243
- - Verify truena → estado `crash`: descartar cambios, registrar, continuar.
244
- 5. **Registrar** la iteración con `registrarIteracion` (métrica, delta, estado, descripción).
245
- 6. **Condiciones de salida**: target alcanzado → ÉXITO; `detectarPlateau`
246
- sobre las últimas 3 filas → PLATEAU (parar, no quemar rounds sin mejora);
247
- 3 reverts consecutivos → ESTANCAMIENTO (preguntar al usuario);
248
- max rounds → ACOTADO.
249
-
250
- ### Paso C3 — Cierre
251
-
252
- 1. Escribir handoff: `escribirHandoff(dir, {source: 'swl:autoresearch', status: [COMPLETO|PLATEAU|ACOTADO|INTERRUMPIDO], config})`.
253
- 2. Reporte final con trayectoria (`analizarTrayectoria`): rounds, keep/revert,
254
- métrica inicial → final, mayor salto, y los commits `experiment(...)` generados.
255
- 3. Ofrecer al usuario squash de los commits experimentales en un commit
256
- semántico final (`git-workflow.md § Squash antes de merge`).
257
-
258
- ### Reglas adicionales del modo `--codigo`
259
-
260
- - NUNCA `git push` desde el loop — los commits experimentales son locales.
261
- - NUNCA tocar archivos fuera del Scope aprobado.
262
- - NUNCA continuar tras plateau "por si acaso" — el plateau ES la señal de salida.
263
- - El hook `contexto-iteracion.js` inyecta el estado del loop en sesiones
264
- largas; no releer el TSV completo en cada round (las últimas 3 filas bastan).
1
+ ---
2
+ name: swl:autoresearch
3
+ description: Ejecuta el loop de auto-mejora iterativa Autoresearch sobre un skill, un agente, o (modo --codigo) sobre código del proyecto contra una métrica arbitraria. Modo skill/agente — crea o usa un checklist de evaluación (3-6 items binarios ponderados), obtiene baseline score, ejecuta mutaciones atómicas (una a la vez) y decide keep/revert por round hasta 95%+ x3. Modo --codigo — itera mutaciones sobre un Scope acotado contra un comando Verify numérico (cobertura, mutation score, errores, latencia) con Guard de regresión y telemetría en .planning/loops/. Flags: --skill=[nombre], --agente=[nombre], --codigo, --goal, --scope, --metric, --direction, --verify, --guard, --max-rounds=[N], --target=[N], --dry-run, --checklist=[path].
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:autoresearch — Loop de auto-mejora iterativa de skills
8
+
9
+ Eres el motor de Autoresearch del sistema SWL. Mejoras skills y agentes de forma medible e iterativa: defines un checklist de calidad, obtienes un baseline, y ejecutas un loop de mutaciones atómicas donde cada cambio se evalúa y se mantiene solo si mejora el score.
10
+
11
+ Este comando es distinto a `/swl:evolucionar`: donde evolucionar analiza evidencia histórica, autoresearch ejecuta un **loop cerrado de mejora medible** contra un checklist concreto.
12
+
13
+ ## Cuándo usar este comando
14
+
15
+ - Cuando un skill produce outputs de baja calidad de forma consistente
16
+ - Cuando se quiere elevar la calidad de un skill antes de una release
17
+ - Cuando `auto-evolucion-swl` identifica un candidato para mejora iterativa
18
+ - Después de crear un skill nuevo para calibrarlo contra criterios de calidad
19
+
20
+ ## Flags soportados
21
+
22
+ ```
23
+ --skill=[nombre] Skill a mejorar (busca en habilidades/[nombre]/SKILL.md)
24
+ --agente=[nombre] Agente a mejorar (busca en agentes/[nombre].md)
25
+ --codigo Modo código: itera sobre código del proyecto contra una métrica (ver sección "Modo --codigo")
26
+ --goal="..." (--codigo) Meta textual del loop
27
+ --scope="glob" (--codigo) Archivos que el loop PUEDE modificar (glob acotado)
28
+ --metric="..." (--codigo) Qué mide la métrica (ej: "mutation score de src/pagos")
29
+ --direction=[dir] (--codigo) higher_is_better | lower_is_better
30
+ --verify="cmd" (--codigo) Comando shell cuya salida contiene el número de la métrica
31
+ --guard="cmd" (--codigo) Comando que debe pasar (exit 0) para aceptar una mutación
32
+ --max-rounds=[N] Máximo de iteraciones del loop (default: 10 skill/agente, 15 código)
33
+ --target=[N] Score objetivo (default: 95% en skills; en código lo define el usuario)
34
+ --dry-run Analizar y derivar configuración sin ejecutar mutaciones
35
+ --checklist=[path] Ruta a checklist existente (solo modo skill/agente)
36
+ ```
37
+
38
+ **Nota**: Se debe pasar `--skill`, `--agente` o `--codigo` (excluyentes). Si no se pasa ninguno, preguntar al usuario.
39
+
40
+ ## Paso 0 — Parseo de flags y carga de habilidades
41
+
42
+ Lee los flags. Determina alcance y configuración.
43
+
44
+ Carga obligatoria:
45
+ ```
46
+ Skill("autoresearch")
47
+ ```
48
+
49
+ El skill define TODO el protocolo: el loop de mutación (pasos 1-5), tipos de mutación con riesgos, fórmula de priorización, condiciones de salida, umbrales de score, formato de checklist, formato de reporte por iteración, anti-patrones y la integración con auto-evolución SWL.
50
+
51
+ Reporta configuración:
52
+ ```
53
+ === Autoresearch — Configuración ===
54
+ Objetivo: [skill/agente] [nombre]
55
+ Max rounds: [N]
56
+ Target score: [N]%
57
+ Modo: [ejecutar | dry-run]
58
+ Checklist: [existente: path | por crear]
59
+ ```
60
+
61
+ ## Paso 1 — Lectura del artefacto objetivo
62
+
63
+ Lee el skill o agente completo. Identifica: versión actual, secciones principales, reglas existentes, ejemplos de código, anti-patrones documentados.
64
+
65
+ ## Paso 2 — Crear o cargar checklist
66
+
67
+ Si se pasó `--checklist=[path]`, cargar y validar (3-6 items, formato correcto).
68
+
69
+ Si ya existe checklist previo para este skill/agente, preguntar si usarlo o crear uno nuevo.
70
+
71
+ Si no existe, crearlo siguiendo el protocolo del skill: identificar output típico, extraer 3-5 reglas más críticas, convertir en criterios binarios verificables, asignar pesos (1-5), definir método de verificación. Presentar al usuario para aprobación antes de continuar.
72
+
73
+ Guardar checklist:
74
+ - Skills: `habilidades/[nombre]/recursos/checklist-autoresearch.md`
75
+ - Agentes: `.planning/checklists/[nombre]-checklist.md`
76
+
77
+ ## Paso 3 — Definir caso de prueba
78
+
79
+ Proponer un prompt concreto que active las reglas principales del skill. Debe ser representativo, reproducible y concreto. Pedir aprobación al usuario.
80
+
81
+ ## Paso 4 — Obtener baseline score
82
+
83
+ Ejecutar el skill con el caso de prueba, evaluar contra cada item del checklist, calcular score ponderado usando el script:
84
+
85
+ ```bash
86
+ node habilidades/autoresearch/scripts/calcular-score.js '[JSON con items evaluados]'
87
+ ```
88
+
89
+ Si `--dry-run`, termina aquí con recomendaciones de qué mutar primero.
90
+
91
+ Si el baseline ya es >= target, reportar que no se requiere autoresearch.
92
+
93
+ ## Paso 5 — Loop de mutación
94
+
95
+ Ejecutar el loop siguiendo el protocolo completo del skill. Para cada round:
96
+
97
+ 1. **Seleccionar item target** — usar la fórmula de priorización del skill (peso x no_cumple x factor_tipo)
98
+ 2. **Proponer mutación atómica** — UN solo cambio, siguiendo los tipos de mutación del skill (agregar > refinar > reordenar > eliminar)
99
+ 3. **Aplicar** la mutación con Edit. Registrar estado previo para poder revertir.
100
+ 4. **Re-evaluar** contra el checklist con el mismo caso de prueba
101
+ 5. **Decidir keep/revert** — si score >= anterior: KEEP; si baja: REVERT
102
+ 6. **Registrar** en changelog del loop
103
+ 7. **Verificar condiciones de salida** del skill:
104
+ - 95%+ x 3 consecutivas: ÉXITO
105
+ - 3 reverts consecutivos: ESTANCAMIENTO
106
+ - Score baja 2 rounds seguidos: DEGRADACIÓN (revertir al mejor score)
107
+ - Max rounds alcanzado: PLATEAU
108
+
109
+ ## Paso 6 — Reporte final
110
+
111
+ ```
112
+ === Reporte Autoresearch — [nombre] ===
113
+
114
+ Fecha: [fecha]
115
+ Rounds ejecutados: [N]
116
+ Score: [baseline]% → [final]%
117
+ Mutaciones KEEP: [N] | Mutaciones REVERT: [N]
118
+ Resultado: [ÉXITO | PLATEAU | ESTANCAMIENTO | DEGRADACIÓN]
119
+
120
+ ### Mutaciones aplicadas (en orden)
121
+ 1. [tipo]: [descripción] — Score [X]% → [Y]%
122
+
123
+ ### Mutaciones revertidas
124
+ 1. [tipo]: [descripción] — Razón: [por qué empeoró]
125
+
126
+ ### Score final por item
127
+ | # | Criterio | Peso | check |
128
+ |---|----------|------|-------|
129
+
130
+ ### Recomendaciones
131
+ - [qué hacer si no se alcanzó el target]
132
+ ```
133
+
134
+ ## Paso 7 — Versionado, marcado de evolución y persistencia
135
+
136
+ Si el score mejoró respecto al baseline:
137
+ 1. Actualizar versión del skill/agente (< 10 pts: PATCH, >= 10 pts: MINOR)
138
+ 2. **OBLIGATORIO — Marcar como evolucionado** con el subcomando del CLI
139
+ (resuelve cross-scope; ver `docs/invocacion-cli-cross-scope.md`):
140
+ ```bash
141
+ swl-ses mark-evolved "[RUTA_ARCHIVO_MODIFICADO]" \
142
+ --by=autoresearch \
143
+ --rounds=[N_ROUNDS] \
144
+ --score="[BASELINE]% → [FINAL]%" \
145
+ --note="[descripción breve de las mutaciones]"
146
+ # fallback: npx -y @saulwade/swl-ses@latest mark-evolved "[RUTA]" --by=autoresearch ...
147
+ ```
148
+ Reemplazar los placeholders entre corchetes con los valores reales.
149
+ Si el comando Bash no está disponible, agregar manualmente en el frontmatter:
150
+ ```yaml
151
+ evolved: true
152
+ evolved-from: "[versión actual del sistema]"
153
+ evolved-at: "[fecha YYYY-MM-DD]"
154
+ evolved-by: "autoresearch"
155
+ evolved-rounds: [N rounds ejecutados]
156
+ evolved-score: "[baseline]% → [final]%"
157
+ ```
158
+ **SIN ESTE MARCADO, LAS MUTACIONES SE PERDERÁN EN LA PRÓXIMA ACTUALIZACIÓN.**
159
+ 3. Guardar reporte en `.planning/autoresearch/[nombre]-[fecha].md`
160
+ 4. Registrar en APRENDIZAJES.md las mutaciones más impactantes
161
+ 5. Actualizar el checklist si se descubrieron items nuevos
162
+
163
+ ## Reglas de comportamiento
164
+
165
+ - NUNCA ejecutar mutaciones sin checklist aprobado por el usuario
166
+ - NUNCA cambiar más de una cosa por round — regla más importante del protocolo
167
+ - NUNCA modificar el checklist durante el loop
168
+ - SIEMPRE revertir si el score baja — sin excepciones
169
+ - SIEMPRE mostrar el diff concreto antes de cada mutación
170
+ - Si después de 3 rounds sin mejora, preguntar al usuario si continuar o parar
171
+ - El caso de prueba NO cambia durante el loop
172
+ - Mantener log completo del loop para auditoría
173
+
174
+ ---
175
+
176
+ ## Modo `--codigo` — Loop métrico sobre código del proyecto
177
+
178
+ Generaliza el loop a **código del usuario**: la misma disciplina (mutación
179
+ atómica → medir → keep/revert) pero la evaluación es un **comando Verify
180
+ numérico** en lugar de un checklist. Patrón adoptado del análisis de
181
+ autoresearch v2.1 (loop core), adaptado a las reglas SWL (HITL, git-workflow,
182
+ telemetría en `.planning/loops/`).
183
+
184
+ Métricas típicas: mutation score (cargar `Skill("calidad-mutation-testing")`),
185
+ cobertura de tests, conteo de errores de tsc/lint (lower_is_better), latencia
186
+ p95 de un benchmark, bundle size, tiempo de suite.
187
+
188
+ ### Paso C0 — Derivar y aprobar la configuración (HITL obligatorio)
189
+
190
+ Completar con el usuario los campos faltantes y presentar el bloque para
191
+ aprobación explícita ANTES de la primera mutación:
192
+
193
+ ```
194
+ === Autoresearch --codigo — Configuración ===
195
+ Goal: [meta textual]
196
+ Scope: [glob de archivos que el loop PUEDE tocar]
197
+ Metric: [qué mide] | Direction: [higher|lower]_is_better
198
+ Verify: [comando shell]
199
+ Guard: [comando shell o "(ninguno)"]
200
+ Target: [valor objetivo o "(mejora máxima en N rounds)"]
201
+ Rounds: [N, default 15]
202
+ ```
203
+
204
+ **Safety screen del Verify/Guard (bloqueante)**: rechazar comandos que
205
+ contengan `rm -rf`, `curl|sh`/`wget|sh`, `sudo`, `git push`, `--force`,
206
+ redirecciones a archivos fuera del repo, o credenciales inline. El Verify se
207
+ ejecuta una vez en dry-run para confirmar que produce un número parseable —
208
+ si no, corregir el comando antes de iterar.
209
+
210
+ **Guard por default**: si el proyecto tiene suite de tests, el Guard es la
211
+ suite (`npm test` / `pytest`). Iterar sin Guard solo si el usuario lo aprueba
212
+ explícitamente — una métrica que sube con la suite rota no es mejora.
213
+
214
+ Si `--dry-run`: terminar aquí mostrando la configuración derivada.
215
+
216
+ ### Paso C1 — Baseline y telemetría
217
+
218
+ Subcomando del CLI (resuelve cross-scope; ver `docs/invocacion-cli-cross-scope.md`).
219
+ Imprime el `<dir>` de la corrida:
220
+
221
+ ```bash
222
+ swl-ses loop-telemetry iniciar --tipo=autoresearch --direccion=[direction] --config='{"goal":"[goal]","scope":"[scope]","verify":"[verify]","guard":"[guard]"}'
223
+ ```
224
+
225
+ Correr Verify, extraer la métrica, registrar la iteración 0 (`estado:
226
+ baseline`). Si el baseline ya cumple el target, terminar: no hay loop que correr.
227
+
228
+ ### Paso C2 — El loop
229
+
230
+ Por cada round (hasta `--max-rounds`, default 15):
231
+
232
+ 1. **Revisar memoria**: últimas filas del TSV + `git log --oneline -10` — qué
233
+ funcionó, qué se revirtió. No repetir mutaciones ya revertidas.
234
+ 2. **UNA mutación atómica** dentro del Scope. Archivos fuera del Scope son
235
+ intocables — si la mejora "necesita" tocar otro archivo, pausar y
236
+ preguntar al usuario (anti-proxy-goal-drift).
237
+ 3. **Medir**: correr Verify → métrica nueva; correr Guard.
238
+ 4. **Decidir**:
239
+ - Métrica mejora Y Guard pasa → **keep**: commit `experiment(autoresearch): [descripción]`.
240
+ - Métrica no mejora O Guard falla → **revert**: descartar los cambios del
241
+ working tree (`git checkout -- [archivos tocados]`). NUNCA reescribir
242
+ historia para revertir — solo se commitea lo que se conserva.
243
+ - Verify truena → estado `crash`: descartar cambios, registrar, continuar.
244
+ 5. **Registrar** la iteración con `registrarIteracion` (métrica, delta, estado, descripción).
245
+ 6. **Condiciones de salida**: target alcanzado → ÉXITO; `detectarPlateau`
246
+ sobre las últimas 3 filas → PLATEAU (parar, no quemar rounds sin mejora);
247
+ 3 reverts consecutivos → ESTANCAMIENTO (preguntar al usuario);
248
+ max rounds → ACOTADO.
249
+
250
+ ### Paso C3 — Cierre
251
+
252
+ 1. Escribir handoff: `escribirHandoff(dir, {source: 'swl:autoresearch', status: [COMPLETO|PLATEAU|ACOTADO|INTERRUMPIDO], config})`.
253
+ 2. Reporte final con trayectoria (`analizarTrayectoria`): rounds, keep/revert,
254
+ métrica inicial → final, mayor salto, y los commits `experiment(...)` generados.
255
+ 3. Ofrecer al usuario squash de los commits experimentales en un commit
256
+ semántico final (`git-workflow.md § Squash antes de merge`).
257
+
258
+ ### Reglas adicionales del modo `--codigo`
259
+
260
+ - NUNCA `git push` desde el loop — los commits experimentales son locales.
261
+ - NUNCA tocar archivos fuera del Scope aprobado.
262
+ - NUNCA continuar tras plateau "por si acaso" — el plateau ES la señal de salida.
263
+ - El hook `contexto-iteracion.js` inyecta el estado del loop en sesiones
264
+ largas; no releer el TSV completo en cada round (las últimas 3 filas bastan).