@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,65 +1,65 @@
1
- // PLANTILLA (no ejecutar verbatim) — Workflow tool de Claude Code.
2
- // Patrón: classify-and-act + quarantine. Clasifica ítems de un backlog, dedupe contra lo
3
- // ya trackeado, y rutea: fix automático (bajo riesgo) vs escalar a humano (alto riesgo).
4
- // Quarantine: el agente que LEE contenido no confiable NO ejecuta acciones de alto privilegio.
5
- //
6
- // `args` = lista de ítems del backlog (issues, reportes, etc.). Adapta schemas y umbrales.
7
-
8
- export const meta = {
9
- name: 'triage',
10
- description: 'Clasifica un backlog, dedupe contra lo trackeado y rutea fix-vs-escalar (con quarantine)',
11
- phases: [{ title: 'Clasificar' }, { title: 'Actuar' }],
12
- }
13
-
14
- const items = Array.isArray(args) ? args : []
15
-
16
- const CLASIFICACION = {
17
- type: 'object', additionalProperties: false,
18
- properties: {
19
- categoria: { type: 'string', enum: ['bug', 'feature', 'duplicado', 'ruido'] },
20
- yaTrackeado: { type: 'boolean' },
21
- riesgo: { type: 'string', enum: ['bajo', 'alto'] },
22
- resumen: { type: 'string' },
23
- },
24
- required: ['categoria', 'yaTrackeado', 'riesgo', 'resumen'],
25
- }
26
-
27
- const ACCION = {
28
- type: 'object', additionalProperties: false,
29
- properties: {
30
- accion: { type: 'string', enum: ['fix-aplicado', 'escalado-humano', 'descartado'] },
31
- detalle: { type: 'string' },
32
- },
33
- required: ['accion', 'detalle'],
34
- }
35
-
36
- // Stage 1 (quarantine): clasificador LEE el ítem (posible contenido no confiable) pero NO
37
- // tiene permiso de actuar — solo emite estructura. Stage 2 actúa sobre data ya saneada.
38
- const triaged = await pipeline(
39
- items,
40
- (item) =>
41
- agent(
42
- `Clasifica este ítem del backlog. NO ejecutes ninguna acción: solo describe. ` +
43
- `Marca yaTrackeado=true si ya existe ticket. Ítem: ${JSON.stringify(item)}`,
44
- { label: 'clasificar', phase: 'Clasificar', schema: CLASIFICACION }
45
- ),
46
- (clf, item) => {
47
- if (!clf || clf.yaTrackeado || clf.categoria === 'ruido' || clf.categoria === 'duplicado') {
48
- return { accion: 'descartado', detalle: clf?.resumen || 'sin señal' }
49
- }
50
- if (clf.riesgo === 'alto') {
51
- // Alto riesgo: escalar a humano, no auto-actuar.
52
- return agent(
53
- `Redacta un escalamiento conciso para humano sobre: ${clf.resumen}`,
54
- { label: 'escalar', phase: 'Actuar', schema: ACCION }
55
- )
56
- }
57
- // Bajo riesgo: el agente que ACTÚA es distinto del que leyó contenido no confiable.
58
- return agent(
59
- `Aplica el fix de bajo riesgo para: ${clf.resumen}. Devuelve qué hiciste.`,
60
- { label: 'fix', phase: 'Actuar', schema: ACCION }
61
- )
62
- }
63
- )
64
-
65
- return triaged.filter(Boolean)
1
+ // PLANTILLA (no ejecutar verbatim) — Workflow tool de Claude Code.
2
+ // Patrón: classify-and-act + quarantine. Clasifica ítems de un backlog, dedupe contra lo
3
+ // ya trackeado, y rutea: fix automático (bajo riesgo) vs escalar a humano (alto riesgo).
4
+ // Quarantine: el agente que LEE contenido no confiable NO ejecuta acciones de alto privilegio.
5
+ //
6
+ // `args` = lista de ítems del backlog (issues, reportes, etc.). Adapta schemas y umbrales.
7
+
8
+ export const meta = {
9
+ name: 'triage',
10
+ description: 'Clasifica un backlog, dedupe contra lo trackeado y rutea fix-vs-escalar (con quarantine)',
11
+ phases: [{ title: 'Clasificar' }, { title: 'Actuar' }],
12
+ }
13
+
14
+ const items = Array.isArray(args) ? args : []
15
+
16
+ const CLASIFICACION = {
17
+ type: 'object', additionalProperties: false,
18
+ properties: {
19
+ categoria: { type: 'string', enum: ['bug', 'feature', 'duplicado', 'ruido'] },
20
+ yaTrackeado: { type: 'boolean' },
21
+ riesgo: { type: 'string', enum: ['bajo', 'alto'] },
22
+ resumen: { type: 'string' },
23
+ },
24
+ required: ['categoria', 'yaTrackeado', 'riesgo', 'resumen'],
25
+ }
26
+
27
+ const ACCION = {
28
+ type: 'object', additionalProperties: false,
29
+ properties: {
30
+ accion: { type: 'string', enum: ['fix-aplicado', 'escalado-humano', 'descartado'] },
31
+ detalle: { type: 'string' },
32
+ },
33
+ required: ['accion', 'detalle'],
34
+ }
35
+
36
+ // Stage 1 (quarantine): clasificador LEE el ítem (posible contenido no confiable) pero NO
37
+ // tiene permiso de actuar — solo emite estructura. Stage 2 actúa sobre data ya saneada.
38
+ const triaged = await pipeline(
39
+ items,
40
+ (item) =>
41
+ agent(
42
+ `Clasifica este ítem del backlog. NO ejecutes ninguna acción: solo describe. ` +
43
+ `Marca yaTrackeado=true si ya existe ticket. Ítem: ${JSON.stringify(item)}`,
44
+ { label: 'clasificar', phase: 'Clasificar', schema: CLASIFICACION }
45
+ ),
46
+ (clf, item) => {
47
+ if (!clf || clf.yaTrackeado || clf.categoria === 'ruido' || clf.categoria === 'duplicado') {
48
+ return { accion: 'descartado', detalle: clf?.resumen || 'sin señal' }
49
+ }
50
+ if (clf.riesgo === 'alto') {
51
+ // Alto riesgo: escalar a humano, no auto-actuar.
52
+ return agent(
53
+ `Redacta un escalamiento conciso para humano sobre: ${clf.resumen}`,
54
+ { label: 'escalar', phase: 'Actuar', schema: ACCION }
55
+ )
56
+ }
57
+ // Bajo riesgo: el agente que ACTÚA es distinto del que leyó contenido no confiable.
58
+ return agent(
59
+ `Aplica el fix de bajo riesgo para: ${clf.resumen}. Devuelve qué hiciste.`,
60
+ { label: 'fix', phase: 'Actuar', schema: ACCION }
61
+ )
62
+ }
63
+ )
64
+
65
+ return triaged.filter(Boolean)
@@ -1,147 +1,147 @@
1
- ---
2
- name: proceso-ingenieria-requerimientos
3
- description: >
4
- Checklist de calidad de requerimientos basado en ingeniería de
5
- requerimientos clásica (investigación académica del autor, 2003; refs
6
- ZAVE94 y RE'01): las 8 características del buen requerimiento (correcto,
7
- necesario, conciso, libre de implementación, factible, priorizable, no
8
- ambiguo, verificable), la heurística "una verificación = un requerimiento",
9
- la metadata de soporte por REQ (IDUR, padre, fuente, razón, riesgo, estado)
10
- y la jerarquía de verificación (inspección < demostración < prueba).
11
- Cargar al congelar REQs en /swl:discutir-fase (Bloque 5), al redactar
12
- criterios de aceptación en un PRD (producto-prd-swl), o al auditar la
13
- calidad de un CONTEXTO.md/REQUISITOS.md existente.
14
- version: "1.0.0"
15
- herramientasPermitidas: [Read]
16
- evolvable: true
17
- exclusiones:
18
- - "No cargar para descomponer REQs en tareas — eso es planificador-swl con el REQ ya congelado."
19
- - "No cargar para verificar la CADENA REQ→tarea→commit→test — eso es el gate G4 de /swl:verificar; este skill mejora la calidad del REQ ANTES de que exista la cadena."
20
- - "No cargar para decisiones de arquitectura — un ADR documenta el CÓMO se decide; este skill vigila que el REQ diga el QUÉ sin contaminarse de cómo."
21
- ---
22
- # Ingeniería de requerimientos — checklist de calidad por REQ
23
-
24
- Un requerimiento mal escrito se propaga: el plan lo descompone mal, el test
25
- lo verifica mal y el gate G4 valida una cadena correcta sobre un contenido
26
- incorrecto. Este skill se aplica a **cada REQ individual antes de congelarlo**
27
- (cierre de `discutir-fase`, redacción de PRD), no a la cadena posterior.
28
-
29
- > La IR "funciona como el puente entre la necesidad que tienen los usuarios
30
- > del mundo real [...] y las capacidades y oportunidades que brinda la
31
- > tecnología" (RE'01). El REQ es ese puente: si el puente está torcido, todo
32
- > lo que cruza llega torcido.
33
-
34
- ## Cuándo cargar
35
-
36
- - Al cerrar el **Bloque 5** de `discutir-fase` (criterios de aceptación),
37
- antes de escribir los `REQ-<fase>-NN` al CONTEXTO.md.
38
- - Al redactar criterios de aceptación e historias en un PRD.
39
- - Al auditar un CONTEXTO.md o REQUISITOS.md existente (¿por qué esta fase
40
- divergió? — a menudo el REQ era ambiguo desde el origen).
41
-
42
- ## Las 8 características — checklist con prueba operativa
43
-
44
- Aplicar a CADA requerimiento. Un REQ que falla una característica se
45
- reescribe antes de congelar, no después de implementar.
46
-
47
- | # | Característica | Prueba operativa |
48
- |---|---|---|
49
- | 1 | **Correcto** | Solo el usuario (o su sustituto cercano) determina si es correcto — validarlo con él en la entrevista. "Probablemente es lo que querían" = adivinar, no elicitar. |
50
- | 2 | **Necesario** | Rastrear a una fuente con autoridad (petición del usuario, REQ padre, estándar, regulación). Prueba: *¿si lo elimino, qué necesidad queda sin resolver?* Sin respuesta = *gold plating* — fuera. |
51
- | 3 | **Conciso** | Dice QUÉ debe hacerse y solo eso. Explicaciones, racional y análisis van en la metadata `Razón`, no en el enunciado. |
52
- | 4 | **Libre de implementación** | Dice qué, no cómo. Regla de cascada: *"el diseño de un nivel es el requerimiento del nivel inferior"* — la solución elegida (ADR) genera los REQs del siguiente nivel, sin fijar el diseño de ese nivel. Excepción legítima: requerimientos de interface. |
53
- | 5 | **Factible** | Chequeo de realidad técnica y de costo contra el sistema y su ambiente conocidos. Valores numéricos sospechosos se retan con física/límites del stack (el radar no ve más allá del horizonte). `/swl:predecir --abogado-diablo` es el retador formal. |
54
- | 6 | **Priorizable** | Prioridad asignada = f(valor al cliente, costo relativo, riesgo técnico). Si todo es igual de importante, no se puede reaccionar a recortes ni imprevistos. |
55
- | 7 | **No ambiguo** | Todos los lectores llegan a UNA interpretación. Palabras prohibidas en el enunciado: *fácil, simple, rápido, eficiente, varios, mejorado, robusto, flexible, amigable, maximizar, minimizar, soportar*. Cada una se reemplaza por un valor medible o se elimina. |
56
- | 8 | **Verificable** | Enunciado en términos mensurables con tolerancias ("105 ± 0.5", "p95 < N ms", "0 hallazgos CRÍTICOS"). Un REQ no verificable convierte la aceptación en cuestión de opinión. No consistente/no factible/ambiguo ⇒ no verificable. |
57
-
58
- ## Heurística de concisión: una verificación = un requerimiento
59
-
60
- ¿La alarma visual y la audible son uno o dos REQs? **Se decide por cómo se
61
- verificará**: si una sola prueba/demostración las verifica juntas, son UN
62
- requerimiento; si exigen verificaciones separadas, son DOS. Ni párrafos con
63
- múltiples REQs escondidos, ni multiplicar REQs sin razón — cada REQ se
64
- administra y verifica, y eso cuesta.
65
-
66
- ## Tipos técnicos (y su relación de verificación)
67
-
68
- - **Funcional** — cualitativo: qué hace ("detectar blancos"). Se verifica por
69
- la SUMA de sus requerimientos de desempeño asociados.
70
- - **Desempeño** — cuantitativo y comprobable individualmente ("detectar 0.1 m²
71
- a >20 km con Pd ≥ 0.9"). Usualmente varios por cada funcional.
72
- - **Restricción de diseño** — límites bajo los que debe existir (peso, tamaño,
73
- ambiente, stack impuesto).
74
- - **Interface** — cómo interactúa con sistemas externos o entre subsistemas;
75
- la excepción documentada a "libre de implementación".
76
-
77
- ## Metadata de soporte por REQ
78
-
79
- El REQ es un objeto de primera clase con metadata, no una línea suelta:
80
-
81
- | Atributo | En swl-ses | Regla |
82
- |---|---|---|
83
- | **IDUR** | `REQ-<fase>-NN` (namespaceado) | Único, jamás reutilizado |
84
- | **Padre** | `padre: REQ-<fase>-MM` (opcional) | Para REQs derivados de uno de nivel superior — da trazabilidad vertical |
85
- | **Fuente** | quién/qué lo pidió (usuario en entrevista, PRD §, estándar, regla) | Sin fuente identificable → aplica prueba de "necesario" |
86
- | **Razón** | 1 línea de racional o puntero (análisis, ADR, supuesto del Bloque 4) | Aquí vive lo que "conciso" echó del enunciado |
87
- | **Riesgo** | alto/medio/bajo + por qué | Alimenta la priorización del plan |
88
- | **Estado** | `PENDIENTE → definido → aprobado (gate G1) → verificado (gate G4) → borrado` | Mapa del ciclo PSD/PSR/Definido/Aprobado/Verificado/Borrado clásico; REQs `PENDIENTE` bloquean el cierre de la discusión |
89
-
90
- ## Jerarquía de verificación (al declarar CÓMO se verificará cada REQ)
91
-
92
- **Inspección** (mirar/medir el artefacto) < **demostración** (observar la
93
- operación con instrumentación mínima — p. ej. medir MTTR reparando fallas
94
- inducidas) < **prueba** (instrumentada por completo — la más confiable y la
95
- más cara) — con **análisis** como soporte barato (modelos validados contra
96
- pruebas previas). Elegir el método MÁS BARATO que realmente verifique el
97
- REQ; declarar el método junto al criterio de aceptación.
98
-
99
- ## Dos escalas de priorización (usar una, explícita)
100
-
101
- - **Alto / Medio / Bajo** — crítico de misión para la próxima liberación /
102
- necesario eventualmente / mejora si los recursos lo permiten.
103
- - **Esencial / Condicional / Opcional** — el producto no es aceptable sin él /
104
- mejora pero el producto es aceptable sin ella / puede o no valer la pena.
105
- - MoSCoW (del PRD) mapea: Must≈Esencial, Should/Could≈Condicional,
106
- Won't≈fuera. Declarar QUÉ escala se usa; nunca mezclar dos en el mismo doc.
107
-
108
- ## Por qué la elicitación falla (y qué hace el cuestionario al respecto)
109
-
110
- Restricciones clásicas que el entrevistador debe asumir como default:
111
- **conocimiento tácito** (la gente no sabe describir lo que hace — pedir
112
- ejemplos concretos, no definiciones), **distribución del conocimiento**
113
- (fuentes múltiples en conflicto — los conflictos se registran como decisiones
114
- del Bloque 4, no se resuelven en silencio), **observación limitada** y
115
- **parcialidad** (el resultado afecta al informante). Es la razón por la que
116
- `discutir-fase` pregunta supuestos explícitos y registra decisiones con
117
- estado en vez de asumir consenso.
118
-
119
- ## Cuándo NO cargar
120
-
121
- - REQs ya congelados con plan aprobado (gate G1) — re-litigar el REQ ahí es
122
- cambio de scope: pasa por re-planificación, no por este checklist.
123
- - Tareas técnicas triviales sin REQs formales (fix puntual, typo).
124
- - Verificación post-implementación — eso es `/swl:verificar` (G4).
125
-
126
- ## Gotchas / Errores comunes no obvios
127
-
128
- - **Checklist aplicado al documento y no al requerimiento**: las 8
129
- características se evalúan POR REQ individual; un CONTEXTO.md "en general
130
- claro" puede contener 2 REQs ambiguos que revientan la fase.
131
- - **"Verificable" confundido con "tiene test"**: verificable es una propiedad
132
- del ENUNCIADO (términos mensurables), previa al test. G4 valida que el test
133
- exista; este skill valida que el enunciado sea testeable.
134
- - **Racional dentro del enunciado**: si el REQ explica por qué, mezcla dos
135
- atributos — mover el porqué a `Razón` y dejar el enunciado conciso.
136
- - **Funcional "verificado" directamente**: un funcional sin desempeños
137
- asociados se "verifica" con opinión. Todo funcional no trivial necesita al
138
- menos un desempeño cuantitativo asociado.
139
-
140
- ---
141
-
142
- **Origen**: investigación académica de Saúl Wade, *"Ingeniería de
143
- requerimientos"* (Wade Inc., ~2003; referencias [ZAVE94] y [RE'01 CfP]),
144
- absorbida al sistema el 2026-07-08 (v2.5.1). El documento fuente vive en
145
- `temp/` del repo madre (material de referencia, no distribuido); este skill
146
- es su destilado operativo con el mapeo a los mecanismos SWL (gates G1/G4,
147
- cuestionario de discutir-fase, MoSCoW del PRD).
1
+ ---
2
+ name: proceso-ingenieria-requerimientos
3
+ description: >
4
+ Checklist de calidad de requerimientos basado en ingeniería de
5
+ requerimientos clásica (investigación académica del autor, 2003; refs
6
+ ZAVE94 y RE'01): las 8 características del buen requerimiento (correcto,
7
+ necesario, conciso, libre de implementación, factible, priorizable, no
8
+ ambiguo, verificable), la heurística "una verificación = un requerimiento",
9
+ la metadata de soporte por REQ (IDUR, padre, fuente, razón, riesgo, estado)
10
+ y la jerarquía de verificación (inspección < demostración < prueba).
11
+ Cargar al congelar REQs en /swl:discutir-fase (Bloque 5), al redactar
12
+ criterios de aceptación en un PRD (producto-prd-swl), o al auditar la
13
+ calidad de un CONTEXTO.md/REQUISITOS.md existente.
14
+ version: "1.0.0"
15
+ herramientasPermitidas: [Read]
16
+ evolvable: true
17
+ exclusiones:
18
+ - "No cargar para descomponer REQs en tareas — eso es planificador-swl con el REQ ya congelado."
19
+ - "No cargar para verificar la CADENA REQ→tarea→commit→test — eso es el gate G4 de /swl:verificar; este skill mejora la calidad del REQ ANTES de que exista la cadena."
20
+ - "No cargar para decisiones de arquitectura — un ADR documenta el CÓMO se decide; este skill vigila que el REQ diga el QUÉ sin contaminarse de cómo."
21
+ ---
22
+ # Ingeniería de requerimientos — checklist de calidad por REQ
23
+
24
+ Un requerimiento mal escrito se propaga: el plan lo descompone mal, el test
25
+ lo verifica mal y el gate G4 valida una cadena correcta sobre un contenido
26
+ incorrecto. Este skill se aplica a **cada REQ individual antes de congelarlo**
27
+ (cierre de `discutir-fase`, redacción de PRD), no a la cadena posterior.
28
+
29
+ > La IR "funciona como el puente entre la necesidad que tienen los usuarios
30
+ > del mundo real [...] y las capacidades y oportunidades que brinda la
31
+ > tecnología" (RE'01). El REQ es ese puente: si el puente está torcido, todo
32
+ > lo que cruza llega torcido.
33
+
34
+ ## Cuándo cargar
35
+
36
+ - Al cerrar el **Bloque 5** de `discutir-fase` (criterios de aceptación),
37
+ antes de escribir los `REQ-<fase>-NN` al CONTEXTO.md.
38
+ - Al redactar criterios de aceptación e historias en un PRD.
39
+ - Al auditar un CONTEXTO.md o REQUISITOS.md existente (¿por qué esta fase
40
+ divergió? — a menudo el REQ era ambiguo desde el origen).
41
+
42
+ ## Las 8 características — checklist con prueba operativa
43
+
44
+ Aplicar a CADA requerimiento. Un REQ que falla una característica se
45
+ reescribe antes de congelar, no después de implementar.
46
+
47
+ | # | Característica | Prueba operativa |
48
+ |---|---|---|
49
+ | 1 | **Correcto** | Solo el usuario (o su sustituto cercano) determina si es correcto — validarlo con él en la entrevista. "Probablemente es lo que querían" = adivinar, no elicitar. |
50
+ | 2 | **Necesario** | Rastrear a una fuente con autoridad (petición del usuario, REQ padre, estándar, regulación). Prueba: *¿si lo elimino, qué necesidad queda sin resolver?* Sin respuesta = *gold plating* — fuera. |
51
+ | 3 | **Conciso** | Dice QUÉ debe hacerse y solo eso. Explicaciones, racional y análisis van en la metadata `Razón`, no en el enunciado. |
52
+ | 4 | **Libre de implementación** | Dice qué, no cómo. Regla de cascada: *"el diseño de un nivel es el requerimiento del nivel inferior"* — la solución elegida (ADR) genera los REQs del siguiente nivel, sin fijar el diseño de ese nivel. Excepción legítima: requerimientos de interface. |
53
+ | 5 | **Factible** | Chequeo de realidad técnica y de costo contra el sistema y su ambiente conocidos. Valores numéricos sospechosos se retan con física/límites del stack (el radar no ve más allá del horizonte). `/swl:predecir --abogado-diablo` es el retador formal. |
54
+ | 6 | **Priorizable** | Prioridad asignada = f(valor al cliente, costo relativo, riesgo técnico). Si todo es igual de importante, no se puede reaccionar a recortes ni imprevistos. |
55
+ | 7 | **No ambiguo** | Todos los lectores llegan a UNA interpretación. Palabras prohibidas en el enunciado: *fácil, simple, rápido, eficiente, varios, mejorado, robusto, flexible, amigable, maximizar, minimizar, soportar*. Cada una se reemplaza por un valor medible o se elimina. |
56
+ | 8 | **Verificable** | Enunciado en términos mensurables con tolerancias ("105 ± 0.5", "p95 < N ms", "0 hallazgos CRÍTICOS"). Un REQ no verificable convierte la aceptación en cuestión de opinión. No consistente/no factible/ambiguo ⇒ no verificable. |
57
+
58
+ ## Heurística de concisión: una verificación = un requerimiento
59
+
60
+ ¿La alarma visual y la audible son uno o dos REQs? **Se decide por cómo se
61
+ verificará**: si una sola prueba/demostración las verifica juntas, son UN
62
+ requerimiento; si exigen verificaciones separadas, son DOS. Ni párrafos con
63
+ múltiples REQs escondidos, ni multiplicar REQs sin razón — cada REQ se
64
+ administra y verifica, y eso cuesta.
65
+
66
+ ## Tipos técnicos (y su relación de verificación)
67
+
68
+ - **Funcional** — cualitativo: qué hace ("detectar blancos"). Se verifica por
69
+ la SUMA de sus requerimientos de desempeño asociados.
70
+ - **Desempeño** — cuantitativo y comprobable individualmente ("detectar 0.1 m²
71
+ a >20 km con Pd ≥ 0.9"). Usualmente varios por cada funcional.
72
+ - **Restricción de diseño** — límites bajo los que debe existir (peso, tamaño,
73
+ ambiente, stack impuesto).
74
+ - **Interface** — cómo interactúa con sistemas externos o entre subsistemas;
75
+ la excepción documentada a "libre de implementación".
76
+
77
+ ## Metadata de soporte por REQ
78
+
79
+ El REQ es un objeto de primera clase con metadata, no una línea suelta:
80
+
81
+ | Atributo | En swl-ses | Regla |
82
+ |---|---|---|
83
+ | **IDUR** | `REQ-<fase>-NN` (namespaceado) | Único, jamás reutilizado |
84
+ | **Padre** | `padre: REQ-<fase>-MM` (opcional) | Para REQs derivados de uno de nivel superior — da trazabilidad vertical |
85
+ | **Fuente** | quién/qué lo pidió (usuario en entrevista, PRD §, estándar, regla) | Sin fuente identificable → aplica prueba de "necesario" |
86
+ | **Razón** | 1 línea de racional o puntero (análisis, ADR, supuesto del Bloque 4) | Aquí vive lo que "conciso" echó del enunciado |
87
+ | **Riesgo** | alto/medio/bajo + por qué | Alimenta la priorización del plan |
88
+ | **Estado** | `PENDIENTE → definido → aprobado (gate G1) → verificado (gate G4) → borrado` | Mapa del ciclo PSD/PSR/Definido/Aprobado/Verificado/Borrado clásico; REQs `PENDIENTE` bloquean el cierre de la discusión |
89
+
90
+ ## Jerarquía de verificación (al declarar CÓMO se verificará cada REQ)
91
+
92
+ **Inspección** (mirar/medir el artefacto) < **demostración** (observar la
93
+ operación con instrumentación mínima — p. ej. medir MTTR reparando fallas
94
+ inducidas) < **prueba** (instrumentada por completo — la más confiable y la
95
+ más cara) — con **análisis** como soporte barato (modelos validados contra
96
+ pruebas previas). Elegir el método MÁS BARATO que realmente verifique el
97
+ REQ; declarar el método junto al criterio de aceptación.
98
+
99
+ ## Dos escalas de priorización (usar una, explícita)
100
+
101
+ - **Alto / Medio / Bajo** — crítico de misión para la próxima liberación /
102
+ necesario eventualmente / mejora si los recursos lo permiten.
103
+ - **Esencial / Condicional / Opcional** — el producto no es aceptable sin él /
104
+ mejora pero el producto es aceptable sin ella / puede o no valer la pena.
105
+ - MoSCoW (del PRD) mapea: Must≈Esencial, Should/Could≈Condicional,
106
+ Won't≈fuera. Declarar QUÉ escala se usa; nunca mezclar dos en el mismo doc.
107
+
108
+ ## Por qué la elicitación falla (y qué hace el cuestionario al respecto)
109
+
110
+ Restricciones clásicas que el entrevistador debe asumir como default:
111
+ **conocimiento tácito** (la gente no sabe describir lo que hace — pedir
112
+ ejemplos concretos, no definiciones), **distribución del conocimiento**
113
+ (fuentes múltiples en conflicto — los conflictos se registran como decisiones
114
+ del Bloque 4, no se resuelven en silencio), **observación limitada** y
115
+ **parcialidad** (el resultado afecta al informante). Es la razón por la que
116
+ `discutir-fase` pregunta supuestos explícitos y registra decisiones con
117
+ estado en vez de asumir consenso.
118
+
119
+ ## Cuándo NO cargar
120
+
121
+ - REQs ya congelados con plan aprobado (gate G1) — re-litigar el REQ ahí es
122
+ cambio de scope: pasa por re-planificación, no por este checklist.
123
+ - Tareas técnicas triviales sin REQs formales (fix puntual, typo).
124
+ - Verificación post-implementación — eso es `/swl:verificar` (G4).
125
+
126
+ ## Gotchas / Errores comunes no obvios
127
+
128
+ - **Checklist aplicado al documento y no al requerimiento**: las 8
129
+ características se evalúan POR REQ individual; un CONTEXTO.md "en general
130
+ claro" puede contener 2 REQs ambiguos que revientan la fase.
131
+ - **"Verificable" confundido con "tiene test"**: verificable es una propiedad
132
+ del ENUNCIADO (términos mensurables), previa al test. G4 valida que el test
133
+ exista; este skill valida que el enunciado sea testeable.
134
+ - **Racional dentro del enunciado**: si el REQ explica por qué, mezcla dos
135
+ atributos — mover el porqué a `Razón` y dejar el enunciado conciso.
136
+ - **Funcional "verificado" directamente**: un funcional sin desempeños
137
+ asociados se "verifica" con opinión. Todo funcional no trivial necesita al
138
+ menos un desempeño cuantitativo asociado.
139
+
140
+ ---
141
+
142
+ **Origen**: investigación académica de Saúl Wade, *"Ingeniería de
143
+ requerimientos"* (Wade Inc., ~2003; referencias [ZAVE94] y [RE'01 CfP]),
144
+ absorbida al sistema el 2026-07-08 (v2.5.1). El documento fuente vive en
145
+ `temp/` del repo madre (material de referencia, no distribuido); este skill
146
+ es su destilado operativo con el mapeo a los mecanismos SWL (gates G1/G4,
147
+ cuestionario de discutir-fase, MoSCoW del PRD).