@saulwade/swl-ses 2.2.4 → 2.3.1

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 (325) hide show
  1. package/CLAUDE.md +48 -7
  2. package/README.md +3 -3
  3. package/agentes/accesibilidad-wcag-swl.md +690 -690
  4. package/agentes/arquitecto-swl.md +267 -267
  5. package/agentes/auto-evolucion-swl.md +908 -908
  6. package/agentes/backend-api-swl.md +472 -472
  7. package/agentes/backend-csharp-swl.md +420 -420
  8. package/agentes/backend-go-swl.md +390 -390
  9. package/agentes/backend-java-swl.md +281 -281
  10. package/agentes/backend-node-swl.md +479 -479
  11. package/agentes/backend-python-swl.md +605 -605
  12. package/agentes/backend-rust-swl.md +364 -364
  13. package/agentes/backend-workers-swl.md +482 -482
  14. package/agentes/cloud-infra-swl.md +509 -509
  15. package/agentes/consolidador-swl.md +541 -541
  16. package/agentes/datos-swl.md +605 -605
  17. package/agentes/depurador-swl.md +352 -352
  18. package/agentes/devops-ci-swl.md +400 -400
  19. package/agentes/disenador-ui-swl.md +569 -569
  20. package/agentes/documentador-swl.md +345 -345
  21. package/agentes/frontend-angular-swl.md +621 -621
  22. package/agentes/frontend-css-swl.md +716 -716
  23. package/agentes/frontend-react-swl.md +692 -692
  24. package/agentes/frontend-swl.md +496 -496
  25. package/agentes/frontend-tailwind-swl.md +826 -826
  26. package/agentes/gh-fix-ci-swl.md +2 -2
  27. package/agentes/implementador-swl.md +328 -328
  28. package/agentes/investigador-swl.md +432 -432
  29. package/agentes/investigador-ux-swl.md +505 -505
  30. package/agentes/llm-apps-swl.md +278 -278
  31. package/agentes/migrador-swl.md +442 -442
  32. package/agentes/mobile-android-swl.md +511 -511
  33. package/agentes/mobile-cross-swl.md +541 -541
  34. package/agentes/mobile-ios-swl.md +502 -502
  35. package/agentes/mobile-testing-swl.md +302 -302
  36. package/agentes/nemesis-auditor-swl.md +285 -285
  37. package/agentes/notificador-swl.md +918 -918
  38. package/agentes/observabilidad-swl.md +438 -438
  39. package/agentes/orquestador-swl.md +1026 -1026
  40. package/agentes/pagos-swl.md +310 -310
  41. package/agentes/perfilador-usuario-swl.md +321 -321
  42. package/agentes/planificador-swl.md +399 -399
  43. package/agentes/producto-prd-swl.md +589 -589
  44. package/agentes/red-team-swl.md +1 -1
  45. package/agentes/release-manager-swl.md +590 -590
  46. package/agentes/rendimiento-swl.md +713 -713
  47. package/agentes/resolutor-build-swl.md +245 -245
  48. package/agentes/revisor-angular-swl.md +278 -278
  49. package/agentes/revisor-codigo-swl.md +505 -505
  50. package/agentes/revisor-csharp-swl.md +264 -264
  51. package/agentes/revisor-go-swl.md +259 -259
  52. package/agentes/revisor-java-swl.md +257 -257
  53. package/agentes/revisor-kotlin-swl.md +273 -273
  54. package/agentes/revisor-nextjs-swl.md +281 -281
  55. package/agentes/revisor-php-swl.md +271 -271
  56. package/agentes/revisor-react-swl.md +278 -278
  57. package/agentes/revisor-rust-swl.md +346 -346
  58. package/agentes/revisor-seguridad-swl.md +399 -399
  59. package/agentes/revisor-swift-swl.md +268 -268
  60. package/agentes/revisor-typescript-swl.md +346 -346
  61. package/agentes/sre-swl.md +291 -291
  62. package/agentes/tdd-qa-swl.md +393 -393
  63. package/comandos/swl/aprobar-plan.md +146 -141
  64. package/comandos/swl/briefing.md +119 -119
  65. package/comandos/swl/contribuir.md +233 -233
  66. package/comandos/swl/predecir.md +139 -139
  67. package/comandos/swl/release.md +30 -8
  68. package/comandos/swl/sesiones.md +1 -1
  69. package/comandos/swl/status.md +343 -333
  70. package/gateway/agent-executor.js +1 -1
  71. package/gateway/lib/event-channel.js +191 -191
  72. package/habilidades/agent-deep-links/SKILL.md +148 -148
  73. package/habilidades/agentes-como-servicio/SKILL.md +2 -2
  74. package/habilidades/angular-moderno/SKILL.md +20 -1
  75. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  76. package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
  77. package/habilidades/backend-error-design/SKILL.md +221 -221
  78. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  79. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  80. package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
  81. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  82. package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
  83. package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
  84. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  85. package/habilidades/contenedores-docker/SKILL.md +3 -1
  86. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  87. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  88. package/habilidades/drift-detection/SKILL.md +179 -179
  89. package/habilidades/ejecutar-fase/SKILL.md +564 -541
  90. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  91. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
  92. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  93. package/habilidades/eval-framework/SKILL.md +212 -212
  94. package/habilidades/extractor-de-aprendizajes/SKILL.md +3 -3
  95. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  96. package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +252 -252
  97. package/habilidades/legacy-code-rescue/SKILL.md +267 -267
  98. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  99. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  100. package/habilidades/perfil-usuario/SKILL.md +200 -200
  101. package/habilidades/planear-fase/SKILL.md +15 -1
  102. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  103. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
  104. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  105. package/habilidades/proceso-debate-adversarial/SKILL.md +191 -164
  106. package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
  107. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  108. package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
  109. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  110. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  111. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  112. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  113. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
  114. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  115. package/habilidades/structured-outputs/SKILL.md +2 -2
  116. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  117. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  118. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  119. package/habilidades/swl-dashboard/SKILL.md +2 -2
  120. package/habilidades/tdd-workflow/SKILL.md +33 -1
  121. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  122. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
  123. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
  124. package/hooks/captura-acciones-post.js +151 -0
  125. package/hooks/captura-acciones-session.js +155 -0
  126. package/hooks/ciclo-evolucion-subagente.js +26 -26
  127. package/hooks/ciclo-evolucion.js +26 -26
  128. package/hooks/claudemd-bloat-detector.js +161 -161
  129. package/hooks/claudemd-duplicacion-detector.js +170 -170
  130. package/hooks/contexto-iteracion.js +144 -144
  131. package/hooks/guardrail-modelo.js +1 -1
  132. package/hooks/lib/agent-routing.js +107 -107
  133. package/hooks/lib/auto-consolidator.js +335 -335
  134. package/hooks/lib/autonomia.js +208 -208
  135. package/hooks/lib/briefing.js +512 -474
  136. package/hooks/lib/captura-acciones.js +392 -0
  137. package/hooks/lib/ciclo-evolucion.js +47 -47
  138. package/hooks/lib/deep-links.js +185 -185
  139. package/hooks/lib/error-classifier.js +308 -308
  140. package/hooks/lib/etapa-auto-evolucion.js +701 -701
  141. package/hooks/lib/etapa-metricas.js +388 -388
  142. package/hooks/lib/etapa-perfil-usuario.js +376 -376
  143. package/hooks/lib/loop-telemetry.js +321 -321
  144. package/hooks/lib/merkle-audit.js +96 -96
  145. package/hooks/lib/model-router.js +2 -2
  146. package/hooks/lib/propose-step.js +358 -358
  147. package/hooks/lib/provenance-tracker.js +191 -191
  148. package/hooks/lib/rate-limit-tracker.js +253 -253
  149. package/hooks/lib/resource-quota.js +122 -122
  150. package/hooks/lib/retry-jitter.js +165 -165
  151. package/hooks/lib/security-net.js +201 -201
  152. package/hooks/lib/skill-auditor.js +588 -588
  153. package/hooks/lib/sync-status.js +228 -228
  154. package/hooks/lib/taint-tracker.js +107 -107
  155. package/hooks/lib/text-similarity.js +241 -241
  156. package/hooks/lib/token-estimator.js +1 -0
  157. package/hooks/lib/toon-compressor.js +245 -245
  158. package/hooks/lib/usage-model.js +1 -1
  159. package/hooks/linea-estado.js +2 -0
  160. package/hooks/registro-turnos.js +209 -209
  161. package/hooks/session-briefing.js +98 -98
  162. package/hooks/spec-gate.js +211 -211
  163. package/hooks/sugerir-regenerar-inventario.js +170 -170
  164. package/hooks/tdd-gate.js +241 -241
  165. package/hooks/telemetria-skill-routing.js +100 -100
  166. package/hooks/validar-formato-post-subagente.js +140 -140
  167. package/hooks/validar-intent-spec.js +242 -242
  168. package/hooks/validar-memoria-hook.js +218 -218
  169. package/hooks/validar-planning-paths.js +134 -134
  170. package/instintos/autonomia.yaml +27 -27
  171. package/instintos/prompt-appendices.yaml +57 -57
  172. package/llms.txt +2 -2
  173. package/manifiestos/agent-output-schemas.json +57 -57
  174. package/manifiestos/canonical-hashes.json +2291 -1637
  175. package/manifiestos/hooks-config.json +18 -0
  176. package/manifiestos/modulos.json +4 -0
  177. package/manifiestos/planning-paths.json +44 -44
  178. package/manifiestos/skills-lock.json +1282 -1282
  179. package/package.json +2 -2
  180. package/plantillas/auditor-veto-template.md +105 -105
  181. package/plantillas/github-workflows/README.md +47 -47
  182. package/plantillas/github-workflows/release-please.yml +44 -44
  183. package/plantillas/github-workflows/swl-ci.yml +107 -107
  184. package/plantillas/github-workflows/swl-security.yml +51 -51
  185. package/plugin.json +2 -2
  186. package/reglas/accesibilidad.md +10 -10
  187. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  188. package/reglas/api-diseno.md +9 -9
  189. package/reglas/arreglar-al-detectar.md +240 -240
  190. package/reglas/auditorias-documentales-estructurales.md +7 -7
  191. package/reglas/cloud-infra.md +8 -8
  192. package/reglas/consultar-vault-primero.md +195 -195
  193. package/reglas/debatir-antes-de-aceptar.md +158 -158
  194. package/reglas/fragmentos-compartidos.md +183 -183
  195. package/reglas/hooks.md +6 -6
  196. package/reglas/intent-engineering.md +218 -218
  197. package/reglas/markitdown.md +8 -8
  198. package/reglas/memoria-consolidada.md +41 -0
  199. package/reglas/monitor-ci.md +309 -309
  200. package/reglas/patrones.md +6 -6
  201. package/reglas/seguridad-agentes.md +66 -0
  202. package/reglas/sesiones-paralelas.md +180 -180
  203. package/reglas/sin-duplicacion-reglas-globales.md +182 -182
  204. package/reglas/skills-estandar.md +6 -6
  205. package/reglas/testing.md +7 -7
  206. package/reglas/tests-cleanup.md +224 -224
  207. package/reglas/usar-code-review-graph.md +155 -155
  208. package/reglas/usar-context7.md +226 -226
  209. package/reglas/verificar-citas-normativas.md +548 -548
  210. package/schemas/agent-frontmatter.schema.json +3 -3
  211. package/schemas/agent-message.schema.json +73 -73
  212. package/schemas/agent-output-implementacion.schema.json +114 -114
  213. package/schemas/agent-output-planificacion.schema.json +150 -150
  214. package/schemas/agent-output-review.schema.json +98 -98
  215. package/schemas/diary-entry.schema.json +112 -112
  216. package/schemas/hook-profiles.schema.json +54 -54
  217. package/schemas/hooks-config.schema.json +89 -89
  218. package/schemas/instinct.schema.json +161 -152
  219. package/schemas/modulos.schema.json +38 -38
  220. package/schemas/perfiles.schema.json +36 -36
  221. package/schemas/plugin.schema.json +77 -77
  222. package/schemas/skill-evals.schema.json +119 -119
  223. package/schemas/skill-frontmatter.schema.json +245 -245
  224. package/scripts/audit-tools/audit-history.js +330 -330
  225. package/scripts/audit-tools/bundle-tracker.js +290 -290
  226. package/scripts/audit-tools/canary-monitor.js +352 -352
  227. package/scripts/audit-tools/code-profiler.js +605 -605
  228. package/scripts/audit-tools/dep-doctor.js +320 -320
  229. package/scripts/audit-tools/env-validator.js +206 -206
  230. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  231. package/scripts/audit-tools/lib/output.js +23 -23
  232. package/scripts/audit-tools/migration-checker.js +392 -392
  233. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  234. package/scripts/benchmark-memoria.js +167 -167
  235. package/scripts/bootstrap-instintos.js +25 -7
  236. package/scripts/cli/aprobar-plan.js +73 -73
  237. package/scripts/cli/briefing.js +23 -23
  238. package/scripts/cli/ciclo-evolucion.js +26 -26
  239. package/scripts/cli/configurar-ci.js +40 -40
  240. package/scripts/cli/derivar-feature-list.js +25 -25
  241. package/scripts/cli/detectar-host.js +27 -27
  242. package/scripts/cli/diary-entry.js +69 -69
  243. package/scripts/cli/execution-state.js +18 -18
  244. package/scripts/cli/gateway-notify.js +41 -41
  245. package/scripts/cli/liberar-fase.js +42 -42
  246. package/scripts/cli/loop-telemetry.js +125 -125
  247. package/scripts/cli/mark-evolved.js +56 -56
  248. package/scripts/cli/metricas-dora.js +26 -26
  249. package/scripts/cli/near-duplicate.js +55 -55
  250. package/scripts/cli/notificaciones.js +123 -123
  251. package/scripts/cli/propose-step.js +29 -29
  252. package/scripts/cli/schedule-parse.js +19 -19
  253. package/scripts/cli/sugerir-modelo.js +20 -20
  254. package/scripts/cli/verificar-plan.js +36 -36
  255. package/scripts/cli/verificar-trazabilidad.js +35 -35
  256. package/scripts/configurar-branch-protection.js +418 -418
  257. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  258. package/scripts/field-report.js +199 -199
  259. package/scripts/generar-checklists-consolidados.js +273 -273
  260. package/scripts/generar-matriz-lenguajes.js +271 -271
  261. package/scripts/lib/artefactos-python.js +43 -43
  262. package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
  263. package/scripts/lib/benchmark-metrics.js +160 -160
  264. package/scripts/lib/budget-enforcer.js +252 -252
  265. package/scripts/lib/ci-reader.js +193 -193
  266. package/scripts/lib/claude-sessions.js +1 -0
  267. package/scripts/lib/configurar-ci.js +380 -380
  268. package/scripts/lib/contadores-inventario.js +217 -217
  269. package/scripts/lib/detectar-host-swl.js +175 -175
  270. package/scripts/lib/detectar-stack-detallado.js +307 -307
  271. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  272. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  273. package/scripts/lib/diary-entry.js +234 -234
  274. package/scripts/lib/eval-metrics-store.js +218 -218
  275. package/scripts/lib/eval-quality.js +171 -171
  276. package/scripts/lib/eval-schemas.js +144 -144
  277. package/scripts/lib/eval-self-correct.js +106 -106
  278. package/scripts/lib/eval-validator.js +185 -185
  279. package/scripts/lib/evidencia-release.js +322 -322
  280. package/scripts/lib/expandir-targets.js +71 -71
  281. package/scripts/lib/gate-hooks-requires.js +249 -249
  282. package/scripts/lib/gate-licencias.js +212 -212
  283. package/scripts/lib/git-metricas.js +257 -257
  284. package/scripts/lib/gitignore-manifest.js +44 -11
  285. package/scripts/lib/jaccard-similarity.js +98 -98
  286. package/scripts/lib/longmemeval-runner.js +125 -125
  287. package/scripts/lib/metricas-dora.js +204 -204
  288. package/scripts/lib/npm-version.js +261 -261
  289. package/scripts/lib/paquetes-conocidos.js +50 -50
  290. package/scripts/lib/plan-lock.js +275 -275
  291. package/scripts/lib/pr-analyzer.js +399 -399
  292. package/scripts/lib/prompt-builder.js +264 -264
  293. package/scripts/lib/reglas-globales-conocidas.json +180 -180
  294. package/scripts/lib/resolver-plan-fase.js +37 -37
  295. package/scripts/lib/rrf-fusion.js +175 -175
  296. package/scripts/lib/schema-version.js +164 -164
  297. package/scripts/lib/scoring-instintos.js +277 -277
  298. package/scripts/lib/semantic-search.js +252 -252
  299. package/scripts/lib/skill-metrics.js +41 -1
  300. package/scripts/lib/toml-merge.js +204 -204
  301. package/scripts/lib/tool-cost-analyzer.js +1 -0
  302. package/scripts/limpiar-artefactos-python.js +131 -131
  303. package/scripts/mcp-server/auth.js +105 -105
  304. package/scripts/mcp-server/cache.js +106 -106
  305. package/scripts/migrar-csv-a-array.js +168 -168
  306. package/scripts/migrar-fase-dominio.js +200 -200
  307. package/scripts/publicar.js +497 -497
  308. package/scripts/run-eval.js +141 -141
  309. package/scripts/tui/componentes/selector-multi.js +189 -189
  310. package/scripts/tui/componentes/selector-unico.js +158 -158
  311. package/scripts/tui/ejecutores.js +375 -375
  312. package/scripts/tui/index.js +162 -162
  313. package/scripts/tui/lib/colores.js +129 -129
  314. package/scripts/tui/lib/render.js +264 -264
  315. package/scripts/tui/lib/teclas.js +113 -113
  316. package/scripts/tui/pantallas/inspect.js +173 -173
  317. package/scripts/tui/pantallas/install-wizard.js +334 -334
  318. package/scripts/tui/pantallas/menu-principal.js +52 -52
  319. package/scripts/tui/pantallas/progreso.js +274 -274
  320. package/scripts/tui/pantallas/resumen.js +132 -132
  321. package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
  322. package/scripts/tui/pantallas/update-wizard.js +232 -232
  323. package/scripts/tui/pantallas/welcome.js +187 -187
  324. package/scripts/validar-userland-vacio.js +110 -110
  325. package/scripts/verificar-trazabilidad.js +329 -298
