@saulwade/swl-ses 2.3.0 → 2.4.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 (327) hide show
  1. package/CLAUDE.md +241 -199
  2. package/README.md +597 -597
  3. package/agentes/_intent-spec.md +73 -73
  4. package/agentes/_propose-step.md +90 -90
  5. package/agentes/accesibilidad-wcag-swl.md +2 -2
  6. package/agentes/arquitecto-swl.md +2 -2
  7. package/agentes/auto-evolucion-swl.md +2 -2
  8. package/agentes/backend-api-swl.md +2 -2
  9. package/agentes/backend-csharp-swl.md +2 -2
  10. package/agentes/backend-go-swl.md +2 -2
  11. package/agentes/backend-java-swl.md +2 -2
  12. package/agentes/backend-node-swl.md +2 -2
  13. package/agentes/backend-python-swl.md +2 -2
  14. package/agentes/backend-rust-swl.md +2 -2
  15. package/agentes/backend-workers-swl.md +2 -2
  16. package/agentes/cloud-infra-swl.md +2 -2
  17. package/agentes/consolidador-swl.md +2 -2
  18. package/agentes/datos-swl.md +2 -2
  19. package/agentes/depurador-swl.md +2 -2
  20. package/agentes/devops-ci-swl.md +2 -2
  21. package/agentes/disenador-ui-swl.md +2 -2
  22. package/agentes/documentador-swl.md +2 -2
  23. package/agentes/frontend-angular-swl.md +2 -2
  24. package/agentes/frontend-css-swl.md +2 -2
  25. package/agentes/frontend-react-swl.md +2 -2
  26. package/agentes/frontend-swl.md +2 -2
  27. package/agentes/frontend-tailwind-swl.md +2 -2
  28. package/agentes/gh-fix-ci-swl.md +275 -275
  29. package/agentes/implementador-swl.md +2 -2
  30. package/agentes/investigador-swl.md +2 -2
  31. package/agentes/investigador-ux-swl.md +2 -2
  32. package/agentes/llm-apps-swl.md +2 -2
  33. package/agentes/migrador-swl.md +2 -2
  34. package/agentes/mobile-android-swl.md +2 -2
  35. package/agentes/mobile-cross-swl.md +2 -2
  36. package/agentes/mobile-ios-swl.md +2 -2
  37. package/agentes/mobile-testing-swl.md +2 -2
  38. package/agentes/nemesis-auditor-swl.md +1 -1
  39. package/agentes/notificador-swl.md +2 -2
  40. package/agentes/observabilidad-swl.md +2 -2
  41. package/agentes/orquestador-swl.md +41 -14
  42. package/agentes/pagos-swl.md +2 -2
  43. package/agentes/perfilador-usuario-swl.md +2 -2
  44. package/agentes/planificador-swl.md +2 -2
  45. package/agentes/producto-prd-swl.md +2 -2
  46. package/agentes/red-team-swl.md +218 -218
  47. package/agentes/release-manager-swl.md +2 -2
  48. package/agentes/rendimiento-swl.md +2 -2
  49. package/agentes/resolutor-build-swl.md +2 -2
  50. package/agentes/revisor-angular-swl.md +2 -2
  51. package/agentes/revisor-codigo-swl.md +36 -3
  52. package/agentes/revisor-csharp-swl.md +2 -2
  53. package/agentes/revisor-go-swl.md +2 -2
  54. package/agentes/revisor-java-swl.md +2 -2
  55. package/agentes/revisor-kotlin-swl.md +2 -2
  56. package/agentes/revisor-nextjs-swl.md +2 -2
  57. package/agentes/revisor-php-swl.md +2 -2
  58. package/agentes/revisor-react-swl.md +2 -2
  59. package/agentes/revisor-rust-swl.md +2 -2
  60. package/agentes/revisor-seguridad-swl.md +2 -2
  61. package/agentes/revisor-swift-swl.md +2 -2
  62. package/agentes/revisor-typescript-swl.md +2 -2
  63. package/agentes/sre-swl.md +2 -2
  64. package/agentes/tdd-qa-swl.md +2 -2
  65. package/comandos/swl/briefing.md +119 -119
  66. package/comandos/swl/contexto.md +0 -2
  67. package/comandos/swl/contribuir.md +233 -233
  68. package/comandos/swl/deuda-codigo.md +97 -0
  69. package/comandos/swl/predecir.md +139 -139
  70. package/comandos/swl/sesiones.md +1 -1
  71. package/gateway/agent-executor.js +1 -1
  72. package/gateway/lib/event-channel.js +191 -191
  73. package/habilidades/agent-deep-links/SKILL.md +148 -148
  74. package/habilidades/agentes-como-servicio/SKILL.md +2 -2
  75. package/habilidades/angular-moderno/SKILL.md +24 -1
  76. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  77. package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
  78. package/habilidades/backend-error-design/SKILL.md +221 -221
  79. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  80. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  81. package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
  82. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  83. package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
  84. package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
  85. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  86. package/habilidades/contenedores-docker/SKILL.md +3 -1
  87. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  88. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  89. package/habilidades/drift-detection/SKILL.md +179 -179
  90. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
  91. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  92. package/habilidades/eval-framework/SKILL.md +212 -212
  93. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  94. package/habilidades/harness-claude-code/SKILL.md +4 -4
  95. package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +253 -252
  96. package/habilidades/legacy-code-rescue/SKILL.md +268 -267
  97. package/habilidades/meta-skills-estandar/SKILL.md +1 -1
  98. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  99. package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +2 -2
  100. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  101. package/habilidades/perfil-usuario/SKILL.md +200 -200
  102. package/habilidades/postgresql-experto/SKILL.md +3 -1
  103. package/habilidades/prevencion-sobreingenieria/SKILL.md +70 -92
  104. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  105. package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -0
  106. package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -0
  107. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
  108. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  109. package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
  110. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  111. package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
  112. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  113. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  114. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  115. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  116. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
  117. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  118. package/habilidades/structured-outputs/SKILL.md +2 -2
  119. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  120. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  121. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  122. package/habilidades/swl-dashboard/SKILL.md +2 -2
  123. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  124. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
  125. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
  126. package/hooks/audit-trail.js +4 -4
  127. package/hooks/calidad-pre-commit.js +15 -11
  128. package/hooks/captura-acciones-post.js +3 -2
  129. package/hooks/captura-acciones-session.js +3 -2
  130. package/hooks/ciclo-evolucion-subagente.js +26 -26
  131. package/hooks/ciclo-evolucion.js +26 -26
  132. package/hooks/claudemd-bloat-detector.js +161 -161
  133. package/hooks/claudemd-duplicacion-detector.js +170 -170
  134. package/hooks/contexto-iteracion.js +145 -144
  135. package/hooks/contexto-subagente.js +68 -0
  136. package/hooks/guardrail-modelo.js +14 -4
  137. package/hooks/inyeccion-contexto.js +12 -12
  138. package/hooks/lib/agent-routing.js +107 -107
  139. package/hooks/lib/auto-consolidator.js +335 -335
  140. package/hooks/lib/autonomia.js +208 -208
  141. package/hooks/lib/ciclo-evolucion.js +47 -47
  142. package/hooks/lib/deep-links.js +185 -185
  143. package/hooks/lib/error-classifier.js +308 -308
  144. package/hooks/lib/etapa-auto-evolucion.js +701 -701
  145. package/hooks/lib/etapa-metricas.js +388 -388
  146. package/hooks/lib/etapa-perfil-usuario.js +376 -376
  147. package/hooks/lib/loop-telemetry.js +321 -321
  148. package/hooks/lib/merkle-audit.js +96 -96
  149. package/hooks/lib/model-router.js +2 -2
  150. package/hooks/lib/propose-step.js +358 -358
  151. package/hooks/lib/provenance-tracker.js +191 -191
  152. package/hooks/lib/rate-limit-tracker.js +253 -253
  153. package/hooks/lib/resource-quota.js +122 -122
  154. package/hooks/lib/retry-jitter.js +165 -165
  155. package/hooks/lib/security-net.js +201 -201
  156. package/hooks/lib/skill-auditor.js +588 -588
  157. package/hooks/lib/sync-status.js +228 -228
  158. package/hooks/lib/taint-tracker.js +107 -107
  159. package/hooks/lib/text-similarity.js +241 -241
  160. package/hooks/lib/token-estimator.js +1 -0
  161. package/hooks/lib/toon-compressor.js +245 -245
  162. package/hooks/lib/usage-model.js +1 -1
  163. package/hooks/registro-turnos.js +210 -209
  164. package/hooks/session-briefing.js +98 -98
  165. package/hooks/spec-gate.js +212 -211
  166. package/hooks/sugerir-contribuir.js +2 -1
  167. package/hooks/sugerir-regenerar-inventario.js +171 -170
  168. package/hooks/tdd-gate.js +242 -241
  169. package/hooks/telemetria-skill-routing.js +100 -100
  170. package/hooks/validar-formato-post-subagente.js +140 -140
  171. package/hooks/validar-intent-spec.js +242 -242
  172. package/hooks/validar-memoria-hook.js +218 -218
  173. package/hooks/validar-planning-paths.js +134 -134
  174. package/instintos/autonomia.yaml +27 -27
  175. package/instintos/prompt-appendices.yaml +57 -57
  176. package/llms.txt +29 -29
  177. package/manifiestos/agent-output-schemas.json +57 -57
  178. package/manifiestos/canonical-hashes.json +2948 -1964
  179. package/manifiestos/hook-profiles.json +0 -2
  180. package/manifiestos/hooks-config.json +469 -477
  181. package/manifiestos/invariantes-criticos.json +30 -0
  182. package/manifiestos/modulos.json +1390 -1390
  183. package/manifiestos/planning-paths.json +44 -44
  184. package/manifiestos/skills-lock.json +1282 -1282
  185. package/package.json +93 -93
  186. package/plantillas/auditor-veto-template.md +105 -105
  187. package/plantillas/github-workflows/README.md +47 -47
  188. package/plantillas/github-workflows/release-please.yml +44 -44
  189. package/plantillas/github-workflows/swl-ci.yml +107 -107
  190. package/plantillas/github-workflows/swl-security.yml +51 -51
  191. package/plugin.json +369 -371
  192. package/reglas/accesibilidad.md +10 -10
  193. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  194. package/reglas/api-diseno.md +9 -9
  195. package/reglas/arreglar-al-detectar.md +240 -240
  196. package/reglas/auditorias-documentales-estructurales.md +7 -7
  197. package/reglas/cloud-infra.md +8 -8
  198. package/reglas/consultar-vault-primero.md +195 -195
  199. package/reglas/debatir-antes-de-aceptar.md +158 -158
  200. package/reglas/fragmentos-compartidos.md +183 -183
  201. package/reglas/hooks.md +6 -6
  202. package/reglas/intent-engineering.md +218 -218
  203. package/reglas/markitdown.md +8 -8
  204. package/reglas/monitor-ci.md +309 -309
  205. package/reglas/patrones.md +6 -6
  206. package/reglas/sesiones-paralelas.md +180 -180
  207. package/reglas/sin-duplicacion-reglas-globales.md +182 -182
  208. package/reglas/skills-estandar.md +6 -6
  209. package/reglas/testing.md +7 -7
  210. package/reglas/tests-cleanup.md +224 -224
  211. package/reglas/usar-code-review-graph.md +155 -155
  212. package/reglas/usar-context7.md +226 -226
  213. package/reglas/verificar-citas-normativas.md +548 -548
  214. package/schemas/agent-frontmatter.schema.json +5 -3
  215. package/schemas/agent-message.schema.json +73 -73
  216. package/schemas/agent-output-implementacion.schema.json +114 -114
  217. package/schemas/agent-output-planificacion.schema.json +150 -150
  218. package/schemas/agent-output-review.schema.json +98 -98
  219. package/schemas/diary-entry.schema.json +112 -112
  220. package/schemas/hook-profiles.schema.json +54 -54
  221. package/schemas/hooks-config.schema.json +89 -89
  222. package/schemas/modulos.schema.json +38 -38
  223. package/schemas/perfiles.schema.json +36 -36
  224. package/schemas/plugin.schema.json +77 -77
  225. package/schemas/skill-evals.schema.json +119 -119
  226. package/schemas/skill-frontmatter.schema.json +245 -245
  227. package/scripts/audit-tools/audit-history.js +330 -330
  228. package/scripts/audit-tools/bundle-tracker.js +290 -290
  229. package/scripts/audit-tools/canary-monitor.js +352 -352
  230. package/scripts/audit-tools/code-profiler.js +605 -605
  231. package/scripts/audit-tools/dep-doctor.js +320 -320
  232. package/scripts/audit-tools/env-validator.js +206 -206
  233. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  234. package/scripts/audit-tools/lib/output.js +23 -23
  235. package/scripts/audit-tools/migration-checker.js +392 -392
  236. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  237. package/scripts/benchmark-memoria.js +167 -167
  238. package/scripts/cli/aprobar-plan.js +73 -73
  239. package/scripts/cli/briefing.js +23 -23
  240. package/scripts/cli/ciclo-evolucion.js +26 -26
  241. package/scripts/cli/configurar-ci.js +40 -40
  242. package/scripts/cli/derivar-feature-list.js +25 -25
  243. package/scripts/cli/detectar-host.js +27 -27
  244. package/scripts/cli/diary-entry.js +69 -69
  245. package/scripts/cli/execution-state.js +18 -18
  246. package/scripts/cli/gateway-notify.js +41 -41
  247. package/scripts/cli/liberar-fase.js +42 -42
  248. package/scripts/cli/loop-telemetry.js +125 -125
  249. package/scripts/cli/mark-evolved.js +56 -56
  250. package/scripts/cli/metricas-dora.js +26 -26
  251. package/scripts/cli/near-duplicate.js +55 -55
  252. package/scripts/cli/notificaciones.js +123 -123
  253. package/scripts/cli/propose-step.js +29 -29
  254. package/scripts/cli/schedule-parse.js +19 -19
  255. package/scripts/cli/sugerir-modelo.js +20 -20
  256. package/scripts/cli/verificar-plan.js +36 -36
  257. package/scripts/cli/verificar-trazabilidad.js +35 -35
  258. package/scripts/configurar-branch-protection.js +418 -418
  259. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  260. package/scripts/field-report.js +199 -199
  261. package/scripts/generar-checklists-consolidados.js +273 -273
  262. package/scripts/generar-matriz-lenguajes.js +271 -271
  263. package/scripts/instalador.js +4 -1
  264. package/scripts/lib/artefactos-python.js +43 -43
  265. package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
  266. package/scripts/lib/benchmark-metrics.js +160 -160
  267. package/scripts/lib/budget-enforcer.js +252 -252
  268. package/scripts/lib/ci-reader.js +193 -193
  269. package/scripts/lib/claude-sessions.js +1 -0
  270. package/scripts/lib/configurar-ci.js +380 -380
  271. package/scripts/lib/contadores-inventario.js +217 -217
  272. package/scripts/lib/detectar-host-swl.js +175 -175
  273. package/scripts/lib/detectar-stack-detallado.js +307 -307
  274. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  275. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  276. package/scripts/lib/diary-entry.js +234 -234
  277. package/scripts/lib/eval-metrics-store.js +218 -218
  278. package/scripts/lib/eval-quality.js +171 -171
  279. package/scripts/lib/eval-schemas.js +144 -144
  280. package/scripts/lib/eval-self-correct.js +106 -106
  281. package/scripts/lib/eval-validator.js +185 -185
  282. package/scripts/lib/evidencia-release.js +322 -322
  283. package/scripts/lib/gate-hooks-requires.js +249 -249
  284. package/scripts/lib/gate-licencias.js +212 -212
  285. package/scripts/lib/git-metricas.js +257 -257
  286. package/scripts/lib/jaccard-similarity.js +98 -98
  287. package/scripts/lib/longmemeval-runner.js +125 -125
  288. package/scripts/lib/metricas-dora.js +204 -204
  289. package/scripts/lib/npm-version.js +261 -261
  290. package/scripts/lib/paquetes-conocidos.js +50 -50
  291. package/scripts/lib/plan-lock.js +275 -275
  292. package/scripts/lib/pr-analyzer.js +399 -399
  293. package/scripts/lib/preservar-usuario.js +39 -5
  294. package/scripts/lib/prompt-builder.js +264 -264
  295. package/scripts/lib/reglas-globales-conocidas.json +180 -180
  296. package/scripts/lib/resolver-plan-fase.js +37 -37
  297. package/scripts/lib/rrf-fusion.js +175 -175
  298. package/scripts/lib/schema-version.js +164 -164
  299. package/scripts/lib/scoring-instintos.js +277 -277
  300. package/scripts/lib/semantic-search.js +252 -252
  301. package/scripts/lib/tool-cost-analyzer.js +1 -0
  302. package/scripts/limpiar-artefactos-python.js +131 -131
  303. package/scripts/migrar-csv-a-array.js +168 -168
  304. package/scripts/migrar-fase-dominio.js +200 -200
  305. package/scripts/publicar.js +497 -497
  306. package/scripts/run-eval.js +141 -141
  307. package/scripts/tui/componentes/selector-multi.js +189 -189
  308. package/scripts/tui/componentes/selector-unico.js +158 -158
  309. package/scripts/tui/ejecutores.js +375 -375
  310. package/scripts/tui/index.js +162 -162
  311. package/scripts/tui/lib/colores.js +129 -129
  312. package/scripts/tui/lib/render.js +264 -264
  313. package/scripts/tui/lib/teclas.js +113 -113
  314. package/scripts/tui/pantallas/inspect.js +173 -173
  315. package/scripts/tui/pantallas/install-wizard.js +334 -334
  316. package/scripts/tui/pantallas/menu-principal.js +52 -52
  317. package/scripts/tui/pantallas/progreso.js +274 -274
  318. package/scripts/tui/pantallas/resumen.js +132 -132
  319. package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
  320. package/scripts/tui/pantallas/update-wizard.js +232 -232
  321. package/scripts/tui/pantallas/welcome.js +187 -187
  322. package/scripts/validar-userland-vacio.js +110 -110
  323. package/scripts/validar.js +1 -1
  324. package/scripts/verificar-release.js +51 -0
  325. package/hooks/lib/context-compressor.js +0 -657
  326. package/hooks/linea-estado.js +0 -326
  327. package/hooks/monitor-contexto.js +0 -373
@@ -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