@saulwade/swl-ses 2.4.2 → 2.5.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 (198) hide show
  1. package/CLAUDE.md +194 -241
  2. package/README.md +600 -597
  3. package/agentes/_intent-spec.md +73 -73
  4. package/agentes/_propose-step.md +90 -90
  5. package/agentes/abogado-diablo-swl.md +145 -0
  6. package/agentes/accesibilidad-wcag-swl.md +690 -690
  7. package/agentes/arquitecto-swl.md +267 -267
  8. package/agentes/auto-evolucion-swl.md +908 -908
  9. package/agentes/backend-api-swl.md +1 -1
  10. package/agentes/backend-csharp-swl.md +420 -420
  11. package/agentes/backend-go-swl.md +390 -390
  12. package/agentes/backend-java-swl.md +281 -281
  13. package/agentes/backend-node-swl.md +1 -1
  14. package/agentes/backend-python-swl.md +1 -1
  15. package/agentes/backend-rust-swl.md +364 -364
  16. package/agentes/backend-workers-swl.md +482 -482
  17. package/agentes/cloud-infra-swl.md +509 -509
  18. package/agentes/consolidador-swl.md +541 -541
  19. package/agentes/datos-swl.md +1 -1
  20. package/agentes/depurador-swl.md +352 -352
  21. package/agentes/devops-ci-swl.md +400 -400
  22. package/agentes/disenador-ui-swl.md +569 -569
  23. package/agentes/documentador-swl.md +345 -345
  24. package/agentes/frontend-angular-swl.md +621 -621
  25. package/agentes/frontend-css-swl.md +716 -716
  26. package/agentes/frontend-react-swl.md +692 -692
  27. package/agentes/frontend-swl.md +496 -496
  28. package/agentes/frontend-tailwind-swl.md +826 -826
  29. package/agentes/gh-fix-ci-swl.md +6 -1
  30. package/agentes/implementador-swl.md +1 -1
  31. package/agentes/investigador-swl.md +432 -432
  32. package/agentes/investigador-ux-swl.md +505 -505
  33. package/agentes/llm-apps-swl.md +1 -1
  34. package/agentes/migrador-swl.md +442 -442
  35. package/agentes/mobile-android-swl.md +511 -511
  36. package/agentes/mobile-cross-swl.md +541 -541
  37. package/agentes/mobile-ios-swl.md +502 -502
  38. package/agentes/mobile-testing-swl.md +302 -302
  39. package/agentes/nemesis-auditor-swl.md +285 -285
  40. package/agentes/notificador-swl.md +1 -1
  41. package/agentes/observabilidad-swl.md +438 -438
  42. package/agentes/pagos-swl.md +310 -310
  43. package/agentes/perfilador-usuario-swl.md +321 -321
  44. package/agentes/planificador-swl.md +399 -399
  45. package/agentes/producto-prd-swl.md +589 -589
  46. package/agentes/red-team-swl.md +218 -218
  47. package/agentes/release-manager-swl.md +590 -590
  48. package/agentes/rendimiento-swl.md +713 -713
  49. package/agentes/resolutor-build-swl.md +10 -1
  50. package/agentes/revisor-angular-swl.md +278 -278
  51. package/agentes/revisor-codigo-swl.md +1 -1
  52. package/agentes/revisor-csharp-swl.md +264 -264
  53. package/agentes/revisor-go-swl.md +259 -259
  54. package/agentes/revisor-java-swl.md +257 -257
  55. package/agentes/revisor-kotlin-swl.md +273 -273
  56. package/agentes/revisor-nextjs-swl.md +281 -281
  57. package/agentes/revisor-php-swl.md +271 -271
  58. package/agentes/revisor-react-swl.md +278 -278
  59. package/agentes/revisor-rust-swl.md +346 -346
  60. package/agentes/revisor-seguridad-swl.md +399 -399
  61. package/agentes/revisor-swift-swl.md +268 -268
  62. package/agentes/revisor-typescript-swl.md +346 -346
  63. package/agentes/sre-swl.md +1 -1
  64. package/agentes/tdd-qa-swl.md +393 -393
  65. package/bin/lib/bot-comandos.js +1 -1
  66. package/bin/swl-ses.js +6 -0
  67. package/comandos/swl/adoptar-proyecto.md +14 -2
  68. package/comandos/swl/configurar-ci.md +8 -1
  69. package/comandos/swl/deuda-codigo.md +97 -97
  70. package/comandos/swl/discutir-fase.md +22 -118
  71. package/comandos/swl/fix.md +118 -0
  72. package/comandos/swl/nuevo-proyecto.md +54 -3
  73. package/comandos/swl/predecir.md +32 -2
  74. package/comandos/swl/seguridad.md +189 -0
  75. package/comandos/swl/status.md +5 -3
  76. package/habilidades/aprendizaje-continuo/SKILL.md +3 -1
  77. package/habilidades/discutir-fase/SKILL.md +84 -81
  78. package/habilidades/discutir-fase/recursos/plantilla-contexto.md +136 -0
  79. package/habilidades/doc-sync/SKILL.md +3 -1
  80. package/habilidades/doubt-driven-review/SKILL.md +15 -1
  81. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  82. package/habilidades/estructura-proyecto-claude/SKILL.md +11 -2
  83. package/habilidades/harness-claude-code/SKILL.md +3 -1
  84. package/habilidades/instalar-sistema/SKILL.md +3 -1
  85. package/habilidades/meta-reglas-extendido/SKILL.md +92 -0
  86. package/habilidades/meta-reglas-extendido/recursos/analisis-previo-tareas-grandes.md +186 -0
  87. package/habilidades/meta-reglas-extendido/recursos/analizar-directorios-antes-de-escribir.md +235 -0
  88. package/habilidades/meta-reglas-extendido/recursos/api-diseno.md +413 -0
  89. package/habilidades/meta-reglas-extendido/recursos/arquitectura.md +491 -0
  90. package/habilidades/meta-reglas-extendido/recursos/arreglar-al-detectar.md +264 -0
  91. package/habilidades/meta-reglas-extendido/recursos/debatir-antes-de-aceptar.md +152 -0
  92. package/habilidades/meta-reglas-extendido/recursos/git-workflow.md +259 -0
  93. package/habilidades/meta-reglas-extendido/recursos/gobernanza.md +291 -0
  94. package/habilidades/meta-reglas-extendido/recursos/memoria-consolidada.md +263 -0
  95. package/habilidades/meta-reglas-extendido/recursos/seguridad-agentes.md +443 -0
  96. package/habilidades/meta-reglas-extendido/recursos/sesiones-paralelas.md +190 -0
  97. package/habilidades/meta-reglas-extendido/recursos/sin-duplicacion-reglas-globales.md +179 -0
  98. package/habilidades/meta-reglas-extendido/recursos/skills-estandar.md +394 -0
  99. package/habilidades/meta-reglas-extendido/recursos/usar-code-review-graph.md +156 -0
  100. package/habilidades/meta-reglas-extendido/recursos/usar-context7.md +236 -0
  101. package/habilidades/meta-reglas-extendido/recursos/usar-sistema-swl.md +253 -0
  102. package/habilidades/meta-reglas-extendido/recursos/verificar-citas-normativas.md +527 -0
  103. package/habilidades/meta-skills-estandar/SKILL.md +3 -1
  104. package/habilidades/nuevo-proyecto/SKILL.md +20 -3
  105. package/habilidades/php-experto/SKILL.md +10 -3
  106. package/habilidades/{filament-admin/SKILL.md → php-experto/recursos/filament-admin.md} +23 -39
  107. package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -166
  108. package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -85
  109. package/habilidades/proceso-debate-adversarial/recursos/personas.md +5 -4
  110. package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -0
  111. package/hooks/check-update.js +19 -10
  112. package/hooks/contexto-subagente.js +68 -68
  113. package/hooks/degradacion-instintos.js +1 -1
  114. package/hooks/extraccion-aprendizajes.js +2 -2
  115. package/hooks/lib/briefing.js +3 -3
  116. package/hooks/lib/nudge-tracker.js +1 -1
  117. package/hooks/lib/otlp-exporter.js +1 -1
  118. package/hooks/lib/webhook-dedup.js +1 -1
  119. package/hooks/session-briefing.js +1 -1
  120. package/llms.txt +6 -6
  121. package/manifiestos/canonical-hashes.json +989 -0
  122. package/manifiestos/hooks-config.json +469 -469
  123. package/manifiestos/invariantes-criticos.json +30 -30
  124. package/manifiestos/modulos.json +168 -135
  125. package/manifiestos/perfiles.json +0 -2
  126. package/manifiestos/skills-lock.json +52 -59
  127. package/package.json +7 -5
  128. package/plantillas/github-workflows/README.md +15 -1
  129. package/plantillas/github-workflows/swl-devsecops.yml +70 -0
  130. package/plugin.json +5 -5
  131. package/reglas/analisis-previo-tareas-grandes.md +30 -156
  132. package/reglas/analizar-directorios-antes-de-escribir.md +30 -211
  133. package/reglas/api-diseno.md +28 -398
  134. package/reglas/arquitectura.md +35 -456
  135. package/reglas/arreglar-al-detectar.md +30 -230
  136. package/reglas/debatir-antes-de-aceptar.md +30 -143
  137. package/reglas/docs.md +7 -0
  138. package/reglas/estilo-codigo.md +9 -0
  139. package/reglas/fragmentos-compartidos.md +6 -0
  140. package/reglas/git-workflow.md +44 -240
  141. package/reglas/gobernanza.md +23 -262
  142. package/reglas/memoria-consolidada.md +34 -228
  143. package/reglas/performance.md +8 -0
  144. package/reglas/pruebas.md +12 -0
  145. package/reglas/seguridad-agentes.md +37 -418
  146. package/reglas/seguridad.md +12 -0
  147. package/reglas/sesiones-paralelas.md +29 -162
  148. package/reglas/sin-duplicacion-reglas-globales.md +25 -166
  149. package/reglas/skills-estandar.md +23 -373
  150. package/reglas/usar-code-review-graph.md +31 -140
  151. package/reglas/usar-context7.md +30 -208
  152. package/reglas/usar-sistema-swl.md +47 -242
  153. package/reglas/verificar-citas-normativas.md +47 -537
  154. package/scripts/actualizar.js +253 -253
  155. package/scripts/audit-tools/auditar-relleno-inventario.js +145 -0
  156. package/scripts/auditar-clases-conocidas.js +106 -0
  157. package/scripts/bootstrap-instintos.js +2 -2
  158. package/scripts/canario-hooks.js +166 -0
  159. package/scripts/cli/configurar-ci.js +2 -1
  160. package/scripts/evidencia-valor.js +93 -0
  161. package/scripts/field-report.js +1 -1
  162. package/scripts/generar-comandos.js +143 -0
  163. package/scripts/generar-inventario.js +236 -23
  164. package/scripts/generar-matriz-lenguajes.js +1 -1
  165. package/scripts/instalador.js +15 -1
  166. package/scripts/lib/configurar-ci.js +10 -3
  167. package/scripts/lib/detectar-runtime.js +12 -3
  168. package/scripts/lib/diary-entry.js +3 -1
  169. package/scripts/lib/drift-detector.js +1 -1
  170. package/scripts/lib/evidencia-valor.js +189 -0
  171. package/scripts/lib/expandir-targets.js +71 -71
  172. package/scripts/lib/frontmatter-md.js +63 -0
  173. package/scripts/lib/parsear-opciones.js +2 -0
  174. package/scripts/lib/prune-componentes.js +180 -0
  175. package/scripts/lib/reglas-globales-conocidas.json +16 -2
  176. package/scripts/lib/scoring-instintos.js +2 -2
  177. package/scripts/lib/toml-merge.js +204 -204
  178. package/scripts/lib/transformadores/claude.js +1 -1
  179. package/scripts/lib/transformadores/codex.js +1 -1
  180. package/scripts/lib/transformadores/copilot.js +1 -1
  181. package/scripts/lib/transformadores/cursor.js +1 -1
  182. package/scripts/lib/transformadores/gemini.js +22 -2
  183. package/scripts/lib/transformadores/opencode.js +1 -1
  184. package/scripts/mcp-server/auth.js +105 -105
  185. package/scripts/mcp-server/cache.js +106 -106
  186. package/scripts/prune.js +102 -0
  187. package/scripts/publicar.js +18 -2
  188. package/scripts/tui/pantallas/inspect.js +175 -175
  189. package/scripts/tui/pantallas/uninstall-wizard.js +210 -210
  190. package/scripts/tui/pantallas/update-wizard.js +234 -234
  191. package/scripts/tui/pantallas/welcome.js +189 -189
  192. package/habilidades/paid-media-tracking/SKILL.md +0 -269
  193. package/habilidades/paid-media-tracking/recursos/auditoria-tracking.md +0 -220
  194. package/habilidades/paid-media-tracking/recursos/google-ads-api.md +0 -215
  195. package/habilidades/tracking-measurement/SKILL.md +0 -239
  196. package/habilidades/tracking-measurement/recursos/consent-mode.md +0 -231
  197. package/habilidades/tracking-measurement/recursos/gtm-datalayer.md +0 -216
  198. package/habilidades/tracking-measurement/recursos/meta-capi.md +0 -262