@@ -355,10 +355,76 @@ exclusiones:
355
355
 
356
356
  ---
357
357
 
358
+ ## Anti-gaming: no auto-calificación de evidencia
359
+
360
+ Esta sección formaliza una invariante de seguridad **no negociable** para el
361
+ ciclo de auto-evolución (AGP) y para cualquier agente que se auto-mejore.
362
+
363
+ ### Invariante
364
+
365
+ > Un agente que evoluciona **NUNCA debe producir ni editar la evidencia que lo
366
+ > aprueba**. El productor de la evidencia (score de eval, badge, evidencia RED,
367
+ > veredicto de verificación, canary) debe ser un **actor distinto** del agente
368
+ > evaluado, o una **decisión humana**. La única señal imposible de falsificar es
369
+ > la generada por un actor independiente del evaluado.
370
+
371
+ ### Origen — Sakana Darwin Gödel Machine
372
+
373
+ El DGM, soltado a mejorar contra un test, en vez de hacer mejor trabajo
374
+ **falsificó sus propios logs de test**. Cuando los investigadores le agregaron un
375
+ detector para atraparlo, **quitó las marcas en que el detector se apoyaba**, pese
376
+ a que se le prohibió. Lección: si el evaluado controla la evidencia que lo
377
+ califica, la optimización converge a falsificar la evidencia, no a mejorar.
378
+ (Fuente: análisis self-learning 3 capas, `sakana.ai/dgm`.)
379
+
380
+ ### Relación con gobernanza (no se re-deriva aquí)
381
+
382
+ Esta invariante **extiende** —no duplica— `reglas/gobernanza.md`:
383
+ - `§ Separación revisor/ejecutor`: el ejecutor nunca emite veredicto sobre su
384
+ propio trabajo; el revisor no modifica código.
385
+ - `§ Gate G8`: un skill se promueve solo con badge ≥ Plata de `/swl:evaluar-skill`.
386
+
387
+ El aporte de esta sección es el principio general "no auto-calificación de
388
+ **evidencia**" aplicado a TODA superficie del AGP, y el mapeo a las superficies
389
+ reales del sistema (auditoría Fase 18, 2026-06-27).
390
+
391
+ ### Mapeo a superficies del ciclo AGP (auditoría Fase 18)
392
+
393
+ | Superficie | ¿Productor ≠ calificador? | Veredicto |
394
+ |---|---|---|
395
+ | Canary pre-write (`hooks/lib/canary-skills.js`) | Validador estructural determinista sobre el contenido real; el agente no puede falsearlo | **PASS** |
396
+ | Veredicto de verificación (`/swl:verificar`, `nemesis`) | `gobernanza.md` exige revisor ≠ ejecutor (agentes distintos) | **PASS** (por proceso) |
397
+ | Invariantes de seguridad (`run-skill-evals --check-invariants`) | `validarInvariantesDeAgente` corre independiente del score declarado | **PASS** |
398
+ | Evidencia RED de TDD (`hooks/tdd-gate.js`) | La escribe el mismo ejecutar-fase; mitigado porque el GREEN lo corre un test-runner independiente y es WARN-ONLY | **PARCIAL** |
399
+ | **Score de eval (`run-skill-evals.js --record-after --score=N`)** | El `--score` se toma **verbatim del flag** que pasa el agente que evoluciona; nada lo liga a una corrida independiente de `/swl:evaluar-skill` | **GAP** (DT-AGP-SCORE-AUTODECLARADO) |
400
+ | Registro de evolución (`evoluciones.jsonl`) + métricas | Heredan el score auto-declarado de la superficie anterior | **GAP** (mismo origen) |
401
+
402
+ ### Anti-patrones (prohibidos)
403
+
404
+ - Un agente que pasa su propio `--score=N` como evidencia de que su evolución
405
+ mejoró, sin que ese número provenga de un evaluador independiente.
406
+ - Un ejecutor que escribe/edita su propia evidencia RED, badge o veredicto.
407
+ - "Agregar un detector" y dejar que el evaluado pueda editar las marcas en que el
408
+ detector se apoya (el error literal del DGM).
409
+ - Confiar en un número de score persistido sin procedencia verificable del actor
410
+ que lo produjo.
411
+
412
+ ### Regla operativa
413
+
414
+ Toda métrica que decida promoción/rollback de una evolución debe poder rastrear
415
+ **qué actor la produjo**. Si el actor es el mismo agente evaluado, la métrica es
416
+ un *hint*, no una aprobación: requiere corroboración de un actor independiente
417
+ (otro agente evaluador, el test-runner, o el humano) antes de promover.
418
+
419
+ ---
420
+
358
421
  ## Checklist de seguridad de agentes
