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