@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
package/CLAUDE.md CHANGED
@@ -1,197 +1,209 @@
1
- # CLAUDE.md — @saulwade/swl-ses v2.6.0
2
-
3
- ## Reglas de máxima prioridad (aplican SIEMPRE, sin excepción)
4
-
5
- ### Idioma y estilo de output
6
- Aplican las reglas globales `@~/.claude/rules/brevedad-output.md` (español de México, brevedad, sin AI-isms) y `@~/.claude/rules/git-coauthor.md` (sin co-autores en commits) — cargadas automáticamente en cada sesión. NO duplicar su contenido inline en este archivo (regla `@reglas/sin-duplicacion-reglas-globales.md`).
7
-
8
- ### Uso obligatorio del sistema SWL
9
- Aplica la regla global `@~/.claude/rules/usar-sistema-swl.md` — matriz operacional completa (qué agente/skill/comando usar por tipo de tarea, excepciones legítimas, anti-patrones). Cargar skills con `Skill("nombre")` antes de implementar.
10
-
11
- ### Cuatro principios de implementación (Karpathy)
12
- Antes de implementar, refactorizar o corregir bugs: (1) **pensar antes de codificar** (no asumir en silencio), (2) **simplicidad primero** (sin abstracciones especulativas), (3) **cambios quirúrgicos** (leer archivo completo antes de editar, no refactor de oportunidad), (4) **ejecución orientada a metas** (criterios verificables, test que reproduce bugs antes del fix). Tabla operativa + mapeo a agentes SWL en `@docs/karpathy-principios.md`. Detalle + 9 ejemplos MAL→BIEN: `Skill("prevencion-sobreingenieria")` + `recursos/EXAMPLES.md`.
13
-
14
- ### Lectura de documentos Office
15
- Cuando necesites leer el **contenido** de un archivo `.docx`, `.xlsx`, `.xls` o `.pptx`, NUNCA uses el Read tool directamente (no soporta esos formatos). Usa:
16
- ```bash
17
- python scripts/vendor/markitdown/cli.py <ruta-al-archivo>
18
- ```
19
- El Read tool sigue siendo correcto para `.pdf` (≤20 páginas), `.ipynb` (Claude Code actual lee notebooks nativamente: celdas + outputs), `.md`, `.txt` y código fuente. Para más opciones y casos de uso consultar `Skill("swl-markitdown")`.
20
-
21
- ### Versión SemVer del próximo release: decisión exclusiva del usuario
22
- NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHANGELOG el número del próximo release sin autorización explícita del usuario en la conversación actual. El agente puede **recomendar** el bump apropiado según SemVer estricto, pero la **decisión final del número es del usuario**. Detalle y origen del aprendizaje en `.planning/APRENDIZAJES.md` sesión 2026-05-16 (ADR-0021).
23
-
24
- ---
25
-
26
- ## Stack del proyecto
27
-
28
- - **Runtime**: Node.js >=22.0.0 (ESM + CommonJS)
29
- - **Tipo**: Sistema de scripts CLI + plugin para Claude Code (multi-runtime: Claude / Copilot / OpenCode / Codex / Gemini)
30
- - **Formato fuente**: Markdown (agentes, skills, comandos, reglas) + JSON Schema (validación) + YAML (instintos)
31
- - **Distribución**: npm package (`@saulwade/swl-ses`) + plugin Claude Code (`plugin.json`)
32
- - **Dependencias runtime**: 1 directa (`docx ^9.6.1`; `pako` y `readable-stream` son transitivas de docx/jszip, no directas). Hooks y scripts/lib son zero-deps
33
- - **Idioma de salida**: 100% español (México) para componentes SWL; skills oficiales de Anthropic en inglés
34
- - **MCP del proyecto**: `code-review-graph` disponible vía `.mcp.json` (requiere `uvx`). Comportamiento: `@~/.claude/rules/usar-code-review-graph.md`
35
-
36
- ## Comandos del proyecto
37
-
38
- | Comando | Propósito |
39
- |---|---|
40
- | `npm test` | Tests unitarios (lib/, scripts/, hooks/) |
41
- | `npm run test:all` | test + validar.js + validar-manifest.js |
42
- | `npm run test:release` | test:all + test:userland + smoke (gate pre-publish) |
43
- | `npm run test:validate` | `node scripts/validar.js` — validación estructural completa |
44
- | `npm run test:manifest` | `node scripts/validar-manifest.js` — coherencia modulos/hooks |
45
- | `npm run test:smoke` | Smoke test del instalador |
46
- | `npm run gen-checklists` | Regenera `docs/checklists-consolidados/` desde reglas |
47
- | `npm run gen-checklists:check` | Falla si hay drift (uso CI) |
48
- | `npm run generate:docs` | Regenera `INVENTARIO.md` desde directorios |
49
- | `npm run doctor` | Diagnóstico del sistema (`scripts/doctor.js`) |
50
- | `npm run publish:dry` | Dry-run de publicación a npm + GitHub |
51
- | `node scripts/verificar-release.js` | Gate pre-release: 15+ ubicaciones de versión, sincronización, AI-isms (si `SWL_AIISMS_GATE=1`) |
52
- | `node scripts/generar-inventario.js` | Regenera contadores oficiales + catálogos de INVENTARIO/SALUD/llms.txt (NUNCA contar a mano) |
53
- | `npm run gen-comandos` | Regenera los bloques `CATALOGO-COMANDOS` de COMANDOS.md y AGENTS.md desde frontmatter; `--check` (en test:all) detecta drift |
54
- | `node scripts/auditar-clases-conocidas.js` | Gate anti-reincidencia de clases de bug documentadas (C1 fecha UTC, C2 comparación sin normalizar EOL, C3 bloqueo ciego en hooks). En test:all |
55
- | `node scripts/canario-hooks.js [--smoke]` | Canario de hooks: grafo de requires distribuido en modulos.json (clase check-update); --smoke ejecuta los 49 en sandbox (en test:release) |
56
- | `node scripts/derivar-feature-list.js` | Genera `.planning/feature-list.json` (derivado de `HOJA-RUTA.md`, gitignored, regenerable). Modo `--check` exit 2 si drift detectado. Consumido por `/swl:status metricas fases`. |
57
-
58
- ## Code style
59
-
60
- - **Nombres**: kebab-case para archivos; agentes SWL y vocabulario GSD (comandos `*-fase`, dir `.planning/fases/`) en español; paths runtime/técnicos de `.planning/` en inglés (`evolution/`, `auto-evolution/`, `user-profile/`, `archive/`, `traces/`, `sessions/`, `audit/`). Ver `@~/.claude/rules/analizar-directorios-antes-de-escribir.md § Eje técnico-runtime`
61
- - **Zero-dependencies en `hooks/lib/`**: sin dependencias npm externas
62
- - **Escrituras atómicas obligatorias**: usar `atomicWriteSync()` / `atomicWriteJSON()` de `hooks/lib/atomic-write.js`. NUNCA `fs.writeFileSync` directo en archivos del sistema
63
- - **JSONL para alta frecuencia**: usar `fs.appendFileSync(ruta, JSON.stringify(evento) + '\n')` en hooks de telemetría/auditoría no `atomicWriteJSON` que reescribe todo
64
- - **Fechas de artefactos generados SIEMPRE locales**: `toLocaleDateString('sv')`, NUNCA `toISOString().slice(0,10)` desde México la tarde ya es "mañana" en UTC (x7 sitios corregidos 2026-07-08)
65
- - **Reemplazos con backticks/regex vía `node -e` en bash mangean escapes en silencio** ("aplica" sin aplicar): usar heredoc `node <<'EOF'` + `String.raw` (x3 incidentes 2026-07-08)
66
- - **`plugin.json#agents`/`#skills` son alfabéticos**: insertar en posición ningún gate valida el orden
67
- - **Todo gate de escaneo nuevo lleva test anti-regresión viva** ("el repo real pasa con exit 0") en `npm test`: pre-commit el gate no se escanea a sí mismo (`git ls-files` ignora untracked) y su doc NO escribe el patrón prohibido literal (se auto-detectó y tumbó el publish v2.5.1)
68
- - **Contrato del CLI (`bin/swl-ses.js`)**: todo subcomando exporta UNA función(opciones) sin efectos al require test viviente `bin-contrato-comandos.test.js` (3 violaciones cazadas, una en campo)
69
- - **YAML inline en frontmatter**: `tools: [Read, Write]`, `skillsInvocables: [skill-a]`. NUNCA CSV string ni mezcla con lista multilínea
70
- - **Mensajes de commit**: imperativo en español, formato `<tipo>(<scope>): <descripción>`
71
- - **Sin `console.log` en producción** — excepto en `scripts/`, `bin/`, `hooks/`, `gateway/` (CLIs y daemons)
72
- - **Nombre completo del paquete en npx**: todo mensaje del installer/docs usa `npx -y @saulwade/swl-ses@latest <comando>`. **NUNCA** `npx swl-ses@latest <comando>` sin el scope `@saulwade/` — eso resuelve al paquete legacy DEPRECATED (v5.13.1) que aún existe en npm tras el rebrand de 2026-04-30. El `@latest` es indispensable: sin él npx reutiliza la primera versión cacheada y el usuario corre código viejo sin saberlo. El `-y` evita la prompt de confirmación en CI/scripts
73
- - **Fixtures `secret`/`token` en tests deben ser en español** (`secreto`, `tokenBearer`, `clave-test`). El hook `calidad-pre-commit.js` matchea `\bsecret\s*[=:]\s*["'][^"'\s]{4,}["']` y `\btoken\s*[=:]\s*["'][^"'\s]{8,}["']``const secret = "valor"` se bloquea como credencial hardcodeada aunque sea fixture legítimo. Renombrar a español elude el regex sin bypass (alternativas reconocidas por el hook: `placeholder`, `example`, `fake_`, `dummy_`, `os.environ`/`process.env`). Coherente con regla global de idioma. Origen: PR #11 sesión 2026-05-13
74
- - **Scopes de runtime SIEMPRE vía `scopesReales()` de `scripts/lib/detectar-runtime.js`** NUNCA el patrón manual `[runtime.global, path.resolve(runtime.local)]`: desde el HOME el local relativo resuelve al global propio (duplicados) o al de OTRO runtime (scope "proyecto" fantasma el local de OpenClaude es el global de Claude Code; un uninstall de ese fantasma borraría el global). 8 sitios corregidos el 2026-07-03 (doctor ×5, actualizar ×2, TUI ×4)
75
- - **`git add archivo && git commit -m "..."` en un solo comando bash NO actualiza el index antes del PreToolUse hook**: el hook `calidad-pre-commit.js` evalúa el contenido staged previo al `&&`, no el actualizado en la misma línea. Síntoma: commit bloqueado por contenido que ya corregiste vía Write/Edit pero seguía staged en versión antigua. Fix: separar en dos calls Bash (`git add archivo` ver resultado `git commit -m "..."`). NUNCA usar `--no-verify` para bypassear. Origen: PR #11 sesión 2026-05-13
76
- - **Secretos compartidos entre clientes MCP viven como variables de entorno persistentes del SO, NO en archivos JSON** [v2 — 2026-05-18]: un MCP usado desde Cursor + Claude Code + VS Code tiene un config JSON POR cliente; duplicar `OBSIDIAN_API_KEY` en N archivos genera drift al regenerar la apiKey. Patrón: `setx OBSIDIAN_API_KEY <key>` (o `[Environment]::SetEnvironmentVariable(..., "User")` en PS7) escribe a `HKCU\Environment` todos los clientes la heredan al spawnear el binario. Los JSON OMITEN la clave `env` por completo (NO `env: {}` vacío pasa literal a `child_process.spawn` y REEMPLAZA el env del padre, rompiendo la herencia). Regenerar apiKey = un `setx` + reiniciar clientes, sin tocar JSONs. Origen: 2026-05-18, 6h de errores 40101 por 3 configs descoordinados.
77
-
78
- ## Convenciones de arquitectura
79
-
80
- - **Precedencia de capas**: Reglas base (`reglas/`) → Reglas por lenguaje (`reglas/{lang}/`) → Skills (`habilidades/`) → Instintos (`instintos/`). Cada capa puede especializar pero NUNCA contradecir las superiores
81
- - **`reglas/` es la FUENTE; `~/.claude/rules/` son copias INSTALADAS** por el instalador: todo cambio a reglas base va en la fuente y se sincroniza — editar solo las copias es deuda volátil (el install las sobreescribe). Incluye las reglas globales personales del usuario (decisión 2026-06-12, commit `2f6b8de` — las 37 base viajan en `reglas-core`). Origen: Fase 09 (APRENDIZAJES 2026-06-11)
82
- - **Privilegio mínimo de agentes**: un agente delegado NUNCA excede los permisos declarados en su propio frontmatter. La cadena de delegación no escala privilegios. Ver `@reglas/seguridad-agentes.md`
83
- - **Preservación de datos en actualización**: `.planning/sessions/`, `.planning/comms/`, `_userland/`, `instintos/proyecto.yaml`, `APRENDIZAJES.md` NUNCA se sobreescriben
84
- - **Documentación obligatoria**: toda funcionalidad nueva DEBE documentarse en `MANUAL_USO.md`, `COMANDOS.md`, `CLAUDE.md` y `README.md` ANTES del commit
85
- - **Criterio dominio para incorporar skills externos**: solo si dominio = ingeniería de software general. Pregunta de filtro: *¿le sirve esto a un ingeniero de software en cualquier proyecto de software?* (ML Ops, Data Science, finanzas, etc. → descartar)
86
- - **Filtro primario al analizar `temp/`**: antes de evaluar arquitectura, verificar **compatibilidad de dominio**. Si es incompatible, veredicto NINGUNA aplicabilidad sin análisis adicional
87
- - **Variables de entorno opt-in enterprise**: ver `@docs/variables-entorno.md` (catálogo completo). Patrón obligatorio: `if (!process.env.VAR) return` zero-config por defecto
88
- - **Hooks SWL que invocan auditores Node deben cargar el auditor como módulo (`require()`), no como subproceso**: ~10× más rápido, errores estructurados (no parsing de stdout), tests directos del módulo. Excepción legítima: cuando el auditor es Python o Bash (`spawnSync`). Ejemplo aplicado en `hooks/claudemd-bloat-detector.js` que usa `require('./scripts/auditar-claudemd.js')` directamente. Antipatrón evitado: `spawnSync('node', [auditorPath, ...])` agrega ~50ms por invocación y obliga a parsear JSON de stdout
89
- - **npm v10+ NO escribe debug logs cuando falla un script invocado** (`prepublishOnly`, `prepack`, etc.) solo cuando falla npm-mismo (network, registry, auth). El default `loglevel=notice` mantiene `_logs/` vacío para errores de scripts. Para diagnóstico de `npm run publish:all` que falla en script propio, capturar stdout+stderr con redirección: PowerShell `npm run publish:all *>&1 | Tee-Object .planning/logs/publish-$(Get-Date -Format yyyyMMdd-HHmmss).log` o Bash `2>&1 | tee`. Alternativa permanente: `npm config set loglevel verbose`
90
- - **`package.json#files` debe incluir TODOS los directorios referenciados por `bin/`, `hooks/`, `scripts/` o `comandos/`**: si un binario hace `require('./gateway/foo')` pero `gateway/` no está listado en `files`, **el módulo se omite del tarball npm y el binario falla con MODULE_NOT_FOUND tras instalación pública** aunque la suite local pase. Bug latente histórico: `/swl:cron`, `/swl:gateway` e `/swl:inbox` instruyen `require('./gateway/...')` y rompían en npm porque `gateway/` no estaba en `files` desde versiones previas. Revelado al agregar `bin/swl-webhook-server` (v1.4.0). Verificar antes de cada release: `npm pack --dry-run | grep -E "^npm notice [0-9].*[Bb] (bin|gateway|hooks|scripts|comandos)/"` debe listar todos los directorios reales referenciados. Gate automatizable en `scripts/verificar-release.js`. Origen: PR #15 sesión 2026-05-13
91
- - **Comandos `/swl:*` invocan vía CLI cross-scope, NUNCA rutas relativas al proyecto**: dentro de fenced code blocks de `comandos/swl/*.md` usar `swl-ses <sub>` (resolución: repo madre bin en PATH `npx -y @saulwade/swl-ses@latest <sub>`), no `node scripts/...` ni `require('./hooks/...')` esas rutas rompen en instalación global/downstream (gates SDD G0/G1, telemetría, CI). Gate bloqueante en `scripts/validar.js §7b` (`auditar-invocaciones-comandos.js`); excluye SELF_DEV `{release, contribuir, evaluar-skill, reflect-skills}`. Wrappers en `scripts/cli/` se distribuyen SOLO vía npm (`package.json#files`), NO se cuentan en INVENTARIO ni en `modulos.json`; registro único en `bin/swl-ses.js`. Detalle: `@docs/invocacion-cli-cross-scope.md`. Origen: v2.2.0
92
- - **Componentes evolucionados: merge, no overwrite (invariante)**: el instalador NUNCA sobrescribe un componente con evolución del usuario (global o proyecto) usa merge (preserve + `.evolved-diff.txt`). Distingue evolución de usuario (A) de shipped-evolved de fábrica (B) por hash del cuerpo canónico (`manifiestos/canonical-hashes.json`); el fuente NO porta marcadores `evolved` (gate inverso en `validar.js`). Detalle: ADR-0040. Origen: Fase 16
93
-
94
- ## Referencias a docs clave (cargar bajo demanda con `@`)
95
-
96
- - `@README.md` — overview público y quickstart
97
- - `@MANUAL_USO.md` — manual operacional completo
98
- - `@INSTALACION.md` — instalación, perfiles, configuración
99
- - `@COMANDOS.md` — referencia detallada de cada `/swl:*`
100
- - `@AGENTS.md` — catálogo de agentes con capacidades
101
- - `@INVENTARIO.md` — conteos oficiales (regenerado por script)
102
- - `@docs/variables-entorno.md` — variables opt-in completas
103
- - `@docs/CI-CD-SETUP.md` — setup de pipelines
104
- - `@docs/evidencia-valor.md` — medición de valor en campo (`swl-ses valor`), frontera de datos downstream↔repo madre
105
- - `@.planning/adrs/README.md` — índice de decisiones arquitecturales
106
-
107
- ---
108
-
109
- ## Qué es este repositorio
110
-
111
- Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo).
112
- 11 lenguajes, 7 runtimes (Claude, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot), 61 agentes, 181 skills, 48 comandos, 77 reglas, 49 hooks.
113
-
114
- ## Estructura del repositorio
115
-
116
- ```
117
- agentes/ habilidades/ comandos/swl/ contextos/ instintos/
118
- reglas/ hooks/ schemas/ manifiestos/ plantillas/
119
- scripts/ bin/ _userland/ .claude/ .planning/
120
- ```
121
-
122
- ## Flujos de trabajo
123
-
124
- **Feature completa**: orquestador discovery PRD → arquitectura → plan → implementación (paralelo) → calidad (paralelo) → cierre
125
- **Fases GSD**: discutir → planear → ejecutar → verificar
126
- **Frontend**: investigador-ux disenador-ui → accesibilidad → frontend-* → rendimiento
127
- **Backend**: backend-api → backend-python/node → backend-workers → datos
128
- **Mobile**: producto-prd → mobile-cross (decisión) → mobile-android/ios → tdd-qa
129
-
130
- ## Comandos del sistema (/swl:*)
131
-
132
- Catálogo completo de 48 comandos `/swl:*` en `@COMANDOS.md`. Atajos mentales por categoría:
133
-
134
- - **Ciclo GSD por fase**: `discutir-fase` → `planear-fase` → `ejecutar-fase` → `verificar` (con discovery routing, modo iterativo `--iterative` y `--until-converge`).
135
- - **Anti-context-rot**: `checkpoint`, `compactar`.
136
- - **Aprendizaje**: `aprender`, `evolucionar`, `evolucion-continua` (motor determinista on|off|status, ADR-0041), `autoresearch`, `reflect-skills`.
137
- - **Calidad**: `revisar`, `verificar`, `nemesis` (auditoría Feynman + State, opcional `--remediar`), `deuda-codigo` (cosecha de marcadores `simplificado:`), `seguridad` (postura del proyecto completo), `fix` (triage y despacho de reparaciones), `predecir` (panel pre-implementación; `--abogado-diablo` critica la decisión).
138
- - **Diagnóstico**: `salud`, `metricas`, `dashboard`, `evolucion-estado`.
139
- - **Release**: `release`, `configurar-ci`.
140
- - **Conocimiento**: `wiki`, `mapear-codebase`, `skill-search`, `ayuda`.
141
-
142
- Para flags exactos y semántica de cada comando ver `@COMANDOS.md` y `@MANUAL_USO.md`.
143
-
144
- ## Reglas obligatorias (37 base + 40 por lenguaje)
145
-
146
- Las reglas globales del usuario en `~/.claude/rules/` se cargan automáticamente
147
- y aplican a todos los proyectos. Las reglas del sistema en `reglas/` se cargan
148
- por matcher de archivos o vía `@reglas/<nombre>.md` desde el CLAUDE.md del
149
- proyecto. Reglas de mayor uso:
150
-
151
- | Regla | Carga cuando |
152
- |-------|-------------|
153
- | `brevedad-output.md` | Siempre — idioma español, eficiencia de tokens |
154
- | `seguridad.md` / `seguridad-agentes.md` | `*.py`, `*.ts`, `auth/`, agentes autónomos |
155
- | `arreglar-al-detectar.md` | Siempre — detectar → informar → arreglar en mismo turno |
156
- | `analisis-previo-tareas-grandes.md` | Solicitudes >10 archivos / >500 LOC / cross-módulo |
157
- | `usar-context7.md` | Al generar código que importe librerías externas |
158
- | `git-workflow.md` | Siempre |
159
- | `skills-estandar.md` / `fragmentos-compartidos.md` | Crear/auditar skills o fragmentos |
160
- | `registro-componentes-nuevos.md` | Crear cualquier componente nuevo (agente/skill/comando/hook/regla) registro obligatorio en manifiestos + plugin.json + INVENTARIO en mismo commit |
161
- | `auditorias-documentales-estructurales.md` | Ejecutar verificadores docs/release/manifest — gates de profundidad y cobertura completa (no muestra). Aplica reglas anti-cosméticas a auditorías |
162
-
163
- Catálogo completo y matchers en `@INVENTARIO.md` sección Reglas.
164
-
165
- <!-- La regla de la sección "Uso obligatorio del sistema SWL" NO se importa con @: la copia global ya carga sola; el @import duplicaba ~250 líneas/sesión. Depurado Fase 09 (commit 7273c9e). -->
166
-
167
- ## Estrategia de modelos (Model-Tier)
168
-
169
- Tiers por alias (se actualizan solos, NUNCA ID pineado en frontmatter): `fable` solo orquestador (coordinación central); `opus` decisiones irreversibles (arquitecto, revisor-seguridad, producto-prd, abogado-diablo); `sonnet` implementación y revisión; `haiku` operaciones deterministas; `inherit` sub-agentes del orquestador. NUNCA un tier superior para lo que el inferior resuelve igual. Detalle (alias vs API cruda, workflow de delegación, effort levels): `@docs/model-tier.md`.
170
-
171
- ---
172
-
173
- ## Convenciones operacionales
174
-
175
- Detalle completo en `@docs/convenciones-operacionales.md`. Resumen mínimo:
176
-
177
- - **Score mínimo de calidad**: **9.0/10** para aprobar trabajo.
178
- - **Modos de desarrollo**: `dev`, `review`, `research` (vía `/swl:contexto`).
179
- - **`respositorios-git/` y `temp/` son material de referencia** — no modificar ni commitear.
180
- - **Dependencias externas educativas son opt-in NO-dependencia** — el sistema funciona sin ellas.
181
- - **Patrón "validar antes de invocar"** para herramientas externas opt-in (markitdown, MinerU, gh).
182
- - **`skillsInvocables` requiere `Skill` en `tools:`** del agente.
183
-
184
- ## Mapa de propagación de cambios
185
-
186
- Al modificar o agregar cualquier componente del sistema, **invocar
187
- `Skill("doc-sync")` antes del commit final** para cargar el protocolo
188
- proactivo completo. La tabla y checklist completos viven en
189
- `@docs/mapa-propagacion.md` para mantener este archivo bajo el umbral
190
- de 200 líneas (regla `auditar-claudemd.js`).
191
-
192
- Resumen mínimo para uso inmediato:
193
-
194
- - Cualquier componente nuevo o modificado (agente / skill / comando / hook / regla / schema / variable `SWL_*` / ADR / dependencia opt-in): consultar tabla completa en `@docs/mapa-propagacion.md` para saber qué archivos tocar.
195
- - **Skill responsable**: `Skill("doc-sync") § Protocolo proactivo` (sub-secciones Tipo 1 a Tipo 8) tiene el detalle prescriptivo.
196
- - **Antes de commit estructural**: regenerar inventario, validar manifiestos, verificar evolución (si tocó skill/agente), correr verificador docs-vs-código, suite completa, gate de release. Checklist exacto en `@docs/mapa-propagacion.md § Checklist único`.
197
- - Si cualquier gate falla, **NO commitear** hasta corregir. Regla `arreglar-al-detectar.md` exige resolver en mismo turno.
1
+ # CLAUDE.md — @saulwade/swl-ses v2.8.0
2
+
3
+ ## Reglas de máxima prioridad (aplican SIEMPRE, sin excepción)
4
+
5
+ ### Idioma y estilo de output
6
+ Aplican las reglas globales `@~/.claude/rules/brevedad-output.md` (español de México, brevedad, sin AI-isms) y `@~/.claude/rules/git-coauthor.md` (sin co-autores en commits) — cargadas automáticamente en cada sesión. NO duplicar su contenido inline en este archivo (regla `@reglas/sin-duplicacion-reglas-globales.md`).
7
+
8
+ ### Uso obligatorio del sistema SWL
9
+ Aplica la regla global `@~/.claude/rules/usar-sistema-swl.md` — matriz operacional completa (qué agente/skill/comando usar por tipo de tarea, excepciones legítimas, anti-patrones). Cargar skills con `Skill("nombre")` antes de implementar.
10
+
11
+ ### Cuatro principios de implementación (Karpathy)
12
+ Antes de implementar, refactorizar o corregir bugs: (1) **pensar antes de codificar** (no asumir en silencio), (2) **simplicidad primero** (sin abstracciones especulativas), (3) **cambios quirúrgicos** (leer archivo completo antes de editar, no refactor de oportunidad), (4) **ejecución orientada a metas** (criterios verificables, test que reproduce bugs antes del fix). Tabla operativa + mapeo a agentes SWL en `@docs/karpathy-principios.md`. Detalle + 9 ejemplos MAL→BIEN: `Skill("prevencion-sobreingenieria")` + `recursos/EXAMPLES.md`.
13
+
14
+ ### Lectura de documentos Office
15
+ Cuando necesites leer el **contenido** de un archivo `.docx`, `.xlsx`, `.xls` o `.pptx`, NUNCA uses el Read tool directamente (no soporta esos formatos). Usa:
16
+ ```bash
17
+ python scripts/vendor/markitdown/cli.py <ruta-al-archivo>
18
+ ```
19
+ El Read tool sigue siendo correcto para `.pdf` (≤20 páginas), `.ipynb` (Claude Code actual lee notebooks nativamente: celdas + outputs), `.md`, `.txt` y código fuente. Para más opciones y casos de uso consultar `Skill("swl-markitdown")`.
20
+
21
+ ### Versión SemVer del próximo release: decisión exclusiva del usuario
22
+ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHANGELOG el número del próximo release sin autorización explícita del usuario en la conversación actual. El agente puede **recomendar** el bump apropiado según SemVer estricto, pero la **decisión final del número es del usuario**. Detalle y origen del aprendizaje en `.planning/APRENDIZAJES.md` sesión 2026-05-16 (ADR-0021).
23
+
24
+ ---
25
+
26
+ ## Stack del proyecto
27
+
28
+ - **Runtime**: Node.js >=22.0.0 (ESM + CommonJS)
29
+ - **Tipo**: Sistema de scripts CLI + plugin para Claude Code (multi-runtime: Claude / Copilot / OpenCode / Codex / Gemini)
30
+ - **Formato fuente**: Markdown (agentes, skills, comandos, reglas) + JSON Schema (validación) + YAML (instintos)
31
+ - **Distribución**: npm package (`@saulwade/swl-ses`) + plugin Claude Code (`plugin.json`)
32
+ - **Dependencias runtime**: 1 directa (`docx ^9.6.1`; `pako` y `readable-stream` son transitivas de docx/jszip, no directas). Hooks y scripts/lib son zero-deps
33
+ - **Idioma de salida**: 100% español (México) para componentes SWL; skills oficiales de Anthropic en inglés
34
+ - **MCP del proyecto**: `code-review-graph` disponible vía `.mcp.json` (requiere `uvx`). Comportamiento: `@~/.claude/rules/usar-code-review-graph.md`
35
+
36
+ ## Comandos del proyecto
37
+
38
+ | Comando | Propósito |
39
+ |---|---|
40
+ | `npm test` | Tests unitarios (lib/, scripts/, hooks/) |
41
+ | `npm run test:all` | test + validar.js + validar-manifest.js |
42
+ | `npm run test:release` | test:all + test:userland + smoke (gate pre-publish) |
43
+ | `npm run test:validate` | `node scripts/validar.js` — validación estructural completa |
44
+ | `npm run test:manifest` | `node scripts/validar-manifest.js` — coherencia modulos/hooks |
45
+ | `npm run test:smoke` | Smoke test del instalador (install → doctor → uninstall, desde el árbol fuente) |
46
+ | `node scripts/verificar-empaquetado-downstream.js` | Ciclo `pack → install → doctor → update → uninstall` sobre el tarball REAL de `npm pack` (no el árbol fuente); verifica contenido del tarball (requeridos/prohibidos) e invariantes de claims/versión. Invocación directa — NO en `package.json#scripts` (esa superficie está congelada por `tests/scripts/generar-harness-ir.test.js` desde `aa9b08a`/F29; ver F31-T09) |
47
+ | `npm run gen-checklists` | Regenera `docs/checklists-consolidados/` desde reglas |
48
+ | `npm run gen-checklists:check` | Falla si hay drift (uso CI) |
49
+ | `npm run generate:docs` | Regenera `INVENTARIO.md` desde directorios |
50
+ | `npm run doctor` | Diagnóstico del sistema (`scripts/doctor.js`) |
51
+ | `npm run publish:dry` | Dry-run de publicación a npm + GitHub |
52
+ | `node scripts/verificar-release.js` | Gate pre-release: 15+ ubicaciones de versión, sincronización, AI-isms (si `SWL_AIISMS_GATE=1`) |
53
+ | `node scripts/generar-inventario.js` | Regenera contadores oficiales + catálogos de INVENTARIO/SALUD/llms.txt (NUNCA contar a mano) |
54
+ | `npm run gen-comandos` | Regenera los bloques `CATALOGO-COMANDOS` de COMANDOS.md y AGENTS.md desde frontmatter; `--check` (en test:all) detecta drift |
55
+ | `node scripts/auditar-clases-conocidas.js` | Gate anti-reincidencia de clases de bug documentadas (C1 fecha UTC, C2 comparación sin normalizar EOL, C3 bloqueo ciego en hooks). En test:all |
56
+ | `node scripts/canario-hooks.js [--smoke]` | Canario de hooks: grafo de requires distribuido en modulos.json (clase check-update); --smoke ejecuta los 49 en sandbox (en test:release) |
57
+ | `node scripts/derivar-feature-list.js` | Genera `.planning/feature-list.json` (derivado de `HOJA-RUTA.md`, gitignored, regenerable). Modo `--check` exit 2 si drift detectado. Consumido por `/swl:status metricas fases`. |
58
+
59
+ ## Code style
60
+
61
+ - **Nombres**: kebab-case para archivos; agentes SWL y vocabulario GSD (comandos `*-fase`, dir `.planning/fases/`) en español; paths runtime/técnicos de `.planning/` en inglés (`evolution/`, `auto-evolution/`, `user-profile/`, `archive/`, `traces/`, `sessions/`, `audit/`). Ver `@~/.claude/rules/analizar-directorios-antes-de-escribir.md § Eje técnico-runtime`
62
+ - **Zero-dependencies en `hooks/lib/`**: sin dependencias npm externas
63
+ - **Escrituras atómicas obligatorias**: usar `atomicWriteSync()` / `atomicWriteJSON()` de `hooks/lib/atomic-write.js`. NUNCA `fs.writeFileSync` directo en archivos del sistema
64
+ - **JSONL para alta frecuencia**: usar `fs.appendFileSync(ruta, JSON.stringify(evento) + '\n')` en hooks de telemetría/auditoría no `atomicWriteJSON` que reescribe todo
65
+ - **Fechas de artefactos generados SIEMPRE locales**: `toLocaleDateString('sv')`, NUNCA `toISOString().slice(0,10)` desde México la tarde ya es "mañana" en UTC (x7 sitios corregidos 2026-07-08)
66
+ - **Reemplazos con backticks/regex vía `node -e` en bash mangean escapes en silencio** ("aplica" sin aplicar): usar heredoc `node <<'EOF'` + `String.raw` (x3 incidentes 2026-07-08)
67
+ - **`plugin.json#agents`/`#skills` son alfabéticos**: insertar en posición ningún gate valida el orden
68
+ - **Todo gate de escaneo nuevo lleva test anti-regresión viva** ("el repo real pasa con exit 0") en `npm test`: pre-commit el gate no se escanea a sí mismo (`git ls-files` ignora untracked) y su doc NO escribe el patrón prohibido literal (se auto-detectó y tumbó el publish v2.5.1)
69
+ - **Contrato del CLI (`bin/swl-ses.js`)**: todo subcomando exporta UNA función(opciones) sin efectos al require test viviente `bin-contrato-comandos.test.js` (3 violaciones cazadas, una en campo)
70
+ - **YAML inline en frontmatter**: `tools: [Read, Write]`, `skillsInvocables: [skill-a]`. NUNCA CSV string ni mezcla con lista multilínea
71
+ - **Mensajes de commit**: imperativo en español, formato `<tipo>(<scope>): <descripción>`
72
+ - **Sin `console.log` en producción** excepto en `scripts/`, `bin/`, `hooks/`, `gateway/` (CLIs y daemons)
73
+ - **Nombre completo del paquete en npx**: todo mensaje del installer/docs usa `npx -y @saulwade/swl-ses@latest <comando>`. **NUNCA** `npx swl-ses@latest <comando>` sin el scope `@saulwade/` eso resuelve al paquete legacy DEPRECATED (v5.13.1) que aún existe en npm tras el rebrand de 2026-04-30. El `@latest` es indispensable: sin él npx reutiliza la primera versión cacheada y el usuario corre código viejo sin saberlo. El `-y` evita la prompt de confirmación en CI/scripts
74
+ - **Fixtures `secret`/`token` en tests deben ser en español** (`secreto`, `tokenBearer`, `clave-test`). El hook `calidad-pre-commit.js` matchea `\bsecret\s*[=:]\s*["'][^"'\s]{4,}["']` y `\btoken\s*[=:]\s*["'][^"'\s]{8,}["']` `const secret = "valor"` se bloquea como credencial hardcodeada aunque sea fixture legítimo. Renombrar a español elude el regex sin bypass (alternativas reconocidas por el hook: `placeholder`, `example`, `fake_`, `dummy_`, `os.environ`/`process.env`). Coherente con regla global de idioma. Origen: PR #11 sesión 2026-05-13
75
+ - **Scopes de runtime SIEMPRE vía `scopesReales()` de `scripts/lib/detectar-runtime.js`** NUNCA el patrón manual `[runtime.global, path.resolve(runtime.local)]`: desde el HOME el local relativo resuelve al global propio (duplicados) o al de OTRO runtime (scope "proyecto" fantasma el local de OpenClaude es el global de Claude Code; un uninstall de ese fantasma borraría el global). 8 sitios corregidos el 2026-07-03 (doctor ×5, actualizar ×2, TUI ×4)
76
+ - **`git add archivo && git commit -m "..."` en un solo comando bash NO actualiza el index antes del PreToolUse hook**: el hook `calidad-pre-commit.js` evalúa el contenido staged previo al `&&`, no el actualizado en la misma línea. Síntoma: commit bloqueado por contenido que ya corregiste vía Write/Edit pero seguía staged en versión antigua. Fix: separar en dos calls Bash (`git add archivo` ver resultado `git commit -m "..."`). NUNCA usar `--no-verify` para bypassear. Origen: PR #11 sesión 2026-05-13
77
+ - **Secretos compartidos entre clientes MCP viven como variables de entorno persistentes del SO, NO en archivos JSON** [v2 — 2026-05-18]: un MCP usado desde Cursor + Claude Code + VS Code tiene un config JSON POR cliente; duplicar `OBSIDIAN_API_KEY` en N archivos genera drift al regenerar la apiKey. Patrón: `setx OBSIDIAN_API_KEY <key>` (o `[Environment]::SetEnvironmentVariable(..., "User")` en PS7) → escribe a `HKCU\Environment` → todos los clientes la heredan al spawnear el binario. Los JSON OMITEN la clave `env` por completo (NO `env: {}` vacío — pasa literal a `child_process.spawn` y REEMPLAZA el env del padre, rompiendo la herencia). Regenerar apiKey = un `setx` + reiniciar clientes, sin tocar JSONs. Origen: 2026-05-18, 6h de errores 40101 por 3 configs descoordinados.
78
+
79
+ ## Convenciones de arquitectura
80
+
81
+ - **Precedencia de capas**: Reglas base (`reglas/`) Reglas por lenguaje (`reglas/{lang}/`) Skills (`habilidades/`) Instintos (`instintos/`). Cada capa puede especializar pero NUNCA contradecir las superiores
82
+ - **`reglas/` es la FUENTE; `~/.claude/rules/` son copias INSTALADAS** por el instalador: todo cambio a reglas base va en la fuente y se sincroniza editar solo las copias es deuda volátil (el install las sobreescribe). Incluye las reglas globales personales del usuario (decisión 2026-06-12, commit `2f6b8de` — las 37 base viajan en `reglas-core`). Origen: Fase 09 (APRENDIZAJES 2026-06-11)
83
+ - **Privilegio mínimo de agentes**: un agente delegado NUNCA excede los permisos declarados en su propio frontmatter. La cadena de delegación no escala privilegios. Ver `@reglas/seguridad-agentes.md`
84
+ - **Preservación de datos en actualización**: `.planning/sessions/`, `.planning/comms/`, `_userland/`, `instintos/proyecto.yaml`, `APRENDIZAJES.md` NUNCA se sobreescriben
85
+ - **Documentación obligatoria**: toda funcionalidad nueva DEBE documentarse en `MANUAL_USO.md`, `COMANDOS.md`, `CLAUDE.md` y `README.md` ANTES del commit
86
+ - **Criterio dominio para incorporar skills externos**: solo si dominio = ingeniería de software general. Pregunta de filtro: *¿le sirve esto a un ingeniero de software en cualquier proyecto de software?* (ML Ops, Data Science, finanzas, etc. descartar)
87
+ - **Filtro primario al analizar `temp/`**: antes de evaluar arquitectura, verificar **compatibilidad de dominio**. Si es incompatible, veredicto NINGUNA aplicabilidad sin análisis adicional
88
+ - **Variables de entorno opt-in enterprise**: ver `@docs/variables-entorno.md` (catálogo completo). Patrón obligatorio: `if (!process.env.VAR) return` zero-config por defecto
89
+ - **Hooks SWL que invocan auditores Node deben cargar el auditor como módulo (`require()`), no como subproceso**: ~10× más rápido, errores estructurados (no parsing de stdout), tests directos del módulo. Excepción legítima: cuando el auditor es Python o Bash (`spawnSync`). Ejemplo aplicado en `hooks/claudemd-bloat-detector.js` que usa `require('./scripts/auditar-claudemd.js')` directamente. Antipatrón evitado: `spawnSync('node', [auditorPath, ...])` agrega ~50ms por invocación y obliga a parsear JSON de stdout
90
+ - **npm v10+ NO escribe debug logs cuando falla un script invocado** (`prepublishOnly`, `prepack`, etc.) solo cuando falla npm-mismo (network, registry, auth). El default `loglevel=notice` mantiene `_logs/` vacío para errores de scripts. Para diagnóstico de `npm run publish:all` que falla en script propio, capturar stdout+stderr con redirección: PowerShell `npm run publish:all *>&1 | Tee-Object .planning/logs/publish-$(Get-Date -Format yyyyMMdd-HHmmss).log` o Bash `2>&1 | tee`. Alternativa permanente: `npm config set loglevel verbose`
91
+ - **`package.json#files` debe incluir TODOS los directorios referenciados por `bin/`, `hooks/`, `scripts/` o `comandos/`**: si un binario hace `require('./gateway/foo')` pero `gateway/` no está listado en `files`, **el módulo se omite del tarball npm y el binario falla con MODULE_NOT_FOUND tras instalación pública** — aunque la suite local pase. Bug latente histórico: `/swl:cron`, `/swl:gateway` e `/swl:inbox` instruyen `require('./gateway/...')` y rompían en npm porque `gateway/` no estaba en `files` desde versiones previas. Revelado al agregar `bin/swl-webhook-server` (v1.4.0). Verificar antes de cada release: `npm pack --dry-run | grep -E "^npm notice [0-9].*[Bb] (bin|gateway|hooks|scripts|comandos)/"` debe listar todos los directorios reales referenciados. Gate automatizable en `scripts/verificar-release.js`. Origen: PR #15 sesión 2026-05-13
92
+ - **Comandos `/swl:*` invocan vía CLI cross-scope, NUNCA rutas relativas al proyecto**: dentro de fenced code blocks de `comandos/swl/*.md` usar `swl-ses <sub>` (resolución: repo madre bin en PATH `npx -y @saulwade/swl-ses@latest <sub>`), no `node scripts/...` ni `require('./hooks/...')` esas rutas rompen en instalación global/downstream (gates SDD G0/G1, telemetría, CI). Gate bloqueante en `scripts/validar.js §7b` (`auditar-invocaciones-comandos.js`); excluye SELF_DEV `{release, contribuir, evaluar-skill, reflect-skills}`. Wrappers en `scripts/cli/` se distribuyen SOLO vía npm (`package.json#files`), NO se cuentan en INVENTARIO ni en `modulos.json`; registro único en `bin/swl-ses.js`. Detalle: `@docs/invocacion-cli-cross-scope.md`. Origen: v2.2.0
93
+ - **Componentes evolucionados: merge, no overwrite (invariante)**: el instalador NUNCA sobrescribe un componente con evolución del usuario (global o proyecto) — usa merge (preserve + `.evolved-diff.txt`). Distingue evolución de usuario (A) de shipped-evolved de fábrica (B) por hash del cuerpo canónico (`manifiestos/canonical-hashes.json`); el fuente NO porta marcadores `evolved` (gate inverso en `validar.js`). Detalle: ADR-0040. Origen: Fase 16
94
+
95
+ ## Referencias a docs clave (cargar bajo demanda con `@`)
96
+
97
+ - `@README.md` — overview público y quickstart
98
+ - `@MANUAL_USO.md` — manual operacional completo
99
+ - `@INSTALACION.md` — instalación, perfiles, configuración
100
+ - `@COMANDOS.md` — referencia detallada de cada `/swl:*`
101
+ - `@AGENTS.md` — catálogo de agentes con capacidades
102
+ - `@INVENTARIO.md` — conteos oficiales (regenerado por script)
103
+ - `@docs/variables-entorno.md` — variables opt-in completas
104
+ - `@docs/CI-CD-SETUP.md` — setup de pipelines
105
+ - `@docs/evidencia-valor.md` — medición de valor en campo (`swl-ses valor`), frontera de datos downstream↔repo madre
106
+ - `@.planning/adrs/README.md` — índice de decisiones arquitecturales
107
+
108
+ ---
109
+
110
+ ## Qué es este repositorio
111
+
112
+ Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo).
113
+ 11 lenguajes, 7 runtimes (Claude, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot), 61 agentes, 181 skills, 48 comandos, 77 reglas, 49 hooks.
114
+
115
+ ### Kernel de políticas W2
116
+
117
+ El tarball 2.8.0 incluye 13 módulos zero-deps de autorización local, cuatro schemas,
118
+ el `PolicyBundle` y un corpus público de 500 vectores. Esta superficie sirve a los
119
+ proyectos downstream desde `scripts/lib/`; nunca se agrega a módulos de instalación
120
+ ni se proyecta como hook.
121
+
122
+ W2 termina en decisión, grant y evidencia durable. W3 debe integrar las operaciones
123
+ nativas de cada CLI y W6 debe contener el efecto real; mientras eso no ocurra, ningún
124
+ target puede reclamar certificación de obediencia al harness.
125
+
126
+ ## Estructura del repositorio
127
+
128
+ ```
129
+ agentes/ habilidades/ comandos/swl/ contextos/ instintos/
130
+ reglas/ hooks/ schemas/ manifiestos/ plantillas/
131
+ scripts/ bin/ _userland/ .claude/ .planning/
132
+ ```
133
+
134
+ ## Flujos de trabajo
135
+
136
+ **Feature completa**: orquestador discovery → PRD → arquitectura → plan → implementación (paralelo) calidad (paralelo) cierre
137
+ **Fases GSD**: discutir planear ejecutar verificar
138
+ **Frontend**: investigador-ux disenador-ui → accesibilidad → frontend-* → rendimiento
139
+ **Backend**: backend-api → backend-python/node → backend-workers → datos
140
+ **Mobile**: producto-prd → mobile-cross (decisión) → mobile-android/ios → tdd-qa
141
+
142
+ ## Comandos del sistema (/swl:*)
143
+
144
+ Catálogo completo de 48 comandos `/swl:*` en `@COMANDOS.md`. Atajos mentales por categoría:
145
+
146
+ - **Ciclo GSD por fase**: `discutir-fase` `planear-fase` `ejecutar-fase` → `verificar` (con discovery routing, modo iterativo `--iterative` y `--until-converge`).
147
+ - **Anti-context-rot**: `checkpoint`, `compactar`.
148
+ - **Aprendizaje**: `aprender`, `evolucionar`, `evolucion-continua` (motor determinista on|off|status, ADR-0041), `autoresearch`, `reflect-skills`.
149
+ - **Calidad**: `revisar`, `verificar`, `nemesis` (auditoría Feynman + State, opcional `--remediar`), `deuda-codigo` (cosecha de marcadores `simplificado:`), `seguridad` (postura del proyecto completo), `fix` (triage y despacho de reparaciones), `predecir` (panel pre-implementación; `--abogado-diablo` critica la decisión).
150
+ - **Diagnóstico**: `salud`, `metricas`, `dashboard`, `evolucion-estado`.
151
+ - **Release**: `release`, `configurar-ci`.
152
+ - **Conocimiento**: `wiki`, `mapear-codebase`, `skill-search`, `ayuda`.
153
+
154
+ Para flags exactos y semántica de cada comando ver `@COMANDOS.md` y `@MANUAL_USO.md`.
155
+
156
+ ## Reglas obligatorias (37 base + 40 por lenguaje)
157
+
158
+ Las reglas globales del usuario en `~/.claude/rules/` se cargan automáticamente
159
+ y aplican a todos los proyectos. Las reglas del sistema en `reglas/` se cargan
160
+ por matcher de archivos o vía `@reglas/<nombre>.md` desde el CLAUDE.md del
161
+ proyecto. Reglas de mayor uso:
162
+
163
+ | Regla | Carga cuando |
164
+ |-------|-------------|
165
+ | `brevedad-output.md` | Siempre idioma español, eficiencia de tokens |
166
+ | `seguridad.md` / `seguridad-agentes.md` | `*.py`, `*.ts`, `auth/`, agentes autónomos |
167
+ | `arreglar-al-detectar.md` | Siempre — detectar → informar → arreglar en mismo turno |
168
+ | `analisis-previo-tareas-grandes.md` | Solicitudes >10 archivos / >500 LOC / cross-módulo |
169
+ | `usar-context7.md` | Al generar código que importe librerías externas |
170
+ | `git-workflow.md` | Siempre |
171
+ | `skills-estandar.md` / `fragmentos-compartidos.md` | Crear/auditar skills o fragmentos |
172
+ | `registro-componentes-nuevos.md` | Crear cualquier componente nuevo (agente/skill/comando/hook/regla) — registro obligatorio en manifiestos + plugin.json + INVENTARIO en mismo commit |
173
+ | `auditorias-documentales-estructurales.md` | Ejecutar verificadores docs/release/manifest — gates de profundidad y cobertura completa (no muestra). Aplica reglas anti-cosméticas a auditorías |
174
+
175
+ Catálogo completo y matchers en `@INVENTARIO.md` sección Reglas.
176
+
177
+ <!-- La regla de la sección "Uso obligatorio del sistema SWL" NO se importa con @: la copia global ya carga sola; el @import duplicaba ~250 líneas/sesión. Depurado Fase 09 (commit 7273c9e). -->
178
+
179
+ ## Estrategia de modelos (Model-Tier)
180
+
181
+ Tiers por alias (se actualizan solos, NUNCA ID pineado en frontmatter): `fable` solo orquestador (coordinación central); `opus` decisiones irreversibles (arquitecto, revisor-seguridad, producto-prd, abogado-diablo); `sonnet` implementación y revisión; `haiku` operaciones deterministas; `inherit` sub-agentes del orquestador. NUNCA un tier superior para lo que el inferior resuelve igual. Detalle (alias vs API cruda, workflow de delegación, effort levels): `@docs/model-tier.md`.
182
+
183
+ ---
184
+
185
+ ## Convenciones operacionales
186
+
187
+ Detalle completo en `@docs/convenciones-operacionales.md`. Resumen mínimo:
188
+
189
+ - **Score mínimo de calidad**: **9.0/10** para aprobar trabajo.
190
+ - **Modos de desarrollo**: `dev`, `review`, `research` (vía `/swl:contexto`).
191
+ - **`respositorios-git/` y `temp/` son material de referencia** — no modificar ni commitear.
192
+ - **Dependencias externas educativas son opt-in NO-dependencia** — el sistema funciona sin ellas.
193
+ - **Patrón "validar antes de invocar"** para herramientas externas opt-in (markitdown, MinerU, gh).
194
+ - **`skillsInvocables` requiere `Skill` en `tools:`** del agente.
195
+
196
+ ## Mapa de propagación de cambios
197
+
198
+ Al modificar o agregar cualquier componente del sistema, **invocar
199
+ `Skill("doc-sync")` antes del commit final** para cargar el protocolo
200
+ proactivo completo. La tabla y checklist completos viven en
201
+ `@docs/mapa-propagacion.md` para mantener este archivo bajo el umbral
202
+ de 200 líneas (regla `auditar-claudemd.js`).
203
+
204
+ Resumen mínimo para uso inmediato:
205
+
206
+ - Cualquier componente nuevo o modificado (agente / skill / comando / hook / regla / schema / variable `SWL_*` / ADR / dependencia opt-in): consultar tabla completa en `@docs/mapa-propagacion.md` para saber qué archivos tocar.
207
+ - **Skill responsable**: `Skill("doc-sync") § Protocolo proactivo` (sub-secciones Tipo 1 a Tipo 8) tiene el detalle prescriptivo.
208
+ - **Antes de commit estructural**: regenerar inventario, validar manifiestos, verificar evolución (si tocó skill/agente), correr verificador docs-vs-código, suite completa, gate de release. Checklist exacto en `@docs/mapa-propagacion.md § Checklist único`.
209
+ - Si cualquier gate falla, **NO commitear** hasta corregir. Regla `arreglar-al-detectar.md` exige resolver en mismo turno.