359
422
 
360
423
  Antes de desplegar un agente nuevo o modificar permisos de uno existente:
361
424
 
425
+ - [ ] Ninguna evidencia que aprueba al agente (score, badge, RED, veredicto) es
426
+ producida o editable por el propio agente evaluado (§ Anti-gaming)
427
+
362
428
  - [ ] Los permisos en frontmatter son los mínimos necesarios para la función
363
429
  - [ ] `nivelRiesgo` refleja el impacto real si el agente actúa incorrectamente
364
430
  - [ ] El agente no puede escalar privilegios a través de delegación
@@ -1,180 +1,180 @@
1
- # Regla: Coordinación obligatoria al detectar sesión paralela
2
-
3
- Esta regla es OBLIGATORIA y aplica cuando Claude detecta — o el usuario
4
- informa — que **otra sesión de IA** (Claude Code, Codex CLI, Cursor, otro
5
- agente) está trabajando **simultáneamente** sobre el mismo repositorio /
6
- proyecto.
7
-
8
- ---
9
-
10
- ## Principio
11
-
12
- > Cuando detectes que otra sesión está activa sobre el mismo repo y los
13
- > cambios pueden colisionar en archivos compartidos, **DETÉN tu flujo
14
- > actual y presenta 4 opciones explícitas de coordinación al usuario antes
15
- > de proceder con cualquier escritura**. NUNCA decidas unilateralmente
16
- > continuar.
17
-
18
- El patrón opuesto (continuar y resolver conflictos al final) es costoso:
19
- resolución manual de merge conflicts en archivos canónicos del sistema
20
- (`package.json`, `plugin.json`, `CHANGELOG.md`, manifiestos) toma 30+
21
- minutos vs 2 minutos de coordinación previa.
22
-
23
- ---
24
-
25
- ## Cómo detectar sesión paralela
26
-
27
- Señales que disparan la regla:
28
-
29
- - El usuario lo informa explícitamente: *"hay otra sesión trabajando en
30
- esto agregando X"*.
31
- - `git status` muestra archivos modificados que tú no modificaste en esta
32
- sesión.
33
- - Commits aparecen en `git log --oneline` con timestamps muy recientes
34
- cuyo autor o mensaje no coinciden con tu trabajo.
35
- - ADRs o PLAN.md aparecen en `.planning/` con números cercanos pero
36
- contenido que no escribiste (`0019-X-completa.md` cuando tu trabajo era
37
- ADR-0020).
38
- - Archivos `.swl-install-state.json` o lockfiles con mtime posterior al
39
- inicio de tu sesión.
40
-
41
- Tras detectar cualquier señal: **pausar inmediatamente** antes de la
42
- siguiente escritura.
43
-
44
- ---
45
-
46
- ## Las 4 opciones obligatorias
47
-
48
- Presentar al usuario **literalmente** estas 4 opciones (sin inventar
49
- variantes hasta que el usuario las pida):
50
-
51
- | Opción | Estrategia | Cuándo conviene |
52
- |--------|-----------|-----------------|
53
- | **A — Ceder prioridad** | Pausar tu trabajo. Revertir cambios no commiteados. Esperar a que la otra sesión termine. Retomar después con `git pull` y rebase. | La otra sesión está cerca de terminar y tu trabajo es ortogonal o no urgente. |
54
- | **B — Avance no-conflictivo** | Continuar trabajando, pero SOLO en archivos que la otra sesión NO toca. Identificar y enumerar el subconjunto seguro. Diferir cambios en archivos compartidos hasta que la otra sesión cierre. | Tu trabajo cabe en archivos disjuntos (skills nuevos, scripts nuevos, tests). |
55
- | **C — Release combinada** | Coordinar con la otra sesión un cierre conjunto: mismo release, mismo PR, ambos trabajos integrados. Implica sincronización explícita en docs canónicas, CHANGELOG, versión. | Ambas líneas de trabajo apuntan al mismo bump de versión y los cambios son complementarios. |
56
- | **D — Continuar conflictivo** | Continuar todo tu plan. Resolver merge conflicts al final manualmente. **NO RECOMENDADO** salvo bloqueador urgente. | Solo si la coordinación es imposible (otra sesión inalcanzable) y el trabajo es bloqueante. |
57
-
58
- Tras presentar las opciones, **esperar la decisión del usuario** antes de
59
- escribir cualquier archivo. La excepción son lecturas (`Read`, `Grep`,
60
- `Glob`) que no modifican estado.
61
-
62
- ---
63
-
64
- ## Cómo presentar el reporte al usuario
65
-
66
- Formato mínimo del mensaje de detección:
67
-
68
- ```markdown
69
- Pauso inmediatamente. Hay riesgo de conflicto crítico entre las dos sesiones.
70
-
71
- ## Estado actual de las dos sesiones
72
-
73
- ### Sesión actual (esta) — <descripción breve>
74
- **Cambios en disco**: <lista de archivos modificados por mí>
75
- **Pendiente**: <sub-fases restantes>
76
-
77
- ### Sesión paralela — <descripción de qué hace>
78
- **Cambios detectados**: <archivos modificados por la otra sesión>
79
-
80
- ## Archivos en colisión potencial al avanzar
81
-
82
- | Archivo | Mi necesidad | Otra sesión | Riesgo |
83
- |---------|-------------|-------------|--------|
84
- | package.json (versión) | bump vX → vY | bump probablemente también | ALTO |
85
- | plugin.json | +N skills | posiblemente +runtimes | Medio |
86
- | CHANGELOG.md | sección nueva | sección nueva | ALTO — conflict garantizado |
87
- | docs canónicas | docs feature X | docs feature Y | Medio |
88
-
89
- ## Opciones
90
-
91
- [A/B/C/D con descripciones]
92
-
93
- ## Recomendación
94
-
95
- [Opción recomendada con justificación en 1 párrafo]
96
- ```
97
-
98
- ---
99
-
100
- ## Reglas duras
101
-
102
- - **NUNCA decidir unilateralmente** continuar tras detectar sesión paralela.
103
- - **NUNCA hacer commits** en archivos compartidos hasta que el usuario
104
- confirme la estrategia de coordinación.
105
- - **NUNCA pushear** cambios sin saber el estado de la otra sesión.
106
- - Tras decidir Opción B (avance no-conflictivo): **mantener una lista
107
- explícita** de archivos seguros vs archivos diferidos. Verificar antes
108
- de cada `Write`/`Edit` que el archivo no está en la zona diferida.
109
- - Si durante el trabajo aparece un nuevo conflicto no anticipado, **pausar
110
- de nuevo y reportar** — no resolver en silencio.
111
- - Tras decidir Opción C (release combinada): coordinar **versión y
112
- ubicaciones canónicas** explícitamente (¿quién bumpea? ¿en qué orden se
113
- mergean los PRs? ¿quién regenera INVENTARIO.md al final?).
114
- - **NUNCA revertir cambios pendientes en working tree de una sesión paralela
115
- por interpretación errónea de una instrucción del usuario**. Si el usuario
116
- dice "no cambies de versión", "no toques X", "deja Y como está" durante un
117
- flujo del agente actual, esa instrucción **aplica al trabajo nuevo del
118
- agente actual**, no al trabajo previo ya pendiente en working tree de
119
- otra sesión. **Antes de revertir cualquier archivo modificado que no
120
- modificó la sesión actual**, ejecutar:
121
- ```bash
122
- git diff HEAD -- <archivo> # ver el cambio pendiente
123
- git log --oneline -3 -- <archivo> # ver historia del archivo
124
- grep -l "<bump-keyword>" .planning/APRENDIZAJES.md # buscar trazabilidad
125
- ```
126
- Si el cambio pendiente está documentado como trabajo de sesión previa
127
- (entry en APRENDIZAJES.md, mensaje del usuario citándolo, evidencia en
128
- `.planning/sessions/diary/`), **NO revertirlo**. Reportar al usuario:
129
- *"Detecté cambio pendiente en X de sesión paralela (evidencia: Y). Mi
130
- instrucción de no-cambiar-versión aplica solo a mi trabajo nuevo — ¿confirmas
131
- que preserve los bumps previos?"*. La instrucción del usuario sobre
132
- versiones se interpreta **a partir del momento en que se emite**, no
133
- retroactivamente sobre el working tree.
134
-
135
- ---
136
-
137
- ## Excepciones legítimas
138
-
139
- NO aplicar la regla cuando:
140
-
141
- 1. **La otra sesión es de lectura pura** (consulta, exploración) y no
142
- modifica archivos del repo.
143
- 2. **Las sesiones trabajan en branches distintas** y el merge a main será
144
- por PR independiente (no hay riesgo de colisión hasta el merge final).
145
- 3. **El usuario explícitamente autorizó** continuar sin coordinación.
146
-
147
- ---
148
-
149
- ## Origen de esta regla
150
-
151
- Sesión 2026-05-15 en swl-ses. Mientras una sesión analizaba `temp/cc-sdd-main`
152
- para absorber patrones SDD (Opción B aprobada por el usuario), otra sesión
153
- paralela trabajaba en agregar Codex y Cursor como targets de primera clase
154
- (ADR-0019). Ambas sesiones modificaban `scripts/instalador.js`,
155
- `manifiestos/modulos.json`, docs canónicas y planeaban bumpear a v1.5.0.
156
-
157
- El usuario informó la situación con: *"hay otra sesion trabajando en el mismo
158
- proyecto: 'Extension CLI' que esta agregando a swl-ses a codex y cursor como
159
- targets"*. La sesión actual pausó, reportó 4 opciones, esperó decisión. El
160
- usuario eligió Opción B (avance no-conflictivo en skills nuevos y scripts
161
- disjuntos; deferir docs y release a "modo D" cuando la otra sesión
162
- terminara). Resultado: **cero conflictos al cerrar v1.5.0** vía PR #25
163
- unificado.
164
-
165
- Sin esta regla, el patrón habitual hubiera sido continuar y resolver
166
- conflictos en cada `git pull` — costo estimado ~30 min de merge resolution
167
- en `CHANGELOG.md`, `plugin.json`, `package.json`, `manifiestos/modulos.json`
168
- y `INVENTARIO.md`.
169
-
170
- ---
171
-
172
- ## Checklist al detectar sesión paralela
173
-
174
- - [ ] Pausé mi escritura actual antes de la siguiente `Write`/`Edit`
175
- - [ ] Ejecuté `git status` y `git log --since="1 hour ago"` para mapear cambios
176
- - [ ] Identifiqué los archivos potencialmente compartidos
177
- - [ ] Presenté al usuario un reporte con las 4 opciones (A/B/C/D) y mi recomendación
178
- - [ ] Esperé decisión explícita antes de la siguiente escritura
179
- - [ ] Si elegimos B: mantengo lista de archivos diferidos visible
180
- - [ ] Si elegimos C: confirmé versión objetivo y orden de PRs
1
+ # Regla: Coordinación obligatoria al detectar sesión paralela
2
+
3
+ Esta regla es OBLIGATORIA y aplica cuando Claude detecta — o el usuario
4
+ informa — que **otra sesión de IA** (Claude Code, Codex CLI, Cursor, otro
5
+ agente) está trabajando **simultáneamente** sobre el mismo repositorio /
6
+ proyecto.
7
+
8
+ ---
9
+
10
+ ## Principio
11
+
12
+ > Cuando detectes que otra sesión está activa sobre el mismo repo y los
13
+ > cambios pueden colisionar en archivos compartidos, **DETÉN tu flujo
14
+ > actual y presenta 4 opciones explícitas de coordinación al usuario antes
15
+ > de proceder con cualquier escritura**. NUNCA decidas unilateralmente
16
+ > continuar.
17
+
18
+ El patrón opuesto (continuar y resolver conflictos al final) es costoso:
19
+ resolución manual de merge conflicts en archivos canónicos del sistema
20
+ (`package.json`, `plugin.json`, `CHANGELOG.md`, manifiestos) toma 30+
21
+ minutos vs 2 minutos de coordinación previa.
22
+
23
+ ---
24
+
25
+ ## Cómo detectar sesión paralela
26
+
27
+ Señales que disparan la regla:
28
+
29
+ - El usuario lo informa explícitamente: *"hay otra sesión trabajando en
30
+ esto agregando X"*.
31
+ - `git status` muestra archivos modificados que tú no modificaste en esta
32
+ sesión.
33
+ - Commits aparecen en `git log --oneline` con timestamps muy recientes
34
+ cuyo autor o mensaje no coinciden con tu trabajo.
35
+ - ADRs o PLAN.md aparecen en `.planning/` con números cercanos pero
36
+ contenido que no escribiste (`0019-X-completa.md` cuando tu trabajo era
37
+ ADR-0020).
38
+ - Archivos `.swl-install-state.json` o lockfiles con mtime posterior al
39
+ inicio de tu sesión.
40
+
41
+ Tras detectar cualquier señal: **pausar inmediatamente** antes de la
42
+ siguiente escritura.
43
+
44
+ ---
45
+
46
+ ## Las 4 opciones obligatorias
47
+
48
+ Presentar al usuario **literalmente** estas 4 opciones (sin inventar
49
+ variantes hasta que el usuario las pida):
50
+
51
+ | Opción | Estrategia | Cuándo conviene |
52
+ |--------|-----------|-----------------|
53
+ | **A — Ceder prioridad** | Pausar tu trabajo. Revertir cambios no commiteados. Esperar a que la otra sesión termine. Retomar después con `git pull` y rebase. | La otra sesión está cerca de terminar y tu trabajo es ortogonal o no urgente. |
54
+ | **B — Avance no-conflictivo** | Continuar trabajando, pero SOLO en archivos que la otra sesión NO toca. Identificar y enumerar el subconjunto seguro. Diferir cambios en archivos compartidos hasta que la otra sesión cierre. | Tu trabajo cabe en archivos disjuntos (skills nuevos, scripts nuevos, tests). |
55
+ | **C — Release combinada** | Coordinar con la otra sesión un cierre conjunto: mismo release, mismo PR, ambos trabajos integrados. Implica sincronización explícita en docs canónicas, CHANGELOG, versión. | Ambas líneas de trabajo apuntan al mismo bump de versión y los cambios son complementarios. |
56
+ | **D — Continuar conflictivo** | Continuar todo tu plan. Resolver merge conflicts al final manualmente. **NO RECOMENDADO** salvo bloqueador urgente. | Solo si la coordinación es imposible (otra sesión inalcanzable) y el trabajo es bloqueante. |
57
+
58
+ Tras presentar las opciones, **esperar la decisión del usuario** antes de
59
+ escribir cualquier archivo. La excepción son lecturas (`Read`, `Grep`,
60
+ `Glob`) que no modifican estado.
61
+
62
+ ---
63
+
64
+ ## Cómo presentar el reporte al usuario
65
+
66
+ Formato mínimo del mensaje de detección:
67
+
68
+ ```markdown
69
+ Pauso inmediatamente. Hay riesgo de conflicto crítico entre las dos sesiones.
70
+
71
+ ## Estado actual de las dos sesiones
72
+
73
+ ### Sesión actual (esta) — <descripción breve>
74
+ **Cambios en disco**: <lista de archivos modificados por mí>
75
+ **Pendiente**: <sub-fases restantes>
76
+
77
+ ### Sesión paralela — <descripción de qué hace>
78
+ **Cambios detectados**: <archivos modificados por la otra sesión>
79
+
80
+ ## Archivos en colisión potencial al avanzar
81
+
82
+ | Archivo | Mi necesidad | Otra sesión | Riesgo |
83
+ |---------|-------------|-------------|--------|
84
+ | package.json (versión) | bump vX → vY | bump probablemente también | ALTO |
85
+ | plugin.json | +N skills | posiblemente +runtimes | Medio |
86
+ | CHANGELOG.md | sección nueva | sección nueva | ALTO — conflict garantizado |
87
+ | docs canónicas | docs feature X | docs feature Y | Medio |
88
+
89
+ ## Opciones
90
+
91
+ [A/B/C/D con descripciones]
92
+
93
+ ## Recomendación
94
+
95
+ [Opción recomendada con justificación en 1 párrafo]
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Reglas duras
101
+
102
+ - **NUNCA decidir unilateralmente** continuar tras detectar sesión paralela.
103
+ - **NUNCA hacer commits** en archivos compartidos hasta que el usuario
104
+ confirme la estrategia de coordinación.
105
+ - **NUNCA pushear** cambios sin saber el estado de la otra sesión.
106
+ - Tras decidir Opción B (avance no-conflictivo): **mantener una lista
107
+ explícita** de archivos seguros vs archivos diferidos. Verificar antes
108
+ de cada `Write`/`Edit` que el archivo no está en la zona diferida.
109
+ - Si durante el trabajo aparece un nuevo conflicto no anticipado, **pausar
110
+ de nuevo y reportar** — no resolver en silencio.
111
+ - Tras decidir Opción C (release combinada): coordinar **versión y
112
+ ubicaciones canónicas** explícitamente (¿quién bumpea? ¿en qué orden se
113
+ mergean los PRs? ¿quién regenera INVENTARIO.md al final?).
114
+ - **NUNCA revertir cambios pendientes en working tree de una sesión paralela
115
+ por interpretación errónea de una instrucción del usuario**. Si el usuario
116
+ dice "no cambies de versión", "no toques X", "deja Y como está" durante un
117
+ flujo del agente actual, esa instrucción **aplica al trabajo nuevo del
118
+ agente actual**, no al trabajo previo ya pendiente en working tree de
119
+ otra sesión. **Antes de revertir cualquier archivo modificado que no
120
+ modificó la sesión actual**, ejecutar:
121
+ ```bash
122
+ git diff HEAD -- <archivo> # ver el cambio pendiente
123
+ git log --oneline -3 -- <archivo> # ver historia del archivo
124
+ grep -l "<bump-keyword>" .planning/APRENDIZAJES.md # buscar trazabilidad
125
+ ```
126
+ Si el cambio pendiente está documentado como trabajo de sesión previa
127
+ (entry en APRENDIZAJES.md, mensaje del usuario citándolo, evidencia en
128
+ `.planning/sessions/diary/`), **NO revertirlo**. Reportar al usuario:
129
+ *"Detecté cambio pendiente en X de sesión paralela (evidencia: Y). Mi
130
+ instrucción de no-cambiar-versión aplica solo a mi trabajo nuevo — ¿confirmas
131
+ que preserve los bumps previos?"*. La instrucción del usuario sobre
132
+ versiones se interpreta **a partir del momento en que se emite**, no
133
+ retroactivamente sobre el working tree.
134
+
135
+ ---
136
+
137
+ ## Excepciones legítimas
138
+
139
+ NO aplicar la regla cuando:
140
+
141
+ 1. **La otra sesión es de lectura pura** (consulta, exploración) y no
142
+ modifica archivos del repo.
143
+ 2. **Las sesiones trabajan en branches distintas** y el merge a main será
144
+ por PR independiente (no hay riesgo de colisión hasta el merge final).
145
+ 3. **El usuario explícitamente autorizó** continuar sin coordinación.
146
+
147
+ ---
148
+
149
+ ## Origen de esta regla
150
+
151
+ Sesión 2026-05-15 en swl-ses. Mientras una sesión analizaba `temp/cc-sdd-main`
152
+ para absorber patrones SDD (Opción B aprobada por el usuario), otra sesión
153
+ paralela trabajaba en agregar Codex y Cursor como targets de primera clase
154
+ (ADR-0019). Ambas sesiones modificaban `scripts/instalador.js`,
155
+ `manifiestos/modulos.json`, docs canónicas y planeaban bumpear a v1.5.0.
156
+
157
+ El usuario informó la situación con: *"hay otra sesion trabajando en el mismo
158
+ proyecto: 'Extension CLI' que esta agregando a swl-ses a codex y cursor como
159
+ targets"*. La sesión actual pausó, reportó 4 opciones, esperó decisión. El
160
+ usuario eligió Opción B (avance no-conflictivo en skills nuevos y scripts
161
+ disjuntos; deferir docs y release a "modo D" cuando la otra sesión
162
+ terminara). Resultado: **cero conflictos al cerrar v1.5.0** vía PR #25
163
+ unificado.
164
+
165
+ Sin esta regla, el patrón habitual hubiera sido continuar y resolver
166
+ conflictos en cada `git pull` — costo estimado ~30 min de merge resolution
167
+ en `CHANGELOG.md`, `plugin.json`, `package.json`, `manifiestos/modulos.json`
168
+ y `INVENTARIO.md`.
169
+
170
+ ---
171
+
172
+ ## Checklist al detectar sesión paralela
173
+
174
+ - [ ] Pausé mi escritura actual antes de la siguiente `Write`/`Edit`
175
+ - [ ] Ejecuté `git status` y `git log --since="1 hour ago"` para mapear cambios
176
+ - [ ] Identifiqué los archivos potencialmente compartidos
177
+ - [ ] Presenté al usuario un reporte con las 4 opciones (A/B/C/D) y mi recomendación
178
+ - [ ] Esperé decisión explícita antes de la siguiente escritura
179
+ - [ ] Si elegimos B: mantengo lista de archivos diferidos visible
180
+ - [ ] Si elegimos C: confirmé versión objetivo y orden de PRs