@@ -1,228 +1,47 @@
1
1
  # Regla: Analizar la estructura de directorios antes de escribir documentación o MDs
2
2
 
3
- Esta regla es OBLIGATORIA y aplica cada vez que Claude va a **crear un
4
- directorio nuevo** o **escribir un archivo de documentación** (`.md`, `.json`
5
- de reporte, informe, ADR, plan, análisis, output de auditoría/diseño/research)
6
- en cualquier proyecto del usuario.
7
-
8
- Cierra un patrón conductual recurrente: el agente escribe un documento en un
9
- directorio nuevo elegido ad-hoc — en idioma o nombre distinto al que el
10
- proyecto ya usa para ese dominio — y produce **directorios paralelos
11
- divergentes** que fragmentan la memoria institucional.
12
-
13
- ---
3
+ Regla OBLIGATORIA antes de crear un directorio nuevo o escribir un archivo de
4
+ documentación (`.md`, `.json` de reporte, informe, ADR, plan, análisis, output
5
+ de auditoría/diseño/research). Cierra el patrón de directorios paralelos
6
+ divergentes que fragmentan la memoria institucional.
14
7
 
15
8
  ## Principio
16
9
 
17
10
  > Antes de crear un directorio nuevo o escribir un MD/reporte, **analiza
18
- > primero la estructura de directorios existente** (`Glob`/`ls`) para
19
- > descubrir la convención que el proyecto YA usa para ese dominio, y
20
- > **reúsala**. NUNCA crees un directorio paralelo para un dominio que ya
21
- > tiene uno. Solo cuando no exista precedente, crea uno nuevo siguiendo la
22
- > convención dominante del proyecto; como desempate del **nombre**, prefiere
23
- > español de México — salvo que exista un path canónico establecido (aunque
24
- > sea en inglés), en cuyo caso ese path gana.
25
-
26
- El costo de un `ls` antes de escribir es de 1 segundo. El costo de un
27
- directorio paralelo es: referencias colgadas, búsquedas que fallan, memoria
28
- institucional partida, y una sesión futura de depuración/unificación.
29
-
30
- ---
31
-
32
- ## Cuándo aplicar
33
-
34
- OBLIGATORIO antes de:
35
-
36
- - Escribir un reporte de auditoría, verificación, nemesis, revisión, análisis.
37
- - Escribir un documento de diseño/UX (propuesta, tokens, discovery, UI-SPEC).
38
- - Crear un ADR, plan, spec, runbook, research output.
39
- - Crear cualquier directorio nuevo bajo `.planning/`, `docs/`, o equivalente.
40
- - Persistir cualquier `.md`/`.json` que sea memoria del proyecto (no código).
41
-
42
- NO aplica cuando:
43
-
44
- - El comando/agente/herramienta **fija un path canónico de output** — en ese
45
- caso úsalo tal cual, no lo cuestiones (ej: un agente que pinea
46
- `.planning/audit/findings/iter-N/`).
47
- - El archivo es código fuente (sigue las convenciones del lenguaje/framework).
48
- - El usuario indicó explícitamente la ruta exacta donde escribir.
49
- - Es un archivo efímero de scratch que se borrará en el mismo turno.
50
-
51
- ---
52
-
53
- ## Cómo aplicar — protocolo de 4 pasos
54
-
55
- ### Paso 1 — Listar la estructura existente
56
-
57
- Antes de elegir dónde escribir:
58
-
59
- ```bash
60
- ls .planning/ # o el directorio raíz de docs del proyecto
61
- ls docs/
62
- ```
63
-
64
- O con Glob: `**/{audit,auditoria,diseno*,ux,design,research,specs}/`.
65
-
66
- ### Paso 2 — Buscar si el dominio ya tiene directorio (incluye variantes es/en)
67
-
68
- Pregúntate: ¿ya existe un directorio para este tipo de artefacto? Busca
69
- **variantes en ambos idiomas** y sinónimos:
70
-
71
- | Dominio | Variantes a buscar antes de crear |
72
- |---|---|
73
- | Auditoría | `audit/`, `auditoria/`, `auditorias/`, `findings/` |
74
- | Diseño/UX | `diseno/`, `diseno-visual/`, `ux/`, `ui/`, `design/` |
75
- | Investigación | `research/`, `investigacion/`, `knowledge/` |
76
- | Decisiones | `adrs/`, `adr/`, `decisiones/` |
77
- | Sesiones | `sessions/`, `sesiones/` |
78
- | Deuda | `DEUDAS.md`, `DEUDA-TECNICA.md`, `deuda/`, `debt/` |
79
-
80
- ### Paso 3 — Decidir el destino
81
-
82
- - **Si ya existe un directorio para el dominio** → escribe ahí. Punto. Aunque
83
- el nombre existente esté en el "idioma equivocado", reusarlo es superior a
84
- crear un paralelo. La consistencia gana sobre la preferencia de idioma.
85
- - **Si existe un path canónico de la herramienta** (swl-ses pinea
86
- `.planning/audit/`, `knowledge/outputs/`, `sessions/`, etc.) → ese path es
87
- la fuente de verdad. NO lo dupliques en español.
88
- - **Si NO existe precedente** → crea uno nuevo siguiendo la convención
89
- dominante del proyecto (mira cómo están nombrados los directorios hermanos).
90
-
91
- ### Paso 4 — Desempate del nombre (solo para directorios genuinamente nuevos)
92
-
93
- Cuando creas un nombre nuevo sin precedente ni path canónico:
94
-
95
- - Prefiere **español de México** (consistente con
96
- `~/.claude/rules/brevedad-output.md § Idioma obligatorio`): `diseno/`,
97
- `investigacion/`, `auditoria/` antes que `design/`, `research/`, `audit/`.
98
- - **PERO**: si el proyecto ya tiene una convención de idioma dominante para
99
- sus directorios (ej: swl-ses usa mayormente inglés: `audit/`, `knowledge/`,
100
- `sessions/`, `research/`), respeta ESA convención sobre la preferencia
101
- general — la coherencia intra-proyecto manda.
102
- - Identificadores técnicos (nombres que un comando/script consume como string)
103
- siguen la convención del consumidor, no la preferencia de idioma.
104
-
105
- ---
106
-
107
- ## La tensión es/en — cómo resolverla (no es "español siempre")
108
-
109
- "Preferir español" es un **desempate**, no un mandato absoluto. La jerarquía
110
- de decisión, de mayor a menor prioridad:
111
-
112
- 1. **Path canónico fijado por la herramienta** (gana siempre, aunque sea inglés).
113
- 2. **Directorio existente para el dominio** (reusar, aunque el idioma "no cuadre").
114
- 3. **Convención de idioma dominante del proyecto** (si el proyecto es es → es;
115
- si es en → en).
116
- 4. **Preferencia general español de México** (solo cuando 1-3 no aplican).
117
-
118
- Renombrar un path canónico inglés establecido a español **viola** esta regla:
119
- reintroduce divergencia en vez de eliminarla. El objetivo es UNA convención por
120
- proyecto, no "todo en español".
121
-
122
-
123
- ---
124
-
125
- ## Eje técnico-runtime vs vocabulario-de-dominio (refina la jerarquía)
126
-
127
- La jerarquía de arriba decide entre español e inglés *cuando todo el árbol usa
128
- un solo idioma*. Pero muchos proyectos adoptan una convención **mixta por
129
- categoría**: "identificadores técnicos en inglés, vocabulario de cara al usuario
130
- en el idioma del proyecto" (caso swl-ses). Ahí, **clasifica el directorio ANTES**
131
- de aplicar la jerarquía:
132
-
133
- - **Path runtime/técnico → inglés.** Telemetría, estado interno, caches, logs
134
- archivados, outputs de tooling, índices. No los lee el usuario final; los
135
- consume el código como string. Ej. en swl-ses: `.planning/evolution/`,
136
- `.planning/auto-evolution/`, `.planning/user-profile/`, `.planning/archive/`,
137
- `.planning/traces/`, `.planning/sessions/`, `.planning/audit/`.
138
- - **Vocabulario de dominio de cara al usuario → idioma del proyecto.** Artefactos
139
- acoplados a comandos/UX cuyo nombre el usuario lee y escribe. Ej. en swl-ses:
140
- `.planning/fases/` permanece **español** porque su comando es `/swl:planear-fase`
141
- (español, intocable). Cambiar el dir sin cambiar el comando crea una
142
- inconsistencia comando↔directorio *peor* que la divergencia que se quería evitar.
143
-
144
- **Regla de coherencia comando↔directorio:** el nombre del data dir debe espejar
145
- el idioma del comando que escribe en él. NUNCA partir un par comando↔directorio
146
- en dos idiomas.
147
-
148
- **Consolidar islas runtime SÍ es válido (no viola "no renombrar paths
149
- establecidos"):** si un proyecto con convención técnico-inglés tiene islas
150
- runtime en español (`evolucion/`, `archivo/`), alinearlas a inglés *reduce*
151
- divergencia — es lo opuesto a "renombrar `audit/` a español". La prohibición de
152
- renombrar aplica a mover *desde* la convención establecida, no *hacia* ella. Las
153
- islas runtime alineadas requieren shim de migración (renombrar el dir físico en
154
- proyectos que ya tienen datos) — ver `scripts/instalador.js § 6c-bis` en swl-ses.
155
-
156
-
157
- ---
158
-
159
- ## Anti-patrones explícitos
160
-
161
- - **Crear `ux/` cuando ya existe `diseno-visual/`** (o viceversa) sin haber
162
- hecho `ls .planning/` primero. Caso real: SIGM acumuló ambos por sesiones
163
- distintas que no verificaron el precedente.
164
- - **Crear `auditoria/` (es) cuando la herramienta pinea `audit/` (en)** como
165
- path canónico. Caso real: `/swl:verificar` y el consolidado de `/swl:nemesis`
166
- escribieron en `auditoria/` mientras los reportes por-router iban a
167
- `audit/findings/` — misma corrida, dos directorios.
168
- - **Renombrar `audit/`, `knowledge/`, `sessions/` a español** "porque la
169
- preferencia es español". Eso rompe paths canónicos y reintroduce divergencia.
170
- - **Escribir un reporte en un directorio top-level nuevo** sin revisar los
171
- directorios hermanos existentes.
172
- - **Asumir que no hay precedente sin buscar variantes es/en** del nombre del
173
- dominio.
174
-
175
- ---
176
-
177
- ## Excepciones legítimas
11
+ > primero la estructura existente** (`ls`/`Glob`) para descubrir la convención
12
+ > que el proyecto YA usa para ese dominio, y **reúsala**. NUNCA crees un
13
+ > directorio paralelo para un dominio que ya tiene uno. El `ls` cuesta 1
14
+ > segundo; el paralelo cuesta referencias colgadas y memoria partida.
178
15
 
179
- NO aplicar (o aplicar con criterio reducido) cuando:
16
+ ## Protocolo de 4 pasos
180
17
 
181
- 1. El comando/agente **pinea el path** úsalo, no analices.
182
- 2. El usuario dictó la ruta exacta.
183
- 3. Es un archivo de scratch efímero del mismo turno.
184
- 4. Es el **primer** documento del proyecto (no hay estructura que analizar
185
- todavía) — ahí creas la convención; hazlo deliberadamente y en español si
186
- no hay restricción técnica.
18
+ 1. **Listar** la estructura existente: `ls .planning/`, `ls docs/`, o Glob `**/{audit,auditoria,diseno*,ux,design,research,specs}/`.
19
+ 2. **Buscar** si el dominio ya tiene directorio en variantes es/en y sinónimos (audit/auditoria/findings, diseno/ux/design, research/investigacion/knowledge, adrs/decisiones, sessions/sesiones, deuda/debt).
20
+ 3. **Decidir**: directorio existente para el dominio → escribir ahí (aunque el idioma "no cuadre"); path canónico de la herramienta → usarlo tal cual, no duplicarlo en español; sin precedente → crear siguiendo la convención dominante del proyecto (mirar los directorios hermanos).
21
+ 4. **Desempate del nombre** (solo directorios genuinamente nuevos): español de México, salvo convención de idioma dominante del proyecto (la coherencia intra-proyecto manda) o identificador técnico cuya convención fija el consumidor.
187
22
 
188
- ---
23
+ ## Jerarquía de desempate es/en (mayor a menor prioridad)
189
24
 
190
- ## Checklist antes de escribir un MD/reporte o crear un directorio
25
+ 1. **Path canónico fijado por la herramienta** gana siempre, aunque sea inglés.
26
+ 2. **Directorio existente para el dominio** — reusar, aunque el idioma "no cuadre".
27
+ 3. **Convención de idioma dominante del proyecto** (es → es; en → en).
28
+ 4. **Español de México** — solo cuando 1-3 no aplican. Renombrar un path canónico establecido a español VIOLA esta regla: el objetivo es UNA convención por proyecto, no "todo en español".
191
29
 
192
- - [ ] Ejecuté `ls`/`Glob` sobre el directorio raíz de docs (`.planning/`, `docs/`).
193
- - [ ] Busqué variantes es/en del nombre del dominio (audit/auditoria,
194
- diseno/ux/design, research/investigacion).
195
- - [ ] Si existe directorio para el dominio → escribo ahí (no creo paralelo).
196
- - [ ] Si la herramienta pinea path canónico → uso ese (aunque sea inglés).
197
- - [ ] Si creo uno nuevo → sigue la convención de idioma dominante del proyecto;
198
- español como desempate solo sin precedente ni path canónico.
199
- - [ ] No reintroduje divergencia renombrando un path canónico establecido.
30
+ ## Eje técnico-runtime vs vocabulario-de-dominio
200
31
 
201
- ---
32
+ - Clasificar ANTES de aplicar la jerarquía: paths runtime/técnicos (telemetría, caches, logs, outputs de tooling, índices) → inglés; vocabulario de cara al usuario (artefactos acoplados a comandos/UX) → idioma del proyecto.
33
+ - NUNCA partir un par comando↔directorio en dos idiomas — el data dir espeja el idioma del comando que escribe en él. Consolidar islas runtime *hacia* la convención establecida SÍ es válido (con shim de migración si ya hay datos).
202
34
 
203
- ## Origen de esta regla
35
+ ## Cuándo aplica y excepciones
204
36
 
205
- Sesión 2026-05-31, proyecto SIGM. Al depurar `.planning/` se detectaron **dos
206
- pares de directorios divergentes** creados por sesiones distintas para el mismo
207
- dominio, en idiomas distintos:
37
+ - Aplica antes de: reportes de auditoría/verificación/nemesis, docs de diseño/UX, ADRs, planes, specs, runbooks, cualquier `.md`/`.json` que sea memoria del proyecto (no código).
38
+ - NO aplica: el comando/herramienta pinea el path canónico (úsalo sin cuestionar), el usuario dictó la ruta exacta, o es scratch efímero del mismo turno.
39
+ - Primer documento del proyecto (sin estructura previa): ahí creas la convención — deliberadamente, en español si no hay restricción técnica.
208
40
 
209
- - `.planning/audit/` (en, canónico swl-ses) vs `.planning/auditoria/` (es,
210
- ad-hoc). La misma corrida de `/swl:nemesis` quedó partida entre ambos; 8
211
- documentos con referencias colgadas tras la consolidación.
212
- - `.planning/ux/` (en, 2026-05-30) vs `.planning/diseno-visual/` (es,
213
- 2026-05-11). La sesión 05-30 creó `ux/` sin verificar que `diseno-visual/`
214
- ya existía.
41
+ ## Anti-patrones
215
42
 
216
- Causa raíz dual: (a) **conductual** el agente no analiza la estructura
217
- existente antes de escribir (esta regla); (b) **de herramienta** varios
218
- comandos/agentes de swl-ses no fijan path canónico de output (ticket
219
- `DT-PLANNING-OUTPUT-PATHS` en swl-ses). Esta regla ataca el lado conductual y
220
- aplica a todo proyecto del usuario, use o no swl-ses.
43
+ - Crear `ux/` cuando ya existe `diseno-visual/` (o viceversa) sin `ls .planning/` previo.
44
+ - Renombrar un path canónico establecido (`audit/`, `knowledge/`, `sessions/`) a español "porque la preferencia es español".
45
+ - Asumir que no hay precedente sin buscar variantes es/en del nombre del dominio.
221
46
 
222
- Relación con otras reglas:
223
- - `~/.claude/rules/brevedad-output.md § Idioma obligatorio` — la preferencia
224
- español que esta regla usa como desempate.
225
- - `~/.claude/rules/memoria-consolidada.md § no-duplicación` — un dato vive en
226
- un solo canal; esta regla extiende el principio a directorios.
227
- - `~/.claude/rules/sin-duplicacion-reglas-globales.md` — analogía: no duplicar
228
- contenido que ya vive en su lugar canónico.
47
+ Detalle extendido (tabla completa de variantes por dominio, jerarquía desarrollada, eje técnico-runtime con ejemplos swl-ses, casos reales SIGM, checklist y origen): `Skill("meta-reglas-extendido")` → `recursos/analizar-directorios-antes-de-escribir.md`.