@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,224 +1,224 @@
1
- ---
2
- paths:
3
- - "**/tests/**"
4
- ---
5
- # Regla: Cleanup obligatorio de directorios temporales en tests
6
-
7
- Esta regla es **OBLIGATORIA** y aplica a todo test Node.js del sistema SWL
8
- que cree directorios temporales bajo `os.tmpdir()` (típicamente
9
- `C:\Users\<usuario>\AppData\Local\Temp` en Windows, `/tmp` en POSIX).
10
-
11
- Promueve a regla obligatoria el aprendizaje L1 #19 + entrada extensa de
12
- APRENDIZAJES.md (2026-05-17 "Tests sin cleanup acumularon 5,800+ carpetas
13
- en %TEMP%") tras reincidencia documentada el 2026-05-18 en
14
- `tests/hooks/validar-intent-spec.test.js` (192 residuos acumulados).
15
-
16
- ---
17
-
18
- ## Principio
19
-
20
- > Todo test que necesite un directorio temporal DEBE usar
21
- > `setupSandboxes(prefix)` de `tests/_helpers/sandbox.js`. NUNCA
22
- > `fs.mkdtempSync(path.join(os.tmpdir(), ...))` directo.
23
-
24
- El helper registra automáticamente `after()` del módulo `node:test` para
25
- limpiar al final del archivo. Sin él, cada corrida de `npm test:all` deja
26
- N carpetas residuales (N = número de tests × archivos sin cleanup).
27
-
28
- ---
29
-
30
- ## Patrón obligatorio
31
-
32
- ### MAL — `mkdtempSync` directo sin cleanup
33
-
34
- ```javascript
35
- const fs = require('node:fs');
36
- const os = require('node:os');
37
- const path = require('node:path');
38
- const { test } = require('node:test');
39
-
40
- function crearSandbox() {
41
- return fs.mkdtempSync(path.join(os.tmpdir(), 'mi-test-'));
42
- // ✗ Nunca se limpia. Acumula residuos en %TEMP%.
43
- }
44
-
45
- test('hace algo', () => {
46
- const dir = crearSandbox();
47
- // ... usar dir ...
48
- // ✗ Sin try/finally con rmSync.
49
- });
50
- ```
51
-
52
- ### BIEN — `setupSandboxes` con cleanup automático
53
-
54
- ```javascript
55
- const { test } = require('node:test');
56
- const { setupSandboxes } = require('../_helpers/sandbox');
57
-
58
- const sandboxes = setupSandboxes('mi-test-');
59
- // ✓ setupSandboxes registra after() global del archivo.
60
-
61
- test('hace algo', () => {
62
- const dir = sandboxes.create();
63
- // ... usar dir ...
64
- // ✓ Cleanup automático al terminar el archivo de tests.
65
- });
66
- ```
67
-
68
- ---
69
-
70
- ## Cuándo aplicar
71
-
72
- OBLIGATORIO en:
73
-
74
- - Cualquier archivo `tests/**/*.test.js` que cree dirs temporales para
75
- aislar el test del CWD del proyecto.
76
- - Tests de hooks que necesitan sandbox con `.planning/`, `agentes/`, etc.
77
- - Tests de scripts que escriben archivos generados (`generar-*`,
78
- `auditar-*`).
79
- - Cualquier helper de fixtures que cree filesystem temporal.
80
-
81
- NO aplicar (excepciones legítimas):
82
-
83
- - Tests que NO crean dirs temporales (unit tests puros con stubs/mocks).
84
- - Tests que usan `process.chdir` sin crear directorio nuevo (raros).
85
-
86
- ---
87
-
88
- ## Convención del prefijo
89
-
90
- El prefijo pasado a `setupSandboxes(prefix)` DEBE:
91
-
92
- 1. Empezar con `swl-` para identificar el origen del proyecto.
93
- 2. Incluir el nombre del componente bajo test (corto).
94
- 3. Terminar con guión final (el helper NO lo añade automáticamente).
95
-
96
- Ejemplos válidos:
97
-
98
- - `setupSandboxes('swl-mi-hook-')`
99
- - `setupSandboxes('swl-claudemd-')`
100
- - `setupSandboxes('swl-evolucion-')`
101
-
102
- Ejemplos inválidos:
103
-
104
- - `setupSandboxes('test')` — sin prefijo `swl-`, indistinguible de otros proyectos.
105
- - `setupSandboxes('swl-hook')` — falta guión final, `mkdtemp` añade chars random pegados al nombre.
106
-
107
- ---
108
-
109
- ## Casos especiales: `process.chdir` en tests
110
-
111
- Si el test hace `process.chdir(sandbox)` en top-level, registrar
112
- **ANTES** de `setupSandboxes()` un `after()` que restaure el CWD:
113
-
114
- ```javascript
115
- const originalCwd = process.cwd();
116
- const { after } = require('node:test');
117
- after(() => process.chdir(originalCwd));
118
- // ↑ chdir-restore registrado primero
119
- const sandboxes = setupSandboxes('swl-mi-test-');
120
- // ↑ cleanup de sandboxes registrado segundo
121
- // FIFO en node:test: restaurar CWD primero, luego limpiar dirs.
122
- ```
123
-
124
- Sin esto, Windows EBUSY al intentar `rmSync` un directorio que es el CWD activo.
125
-
126
- ---
127
-
128
- ## Verificación
129
-
130
- ### Test de regresión post-suite
131
-
132
- Tras ejecutar `npm test:all`, verificar 0 residuos:
133
-
134
- ```bash
135
- # Bash
136
- ls "$LOCALAPPDATA/Temp" 2>/dev/null | grep -c "^swl-" || echo "0"
137
-
138
- # PowerShell
139
- (Get-ChildItem $env:TEMP -Directory -Filter "swl-*").Count
140
- ```
141
-
142
- Resultado esperado: `0`.
143
-
144
- ### Auditoría continua del repo
145
-
146
- Para detectar archivos de test que ignoran la regla:
147
-
148
- ```bash
149
- # Archivos con mkdtempSync directo SIN usar el helper
150
- grep -rlE "mkdtempSync\(.*os\.tmpdir|fs\.mkdtempSync" tests/ \
151
- | grep -v "_helpers" \
152
- | xargs -I {} grep -L "setupSandboxes" {}
153
- ```
154
-
155
- Resultado esperado tras migración completa: `0` archivos.
156
-
157
- ---
158
-
159
- ## Anti-patrones explícitos
160
-
161
- - **Copiar de un test "legacy" como referencia**: si el patrón a copiar
162
- usa `mkdtempSync` directo, el nuevo test heredará el bug. Verificar
163
- que el test fuente use `setupSandboxes` antes de copiar como
164
- plantilla.
165
- - **`afterEach` con `rmSync` manual cuando ya existe `setupSandboxes`**:
166
- duplica responsabilidad. Si necesitas cleanup por test (no por
167
- archivo), el helper expone `sandboxes.cleanup()` invocable.
168
- - **Path construido manualmente** con `path.join(os.tmpdir(),
169
- \`prefix-${Date.now()}\`)` + `mkdirSync`: escapa al regex de
170
- auditoría que busca `mkdtempSync`. Si el patrón aparece, refactorizar
171
- a `setupSandboxes` igual.
172
- - **Ignorar Windows EBUSY**: si en CI Linux pasa pero localmente
173
- Windows falla con `EBUSY: resource busy or locked`, casi siempre es
174
- cleanup intentando borrar el CWD. Aplicar el patrón `chdir-restore
175
- ANTES de setupSandboxes`.
176
-
177
- ---
178
-
179
- ## Excepciones documentadas
180
-
181
- Si un test legítimamente NO puede usar `setupSandboxes` (caso raro), DEBE:
182
-
183
- 1. Documentar en comentario al inicio del archivo por qué no aplica.
184
- 2. Implementar cleanup manual con `after()` + `try/finally`.
185
- 3. Incluir test de regresión: tras el test, `Get-ChildItem $env:TEMP` no debe mostrar el dir.
186
-
187
- Sin esos 3 elementos, el test será marcado como violación de la regla
188
- en `/swl:revisar`.
189
-
190
- ---
191
-
192
- ## Origen
193
-
194
- - **Aprendizaje L1 #19** (2026-05-17): "Test nuevo que necesita
195
- directorio temporal | Usar `setupSandboxes('prefix-')` de
196
- `tests/_helpers/sandbox.js`; nunca `fs.mkdtempSync` directo sin
197
- cleanup".
198
- - **Entrada extensa APRENDIZAJES.md líneas 6793-6852**: el usuario
199
- descubrió manualmente más de 5,800 carpetas con prefijo `swl-*` en
200
- `C:\Users\Saul\AppData\Local\Temp` y las limpió con CCleaner.
201
- Investigación reveló 14 archivos de test sin cleanup en refactor PR #35.
202
- - **Reincidencia 2026-05-18**: tras refactor de 14 archivos quedaron
203
- 32 sin migrar. Yo creé `tests/hooks/validar-intent-spec.test.js`
204
- copiando patrón de `claudemd-bloat-detector.test.js` (no migrado) →
205
- 192 residuos en 1 sesión. La regla estaba en APRENDIZAJES.md pero NO
206
- era obligatoria en `reglas/` ni `~/.claude/rules/pruebas.md`.
207
-
208
- Esta regla cierra ese gap promoviendo el aprendizaje a regla obligatoria
209
- del proyecto + actualización del skill `tdd-workflow` para enseñar el
210
- patrón correcto.
211
-
212
- ---
213
-
214
- ## Relación con otras reglas
215
-
216
- - `~/.claude/rules/pruebas.md § Tests deterministas — sin sleep ni delays`
217
- — esta regla extiende el principio "Limpiar estado en teardown" al
218
- caso específico de directorios temporales.
219
- - `~/.claude/rules/arreglar-al-detectar.md` — la deuda silenciosa que
220
- esta regla cierra es exactamente el tipo de deuda que esa regla
221
- prohíbe acumular.
222
- - `reglas/registro-componentes-nuevos.md` — al crear un test nuevo se
223
- considera componente nuevo del sistema; la regla aplica como parte
224
- del registro.
1
+ ---
2
+ paths:
3
+ - "**/tests/**"
4
+ ---
5
+ # Regla: Cleanup obligatorio de directorios temporales en tests
6
+
7
+ Esta regla es **OBLIGATORIA** y aplica a todo test Node.js del sistema SWL
8
+ que cree directorios temporales bajo `os.tmpdir()` (típicamente
9
+ `C:\Users\<usuario>\AppData\Local\Temp` en Windows, `/tmp` en POSIX).
10
+
11
+ Promueve a regla obligatoria el aprendizaje L1 #19 + entrada extensa de
12
+ APRENDIZAJES.md (2026-05-17 "Tests sin cleanup acumularon 5,800+ carpetas
13
+ en %TEMP%") tras reincidencia documentada el 2026-05-18 en
14
+ `tests/hooks/validar-intent-spec.test.js` (192 residuos acumulados).
15
+
16
+ ---
17
+
18
+ ## Principio
19
+
20
+ > Todo test que necesite un directorio temporal DEBE usar
21
+ > `setupSandboxes(prefix)` de `tests/_helpers/sandbox.js`. NUNCA
22
+ > `fs.mkdtempSync(path.join(os.tmpdir(), ...))` directo.
23
+
24
+ El helper registra automáticamente `after()` del módulo `node:test` para
25
+ limpiar al final del archivo. Sin él, cada corrida de `npm test:all` deja
26
+ N carpetas residuales (N = número de tests × archivos sin cleanup).
27
+
28
+ ---
29
+
30
+ ## Patrón obligatorio
31
+
32
+ ### MAL — `mkdtempSync` directo sin cleanup
33
+
34
+ ```javascript
35
+ const fs = require('node:fs');
36
+ const os = require('node:os');
37
+ const path = require('node:path');
38
+ const { test } = require('node:test');
39
+
40
+ function crearSandbox() {
41
+ return fs.mkdtempSync(path.join(os.tmpdir(), 'mi-test-'));
42
+ // ✗ Nunca se limpia. Acumula residuos en %TEMP%.
43
+ }
44
+
45
+ test('hace algo', () => {
46
+ const dir = crearSandbox();
47
+ // ... usar dir ...
48
+ // ✗ Sin try/finally con rmSync.
49
+ });
50
+ ```
51
+
52
+ ### BIEN — `setupSandboxes` con cleanup automático
53
+
54
+ ```javascript
55
+ const { test } = require('node:test');
56
+ const { setupSandboxes } = require('../_helpers/sandbox');
57
+
58
+ const sandboxes = setupSandboxes('mi-test-');
59
+ // ✓ setupSandboxes registra after() global del archivo.
60
+
61
+ test('hace algo', () => {
62
+ const dir = sandboxes.create();
63
+ // ... usar dir ...
64
+ // ✓ Cleanup automático al terminar el archivo de tests.
65
+ });
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Cuándo aplicar
71
+
72
+ OBLIGATORIO en:
73
+
74
+ - Cualquier archivo `tests/**/*.test.js` que cree dirs temporales para
75
+ aislar el test del CWD del proyecto.
76
+ - Tests de hooks que necesitan sandbox con `.planning/`, `agentes/`, etc.
77
+ - Tests de scripts que escriben archivos generados (`generar-*`,
78
+ `auditar-*`).
79
+ - Cualquier helper de fixtures que cree filesystem temporal.
80
+
81
+ NO aplicar (excepciones legítimas):
82
+
83
+ - Tests que NO crean dirs temporales (unit tests puros con stubs/mocks).
84
+ - Tests que usan `process.chdir` sin crear directorio nuevo (raros).
85
+
86
+ ---
87
+
88
+ ## Convención del prefijo
89
+
90
+ El prefijo pasado a `setupSandboxes(prefix)` DEBE:
91
+
92
+ 1. Empezar con `swl-` para identificar el origen del proyecto.
93
+ 2. Incluir el nombre del componente bajo test (corto).
94
+ 3. Terminar con guión final (el helper NO lo añade automáticamente).
95
+
96
+ Ejemplos válidos:
97
+
98
+ - `setupSandboxes('swl-mi-hook-')`
99
+ - `setupSandboxes('swl-claudemd-')`
100
+ - `setupSandboxes('swl-evolucion-')`
101
+
102
+ Ejemplos inválidos:
103
+
104
+ - `setupSandboxes('test')` — sin prefijo `swl-`, indistinguible de otros proyectos.
105
+ - `setupSandboxes('swl-hook')` — falta guión final, `mkdtemp` añade chars random pegados al nombre.
106
+
107
+ ---
108
+
109
+ ## Casos especiales: `process.chdir` en tests
110
+
111
+ Si el test hace `process.chdir(sandbox)` en top-level, registrar
112
+ **ANTES** de `setupSandboxes()` un `after()` que restaure el CWD:
113
+
114
+ ```javascript
115
+ const originalCwd = process.cwd();
116
+ const { after } = require('node:test');
117
+ after(() => process.chdir(originalCwd));
118
+ // ↑ chdir-restore registrado primero
119
+ const sandboxes = setupSandboxes('swl-mi-test-');
120
+ // ↑ cleanup de sandboxes registrado segundo
121
+ // FIFO en node:test: restaurar CWD primero, luego limpiar dirs.
122
+ ```
123
+
124
+ Sin esto, Windows EBUSY al intentar `rmSync` un directorio que es el CWD activo.
125
+
126
+ ---
127
+
128
+ ## Verificación
129
+
130
+ ### Test de regresión post-suite
131
+
132
+ Tras ejecutar `npm test:all`, verificar 0 residuos:
133
+
134
+ ```bash
135
+ # Bash
136
+ ls "$LOCALAPPDATA/Temp" 2>/dev/null | grep -c "^swl-" || echo "0"
137
+
138
+ # PowerShell
139
+ (Get-ChildItem $env:TEMP -Directory -Filter "swl-*").Count
140
+ ```
141
+
142
+ Resultado esperado: `0`.
143
+
144
+ ### Auditoría continua del repo
145
+
146
+ Para detectar archivos de test que ignoran la regla:
147
+
148
+ ```bash
149
+ # Archivos con mkdtempSync directo SIN usar el helper
150
+ grep -rlE "mkdtempSync\(.*os\.tmpdir|fs\.mkdtempSync" tests/ \
151
+ | grep -v "_helpers" \
152
+ | xargs -I {} grep -L "setupSandboxes" {}
153
+ ```
154
+
155
+ Resultado esperado tras migración completa: `0` archivos.
156
+
157
+ ---
158
+
159
+ ## Anti-patrones explícitos
160
+
161
+ - **Copiar de un test "legacy" como referencia**: si el patrón a copiar
162
+ usa `mkdtempSync` directo, el nuevo test heredará el bug. Verificar
163
+ que el test fuente use `setupSandboxes` antes de copiar como
164
+ plantilla.
165
+ - **`afterEach` con `rmSync` manual cuando ya existe `setupSandboxes`**:
166
+ duplica responsabilidad. Si necesitas cleanup por test (no por
167
+ archivo), el helper expone `sandboxes.cleanup()` invocable.
168
+ - **Path construido manualmente** con `path.join(os.tmpdir(),
169
+ \`prefix-${Date.now()}\`)` + `mkdirSync`: escapa al regex de
170
+ auditoría que busca `mkdtempSync`. Si el patrón aparece, refactorizar
171
+ a `setupSandboxes` igual.
172
+ - **Ignorar Windows EBUSY**: si en CI Linux pasa pero localmente
173
+ Windows falla con `EBUSY: resource busy or locked`, casi siempre es
174
+ cleanup intentando borrar el CWD. Aplicar el patrón `chdir-restore
175
+ ANTES de setupSandboxes`.
176
+
177
+ ---
178
+
179
+ ## Excepciones documentadas
180
+
181
+ Si un test legítimamente NO puede usar `setupSandboxes` (caso raro), DEBE:
182
+
183
+ 1. Documentar en comentario al inicio del archivo por qué no aplica.
184
+ 2. Implementar cleanup manual con `after()` + `try/finally`.
185
+ 3. Incluir test de regresión: tras el test, `Get-ChildItem $env:TEMP` no debe mostrar el dir.
186
+
187
+ Sin esos 3 elementos, el test será marcado como violación de la regla
188
+ en `/swl:revisar`.
189
+
190
+ ---
191
+
192
+ ## Origen
193
+
194
+ - **Aprendizaje L1 #19** (2026-05-17): "Test nuevo que necesita
195
+ directorio temporal | Usar `setupSandboxes('prefix-')` de
196
+ `tests/_helpers/sandbox.js`; nunca `fs.mkdtempSync` directo sin
197
+ cleanup".
198
+ - **Entrada extensa APRENDIZAJES.md líneas 6793-6852**: el usuario
199
+ descubrió manualmente más de 5,800 carpetas con prefijo `swl-*` en
200
+ `C:\Users\Saul\AppData\Local\Temp` y las limpió con CCleaner.
201
+ Investigación reveló 14 archivos de test sin cleanup en refactor PR #35.
202
+ - **Reincidencia 2026-05-18**: tras refactor de 14 archivos quedaron
203
+ 32 sin migrar. Yo creé `tests/hooks/validar-intent-spec.test.js`
204
+ copiando patrón de `claudemd-bloat-detector.test.js` (no migrado) →
205
+ 192 residuos en 1 sesión. La regla estaba en APRENDIZAJES.md pero NO
206
+ era obligatoria en `reglas/` ni `~/.claude/rules/pruebas.md`.
207
+
208
+ Esta regla cierra ese gap promoviendo el aprendizaje a regla obligatoria
209
+ del proyecto + actualización del skill `tdd-workflow` para enseñar el
210
+ patrón correcto.
211
+
212
+ ---
213
+
214
+ ## Relación con otras reglas
215
+
216
+ - `~/.claude/rules/pruebas.md § Tests deterministas — sin sleep ni delays`
217
+ — esta regla extiende el principio "Limpiar estado en teardown" al
218
+ caso específico de directorios temporales.
219
+ - `~/.claude/rules/arreglar-al-detectar.md` — la deuda silenciosa que
220
+ esta regla cierra es exactamente el tipo de deuda que esa regla
221
+ prohíbe acumular.
222
+ - `reglas/registro-componentes-nuevos.md` — al crear un test nuevo se
223
+ considera componente nuevo del sistema; la regla aplica como parte
224
+ del registro.
@@ -1,73 +1,73 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://swl-ses.dev/schemas/agent-message.json",
4
- "$schemaVersion": "1.0.0",
5
- "title": "SWL Agent Message",
6
- "description": "Schema de validacion para mensajes entre agentes SWL",
7
- "type": "object",
8
- "required": [
9
- "id",
10
- "type",
11
- "from",
12
- "to",
13
- "timestamp",
14
- "status"
15
- ],
16
- "properties": {
17
- "id": {
18
- "type": "string",
19
- "pattern": "^msg-[a-z0-9]+-[a-z0-9]+$",
20
- "description": "Identificador unico del mensaje generado por generarMessageId()"
21
- },
22
- "type": {
23
- "type": "string",
24
- "enum": [
25
- "task_handoff",
26
- "query",
27
- "response",
28
- "completed",
29
- "conflict"
30
- ],
31
- "description": "Tipo de mensaje segun el protocolo SWL inter-agent"
32
- },
33
- "from": {
34
- "type": "string",
35
- "description": "Nombre del agente emisor"
36
- },
37
- "to": {
38
- "type": "string",
39
- "description": "Nombre del agente destinatario o 'broadcast' para todos"
40
- },
41
- "payload": {
42
- "type": "object",
43
- "description": "Datos del mensaje, estructura libre segun type"
44
- },
45
- "contextFiles": {
46
- "type": "array",
47
- "items": {
48
- "type": "string"
49
- },
50
- "description": "Rutas de archivos relevantes al mensaje, usadas para deteccion de conflictos"
51
- },
52
- "timestamp": {
53
- "type": "string",
54
- "format": "date-time",
55
- "description": "Fecha y hora de creacion del mensaje en formato ISO 8601"
56
- },
57
- "status": {
58
- "type": "string",
59
- "enum": [
60
- "pending",
61
- "processed",
62
- "expired"
63
- ],
64
- "description": "Estado actual del mensaje en el ciclo de vida del protocolo"
65
- },
66
- "processedAt": {
67
- "type": "string",
68
- "format": "date-time",
69
- "description": "Fecha y hora en que el mensaje fue marcado como procesado"
70
- }
71
- },
72
- "additionalProperties": false
73
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://swl-ses.dev/schemas/agent-message.json",
4
+ "$schemaVersion": "1.0.0",
5
+ "title": "SWL Agent Message",
6
+ "description": "Schema de validacion para mensajes entre agentes SWL",
7
+ "type": "object",
8
+ "required": [
9
+ "id",
10
+ "type",
11
+ "from",
12
+ "to",
13
+ "timestamp",
14
+ "status"
15
+ ],
16
+ "properties": {
17
+ "id": {
18
+ "type": "string",
19
+ "pattern": "^msg-[a-z0-9]+-[a-z0-9]+$",
20
+ "description": "Identificador unico del mensaje generado por generarMessageId()"
21
+ },
22
+ "type": {
23
+ "type": "string",
24
+ "enum": [
25
+ "task_handoff",
26
+ "query",
27
+ "response",
28
+ "completed",
29
+ "conflict"
30
+ ],
31
+ "description": "Tipo de mensaje segun el protocolo SWL inter-agent"
32
+ },
33
+ "from": {
34
+ "type": "string",
35
+ "description": "Nombre del agente emisor"
36
+ },
37
+ "to": {
38
+ "type": "string",
39
+ "description": "Nombre del agente destinatario o 'broadcast' para todos"
40
+ },
41
+ "payload": {
42
+ "type": "object",
43
+ "description": "Datos del mensaje, estructura libre segun type"
44
+ },
45
+ "contextFiles": {
46
+ "type": "array",
47
+ "items": {
48
+ "type": "string"
49
+ },
50
+ "description": "Rutas de archivos relevantes al mensaje, usadas para deteccion de conflictos"
51
+ },
52
+ "timestamp": {
53
+ "type": "string",
54
+ "format": "date-time",
55
+ "description": "Fecha y hora de creacion del mensaje en formato ISO 8601"
56
+ },
57
+ "status": {
58
+ "type": "string",
59
+ "enum": [
60
+ "pending",
61
+ "processed",
62
+ "expired"
63
+ ],
64
+ "description": "Estado actual del mensaje en el ciclo de vida del protocolo"
65
+ },
66
+ "processedAt": {
67
+ "type": "string",
68
+ "format": "date-time",
69
+ "description": "Fecha y hora en que el mensaje fue marcado como procesado"
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ }