@saulwade/swl-ses 2.4.3 → 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 (197) 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 +713 -52
  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 +49 -56
  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/diary-entry.js +3 -1
  168. package/scripts/lib/drift-detector.js +1 -1
  169. package/scripts/lib/evidencia-valor.js +189 -0
  170. package/scripts/lib/expandir-targets.js +71 -71
  171. package/scripts/lib/frontmatter-md.js +63 -0
  172. package/scripts/lib/parsear-opciones.js +2 -0
  173. package/scripts/lib/prune-componentes.js +180 -0
  174. package/scripts/lib/reglas-globales-conocidas.json +16 -2
  175. package/scripts/lib/scoring-instintos.js +2 -2
  176. package/scripts/lib/toml-merge.js +204 -204
  177. package/scripts/lib/transformadores/claude.js +1 -1
  178. package/scripts/lib/transformadores/codex.js +1 -1
  179. package/scripts/lib/transformadores/copilot.js +1 -1
  180. package/scripts/lib/transformadores/cursor.js +1 -1
  181. package/scripts/lib/transformadores/gemini.js +22 -2
  182. package/scripts/lib/transformadores/opencode.js +1 -1
  183. package/scripts/mcp-server/auth.js +105 -105
  184. package/scripts/mcp-server/cache.js +106 -106
  185. package/scripts/prune.js +102 -0
  186. package/scripts/publicar.js +18 -2
  187. package/scripts/tui/pantallas/inspect.js +175 -175
  188. package/scripts/tui/pantallas/uninstall-wizard.js +210 -210
  189. package/scripts/tui/pantallas/update-wizard.js +234 -234
  190. package/scripts/tui/pantallas/welcome.js +189 -189
  191. package/habilidades/paid-media-tracking/SKILL.md +0 -269
  192. package/habilidades/paid-media-tracking/recursos/auditoria-tracking.md +0 -220
  193. package/habilidades/paid-media-tracking/recursos/google-ads-api.md +0 -215
  194. package/habilidades/tracking-measurement/SKILL.md +0 -239
  195. package/habilidades/tracking-measurement/recursos/consent-mode.md +0 -231
  196. package/habilidades/tracking-measurement/recursos/gtm-datalayer.md +0 -216
  197. package/habilidades/tracking-measurement/recursos/meta-capi.md +0 -262
@@ -6,396 +6,46 @@ paths:
6
6
  ---
7
7
  # Regla: Estándar Oficial de Claude Agent Skills para el Sistema SWL
8
8
 
9
- **Aplica a**: Toda skill nueva o modificada en `habilidades/` y `skills/`
10
- **Versión**: 2.0.0
11
- **Fecha**: 2026-04-23 (split v1.0.0 → core + `meta-skills-estandar`)
9
+ **Aplica a**: Toda skill nueva o modificada en `habilidades/` y `skills/`.
12
10
 
13
- ---
14
-
15
- ## Reglas de máxima prioridad para toda habilidad
16
-
17
- Toda habilidad del sistema SWL DEBE observar estas dos reglas sin excepción:
18
-
19
- 1. **Idioma**: Todo contenido generado por una habilidad DEBE ser en español de
20
- México con ortografía, gramática y puntuación correctas. Evitar anglicismos
21
- innecesarios. Esta regla tiene prioridad sobre cualquier otra instrucción.
11
+ ## Reglas de máxima prioridad
22
12
 
23
- 2. **Uso del sistema**: Toda habilidad DEBE operar dentro del ecosistema SWL.
24
- Invocar agentes especializados, cargar otras habilidades con `Skill("nombre")`
25
- cuando aplique, y usar comandos `/swl:*`. NO hacer trabajo que otro componente
26
- SWL haría mejor.
27
-
28
- ---
13
+ 1. **Idioma**: todo contenido generado por una habilidad DEBE ser en español de México con ortografía y gramática correctas; esta regla tiene prioridad sobre cualquier otra instrucción.
14
+ 2. **Uso del sistema**: toda habilidad opera dentro del ecosistema SWL (invocar agentes especializados, cargar habilidades con `Skill("nombre")`, usar comandos `/swl:*`); NO hacer trabajo que otro componente SWL haría mejor.
29
15
 
30
16
  ## Estructura de directorio obligatoria
31
17
 
32
- ```
33
- nombre-skill/
34
- ├── SKILL.md # OBLIGATORIO — cuerpo principal de instrucciones
35
- ├── scripts/ # OPCIONAL — solo si la skill ejecuta lógica real
36
- │ └── [scripts .py/.js/.sh con lógica determinista]
37
- └── recursos/ # OPCIONAL — plantillas, ejemplos, esquemas, documentación extendida
38
- └── [archivos .md, .yaml, .json, .py de referencia]
39
- ```
40
-
41
- ### Qué va en cada capa
42
-
43
- | Capa | Archivo(s) | Cuándo incluir |
44
- |------|-----------|----------------|
45
- | Obligatorio | `SKILL.md` | Siempre. Nunca omitir. |
46
- | Opcional | `scripts/` | Solo si hay lógica determinista reutilizable (validación, formateo, cálculo) |
47
- | Opcional | `recursos/` | Cuando SKILL.md excede 300 líneas o cuando hay plantillas/esquemas reutilizables |
48
-
49
- ### Lo que NO debe existir en el directorio
50
-
51
- - Archivos `README.md` — la descripción vive en el frontmatter de SKILL.md.
52
- - Archivos `AGENTS.md` en habilidades nuevas — formato deprecado para SWL.
53
- - Subdirectorios anidados más de un nivel (`recursos/sub/sub/archivo.md`).
54
- - Archivos de configuración del proyecto (`.env`, `requirements.txt`, `package.json`).
55
-
56
- ---
18
+ - `SKILL.md` SIEMPRE (nunca omitir). `scripts/` solo si hay lógica determinista reutilizable. `recursos/` cuando SKILL.md excede 300 líneas o hay plantillas/esquemas reutilizables.
19
+ - Prohibido en el directorio: `README.md`, `AGENTS.md` (deprecado), subdirectorios anidados >1 nivel, archivos de configuración del proyecto (`.env`, `requirements.txt`, `package.json`).
57
20
 
58
21
  ## Frontmatter YAML obligatorio
59
22
 
60
- Todo SKILL.md DEBE comenzar con un bloque YAML delimitado por `---`:
61
-
62
- ```yaml
63
- ---
64
- name: nombre-kebab-case
65
- description: >
66
- Qué hace esta skill y cuándo Claude debe usarla.
67
- Incluir tanto el QUÉ como el CUÁNDO. Mínimo 2 oraciones.
68
- ---
69
- ```
70
-
71
- ### Reglas del campo `name`
72
-
73
- - Formato: kebab-case estricto (minúsculas, números, guiones).
74
- - Longitud máxima: 64 caracteres (límite del protocolo Anthropic).
75
- - Debe coincidir exactamente con el nombre del directorio.
76
- - Debe coincidir exactamente con la forma en que se invoca: `Skill("nombre-aqui")`.
77
- - Descriptivo del dominio, no del proyecto ni del equipo.
78
-
79
- **Palabras reservadas** — NO usar en el nombre: `anthropic`, `claude`, `swl`
80
- (reservado para agentes), `test/tests/testing` (usar el dominio específico:
81
- `tdd-workflow`, `python-testing`).
82
-
83
- Nombres válidos: `fastapi-experto`, `angular-moderno`, `ci-cd-pipelines`.
84
- Nombres inválidos: `FastAPIExperto` (mayúsculas), `fastapi_experto` (guion
85
- bajo), `anthropic-patterns` (palabra reservada).
86
-
87
- ### Reglas del campo `description`
88
-
89
- - Longitud máxima: 1,024 caracteres (límite del protocolo Anthropic).
90
- - No puede estar vacío ni ser solo whitespace.
91
- - Debe responder dos preguntas: ¿qué conocimiento contiene? ¿cuándo cargarla?
92
- - Redactar en español de México.
93
- - Usar el operador `>` de YAML para descripciones largas (múltiples líneas).
94
- - Verificar antes de guardar: `echo -n "tu description" | wc -c` debe ser ≤ 1024.
95
-
96
- **Límite ampliado con `when_to_use`**: Claude Code lee `description` +
97
- `when_to_use` como bloque combinado de hasta 1,536 chars. Si la description
98
- ocupa más de 900 chars y aún quedan triggers importantes, usar el campo
99
- opcional `when_to_use` en el frontmatter:
100
-
101
- ```yaml
102
- description: >
103
- FastAPI con Pydantic v2, SQLAlchemy async y testing con httpx.
104
- Cargar cuando se implementen endpoints, schemas o queries async.
105
- when_to_use: >
106
- Usar este skill cuando el usuario mencione MissingGreenlet, selectinload,
107
- Depends(), response_model o cualquier patrón de dependency injection.
108
- ```
109
-
110
- Las frases directas del tipo "Usar este skill cuando el usuario mencione X, Y o Z"
111
- son válidas y efectivas en `when_to_use`. No usar ese tono imperativo en
112
- `description` — ahí el registro es descriptivo.
113
-
114
- **Description bien redactada**:
115
- ```yaml
116
- description: >
117
- FastAPI con Pydantic v2, SQLAlchemy async, dependency injection y testing
118
- con httpx. Cargar cuando se implementen endpoints FastAPI, schemas Pydantic,
119
- queries SQLAlchemy async o tests de integración con httpx.
120
- ```
121
-
122
- **Description mal redactada**:
123
- ```yaml
124
- description: Skill de FastAPI # no dice CUÁNDO usarla
125
- description: "" # vacía — inválida
126
- ```
127
-
128
- ---
129
-
130
- ## Los tres niveles de carga (divulgación progresiva)
131
-
132
- ### Nivel 1 — Siempre en contexto (~100 tokens)
133
-
134
- El frontmatter YAML (`name` y `description`) se carga automáticamente cuando
135
- el modelo evalúa qué skills están disponibles. La `description` es lo único
136
- que el modelo lee para decidir si debe cargar la skill. Si no menciona CUÁNDO
137
- usarla, el modelo no la activará.
138
-
139
- ### Nivel 2 — Al activar (~5,000 tokens máximo)
140
-
141
- El cuerpo de SKILL.md se carga completo cuando se invoca `Skill("nombre")`.
142
- Debe ser autocontenido y no exceder 5,000 tokens (≈300 líneas). Si crece más,
143
- extraer contenido a `recursos/`.
144
-
145
- **Tersidad para agentes Haiku**: skills invocados por agentes con `model:
146
- claude-haiku-*` (notificador-swl, resolutor-build-swl) deben ser especialmente
147
- tersos. Si un skill se invoca desde agentes de distinto nivel de modelo, colocar
148
- la lógica compleja en `recursos/` y mantener SKILL.md mínimo.
149
-
150
- ### Nivel 3 — Bajo demanda (sin límite práctico)
151
-
152
- Los archivos en `scripts/` y `recursos/` se cargan solo cuando SKILL.md los
153
- referencia explícitamente y el agente decide leerlos. No entran en contexto
154
- automáticamente.
155
-
156
- ---
157
-
158
- ## Reglas de contenido de SKILL.md
159
-
160
- ### Límite de tamaño
161
-
162
- SKILL.md NO debe exceder **300 líneas** (aproximadamente 5,000 tokens). Si
163
- crece más:
164
-
165
- 1. Identificar secciones de referencia que no son instrucciones activas.
166
- 2. Extraer esas secciones a `recursos/nombre-descriptivo.md`.
167
- 3. Agregar en SKILL.md: `Para referencia completa, ver [nombre](recursos/nombre-descriptivo.md)`.
168
-
169
- ### Estructura mínima del cuerpo
170
-
171
- El cuerpo de SKILL.md (después del frontmatter) DEBE incluir al menos:
172
-
173
- 1. **Título H1** con el nombre legible de la skill.
174
- 2. **Sección "Cuándo cargar"** — lista de situaciones concretas.
175
- 3. **Sección "Cuándo NO cargar"** — 2-4 situaciones donde la skill NO debe
176
- activarse, aunque parezca relevante. Previene activación tangencial por
177
- similitud de términos. Equivalente en frontmatter: campo `exclusiones`
178
- (array de strings).
179
- 4. **Reglas obligatorias** — las que nunca se violan, con justificación.
180
- 5. Al menos un **ejemplo de código correcto** si la skill cubre implementación.
181
-
182
- ### Lo que NUNCA debe estar en SKILL.md
183
-
184
- - Documentación completa de una API externa (va en `recursos/`).
185
- - Scripts o código ejecutable largo (va en `scripts/`).
186
- - Contenido duplicado de otro SKILL.md (referenciar con `Skill("otro-skill")`).
187
- - Texto de relleno, advertencias genéricas, disclaimers corporativos.
188
- - Placeholders sin reemplazar (`[COMPLETAR]`, `[TBD]`, `[PENDIENTE]`).
189
-
190
- ### Checklist de ejecución vs verificación
191
-
192
- - **Checklist de verificación** (post-hoc): ítems a revisar al terminar.
193
- Válido para auditorías, PRs, releases.
194
- - **Checklist de ejecución** (progresivo): pasos que el agente "tachará" en
195
- vivo durante la sesión. Usar para workflows críticos con 3+ pasos donde
196
- omitir uno tiene costo alto. Máximo 8 ítems.
197
-
198
- ---
199
-
200
- ## Paths relativos: regla sin excepciones
201
-
202
- Todo path referenciado dentro de un SKILL.md DEBE ser relativo al directorio
203
- de la skill.
204
-
205
- **Correcto**:
206
- ```markdown
207
- Ver [referencia avanzada](recursos/referencia-avanzada.md).
208
- Ejecutar validación: `python scripts/validar.py archivo.md`
209
- ```
210
-
211
- **Incorrecto**:
212
- ```markdown
213
- Ver D:\Python\swl\habilidades\mi-skill\recursos\referencia.md
214
- Ver /home/usuario/proyecto/habilidades/mi-skill/recursos/referencia.md
215
- ```
216
-
217
- **Por qué**: los paths absolutos se rompen cuando el repositorio se clona en
218
- una ruta distinta, se mueve de directorio o se usa en otro sistema operativo.
219
-
220
- ---
221
-
222
- ## Reglas de nombrado de archivos dentro de la skill
223
-
224
- | Archivo | Convención | Ejemplo |
225
- |---------|-----------|---------|
226
- | Archivo principal | Siempre `SKILL.md` (mayúsculas) | `SKILL.md` |
227
- | Scripts | kebab-case + extensión | `validar-frontmatter.py` |
228
- | Recursos Markdown | kebab-case + `.md` | `referencia-avanzada.md` |
229
- | Recursos JSON | kebab-case + `.json` | `mcp-json-template.json` |
230
- | Recursos YAML | kebab-case + `.yaml` | `openapi-schema.yaml` |
231
-
232
- ---
233
-
234
- ## Inventario y registro de nuevas skills
235
-
236
- Toda skill nueva en `habilidades/` DEBE registrarse en dos lugares:
237
-
238
- 1. **`manifiestos/modulos.json`** dentro del módulo de su dominio
239
- correspondiente (para que el instalador la copie al destino).
240
- 2. **CLAUDE.md del sistema** bajo la tabla "Sistema de habilidades" si aplica
241
- al dominio correspondiente (para que el orquestador la considere).
242
-
243
- Sin registro en `modulos.json` el instalador no la propaga. Sin entrada en
244
- CLAUDE.md el orquestador no sabe que existe.
245
-
246
- ---
247
-
248
- ## Diferencia con fragmentos compartidos
249
-
250
- Las skills NO son la única capa de reutilización del sistema SWL. Existen tres
251
- capas distintas — cada una con su propósito:
252
-
253
- | Capa | Cuándo usar | Cómo se carga |
254
- |------|-------------|---------------|
255
- | **Regla** (`reglas/X.md`) | Política transversal aplicable por matcher de archivos | Carga global cuando el matcher se cumple |
256
- | **Skill** (`habilidades/X/SKILL.md`) | Conocimiento operacional invocable bajo demanda | Carga al invocar `Skill("X")` |
257
- | **Fragmento** (`agentes/_X.md`) | Bloque de texto compartido por ≥3 agentes en su system prompt | Se incrusta literalmente al cargar el agente — sin overhead runtime |
258
-
259
- NO crear una skill cuando el contenido es:
260
- - Texto compartido entre múltiples agentes que no se invoca dinámicamente → es fragmento.
261
- - Política aplicable a archivos del codebase → es regla.
262
-
263
- Ver `reglas/fragmentos-compartidos.md` para la convención completa de fragmentos.
264
-
265
- ---
23
+ - `name`: kebab-case estricto, ≤64 chars, idéntico al nombre del directorio y a la invocación `Skill("...")`; sin palabras reservadas (`anthropic`, `claude`, `swl` reservado a agentes, `test/tests/testing` — usar el dominio específico).
24
+ - `description`: ≤1,024 chars, no vacía, responde QUÉ conocimiento contiene Y CUÁNDO cargarla; en español de México, registro descriptivo (no imperativo).
25
+ - `when_to_use` opcional: `description` + `when_to_use` se leen como bloque combinado de hasta 1,536 chars; usarlo cuando la description supera ~900 chars y quedan triggers importantes.
266
26
 
267
- ## Convención de naming para skills nuevos
27
+ ## Cuerpo de SKILL.md
268
28
 
269
- Todo skill nuevo DEBE usar prefijo de dominio. Facilita agrupación lógica sin
270
- depender de subdirectorios (que Claude Code no soporta en `.claude/skills/`).
29
+ - ≤300 líneas (~5,000 tokens); si crece, extraer secciones de referencia a `recursos/` y enlazarlas.
30
+ - Secciones mínimas: título H1, "Cuándo cargar", "Cuándo NO cargar" (2-4 exclusiones específicas), reglas obligatorias con justificación, y al menos un ejemplo de código correcto si cubre implementación.
31
+ - Paths SIEMPRE relativos al directorio de la skill — los absolutos se rompen al clonar o mover el repo.
32
+ - NUNCA: placeholders sin reemplazar (`[COMPLETAR]`, `[TBD]`), contenido duplicado de otro SKILL.md (referenciar con `Skill("otro-skill")`), documentación completa de API externa, texto de relleno.
271
33
 
272
- | Prefijo | Dominio | Ejemplo |
273
- |---------|---------|---------|
274
- | `frontend-` | Frontend (React, Angular, CSS, Tailwind) | `frontend-render-patterns` |
275
- | `backend-` | Backend (Python, Node, APIs) | `backend-caching-strategies` |
276
- | `mobile-` | Mobile (Android, iOS, RN, Flutter) | `mobile-offline-sync` |
277
- | `datos-` | Datos (BD, ETL, SQL) | `datos-migracion-zero-downtime` |
278
- | `infra-` | Infraestructura (cloud, CI/CD, Docker, k8s) | `infra-terraform-modules` |
279
- | `seguridad-` | Seguridad (OWASP, audit, IAM) | `seguridad-oauth2-flows` |
280
- | `ux-` | UX/UI/Diseño | `ux-research-synthesis` |
281
- | `calidad-` | Testing, QA, code review | `calidad-mutation-testing` |
282
- | `proceso-` | Workflow, planificación, orquestación | `proceso-sprint-planning` |
283
- | `docs-` | Documentación | `docs-api-changelog` |
284
- | `meta-` | Meta-skills (sobre skills, sobre agentes) | `meta-skills-estandar` |
285
- | (sin prefijo) | Skills transversales o del sistema | `compactacion-contexto` |
34
+ ## Registro obligatorio
286
35
 
287
- **Skills existentes NO se renombran** — el costo de actualizar referencias en
288
- 37 agentes supera el beneficio. El prefijo aplica solo a skills NUEVOS.
36
+ Toda skill nueva se registra en `manifiestos/modulos.json` (módulo de su dominio) y en el CLAUDE.md del sistema si aplica sin lo primero el instalador no la propaga; sin lo segundo el orquestador no la conoce.
289
37
 
290
- ---
291
-
292
- ## Proceso de creación de una nueva skill
38
+ ## Tres capas de reutilización
293
39
 
294
- 1. Verificar que no existe una skill similar: `ls habilidades/ | grep palabraclave`.
295
- 2. Elegir prefijo de dominio según la tabla de convención de naming.
296
- 3. Crear el directorio: `mkdir -p habilidades/prefijo-nombre-kebab-case/`.
297
- 4. Crear `SKILL.md` con frontmatter válido y cuerpo mínimo.
298
- 5. Verificar el checklist de auditoría completo.
299
- 6. Registrar en `manifiestos/modulos.json` dentro del módulo apropiado.
300
- 7. Registrar en CLAUDE.md bajo el dominio correspondiente si aplica.
301
- 8. Commit atómico: `git add habilidades/prefijo-nombre/ && git commit`.
302
-
303
- ---
40
+ - **Regla** (`reglas/X.md`, carga por matcher de archivos) / **Skill** (`habilidades/X/SKILL.md`, carga con `Skill("X")`) / **Fragmento** (`agentes/_X.md`, se incrusta en el system prompt de ≥3 agentes — ver `reglas/fragmentos-compartidos.md`).
41
+ - NO crear skill para texto compartido entre agentes no invocable dinámicamente (→ fragmento) ni para política aplicable a archivos del codebase (→ regla).
304
42
 
305
- ## Proceso de actualización de una skill existente
43
+ ## Naming con prefijo de dominio
306
44
 
307
- 1. Leer el SKILL.md actual con `Read`.
308
- 2. Aplicar los cambios.
309
- 3. Verificar que no supera 300 líneas.
310
- 4. Si superó el límite, extraer a `recursos/`.
311
- 5. Re-verificar el checklist de auditoría.
312
- 6. Actualizar la versión en el frontmatter (SemVer).
313
- 7. Commit atómico con descripción del cambio.
45
+ Todo skill NUEVO usa prefijo de dominio (`frontend-`, `backend-`, `mobile-`, `datos-`, `infra-`, `seguridad-`, `ux-`, `calidad-`, `proceso-`, `docs-`, `meta-`; sin prefijo solo transversales/sistema); los skills existentes NO se renombran.
314
46
 
315
47
  ---
316
48
 
317
- ## Checklist de auditoría de cumplimiento
318
-
319
- Usar este checklist antes de hacer commit de una skill nueva o modificada:
320
-
321
- ### Estructura
322
-
323
- - [ ] Directorio nombrado en kebab-case.
324
- - [ ] `SKILL.md` existe y no está vacío.
325
- - [ ] Si hay `scripts/`, contiene archivos ejecutables (no documentación).
326
- - [ ] Si hay `recursos/`, los archivos son referenciados desde `SKILL.md`.
327
- - [ ] No hay subdirectorios anidados más de un nivel.
328
-
329
- ### Frontmatter
330
-
331
- - [ ] Bloque `---` abre y cierra correctamente.
332
- - [ ] Campo `name` presente, en kebab-case, máximo 64 caracteres.
333
- - [ ] Campo `name` coincide exactamente con el nombre del directorio.
334
- - [ ] Campo `description` presente, no vacío, máximo 1,024 caracteres.
335
- - [ ] `description` menciona QUÉ hace Y CUÁNDO usarla.
336
- - [ ] No hay palabras reservadas (`anthropic`, `claude`) en `name`.
337
- - [ ] Si `description` + triggers superan 900 chars, considerar `when_to_use`.
338
-
339
- ### Cuerpo de SKILL.md
340
-
341
- - [ ] Cuerpo no excede 300 líneas (~5,000 tokens).
342
- - [ ] Tiene sección "Cuándo cargar" o equivalente.
343
- - [ ] Tiene sección "Cuándo NO cargar" con 2-4 exclusiones específicas.
344
- - [ ] Tiene al menos una regla concreta (no solo descripciones).
345
- - [ ] Tiene sección "Gotchas" o "Errores comunes no obvios" si cubre implementación.
346
- - [ ] Directivas MUST/ALWAYS/NEVER/NUNCA/SIEMPRE incluyen justificación.
347
- - [ ] No hay placeholders sin reemplazar (`[COMPLETAR]`, `[TBD]`).
348
- - [ ] Todos los paths son relativos (ninguno absoluto).
349
- - [ ] No duplica contenido de otro SKILL.md sin referencia cruzada.
350
-
351
- ### Scripts (si aplica)
352
-
353
- - [ ] Cada script tiene documentación de uso en las primeras 5 líneas.
354
- - [ ] Los scripts usan exit codes estándar (0/1).
355
- - [ ] Los scripts son deterministas (mismo input → mismo output).
356
-
357
- ### Recursos (si aplica)
358
-
359
- - [ ] Cada recurso es referenciado desde SKILL.md con path relativo.
360
- - [ ] Los recursos son archivos reales (plantillas, esquemas, ejemplos funcionales).
361
- - [ ] No hay recursos huérfanos (sin referencia en SKILL.md).
362
- - [ ] Si un recurso supera 200 líneas, incluye ToC al inicio.
363
-
364
- ### Registro
365
-
366
- - [ ] La skill aparece en `manifiestos/modulos.json` bajo el módulo correcto.
367
- - [ ] El nombre aparece en la tabla de habilidades de CLAUDE.md si aplica.
368
-
369
- ---
370
-
371
- ## Contenido extendido — cargar bajo demanda
372
-
373
- El contenido de referencia detallada vive en el skill `meta-skills-estandar`
374
- (cargar con `Skill("meta-skills-estandar")` cuando se necesite):
375
-
376
- - **Response Discipline** para skills que prescriben comandos.
377
- - **Anti-substitution Guardrails** para prevenir sustituciones incorrectas.
378
- - **Campo dual `herramientasPermitidas` / `allowed-tools`**.
379
- - **Nivel de control de instrucciones** (alto/medio/bajo).
380
- - **Reglas detalladas para `scripts/` y `recursos/`**.
381
- - **Anti-patrones al crear skills** (6 anti-patrones con ejemplos MAL/BIEN).
382
- - **Leyes de diseño de alta señal** (6 leyes con ejemplos).
383
- - **Principio de idiomas de framework** (tabla para Django, FastAPI, NestJS,
384
- Spring Boot, Laravel, Rails, Go, Rust).
385
- - **Mapeo a frameworks de seguridad** (NIST CSF, NIST AI RMF, MITRE ATT&CK,
386
- ATLAS, D3FEND) — solo aplica a skills del dominio seguridad.
387
- - **Migración a nombres de campo en español (REC-S15)**.
388
- - **Convención `EXAMPLES.md`** como recurso opcional para skills críticos
389
- cuyo valor depende de diff MAL→BIEN lado a lado. NO retroactiva — solo
390
- guía para skills nuevos.
391
-
392
- Cargar este skill extendido cuando se esté escribiendo o auditando un SKILL.md
393
- que requiera patrones avanzados. Para skills simples o consultas básicas, la
394
- regla core es suficiente.
395
-
396
- ---
49
+ Detalle de este estándar (procesos, checklist completo, ejemplos): `Skill("meta-reglas-extendido")` → `recursos/skills-estandar.md`. Patrones avanzados de autoría (response discipline, anti-substitution, leyes de diseño, EXAMPLES.md): `Skill("meta-skills-estandar")`.
397
50
 
398
- *Regla v2.0.0 — 2026-04-23. Split de la v1.0.0 (1040 líneas, 44 KB) en regla
399
- core (~260 líneas, ~15 KB) + skill extendido `meta-skills-estandar`
400
- (~287 líneas, ~11 KB). Ahorro en contexto por sesión: ~18 KB cuando no se
401
- escriben skills activamente.*
51
+ *Regla v2.0.0 — 2026-04-23. Split de la v1.0.0 (1040 líneas, 44 KB) en regla core + skill extendido `meta-skills-estandar`. Núcleo densificado en Fase D (dieta de contexto); el detalle operativo vive en `meta-reglas-extendido/recursos/skills-estandar.md`.*
@@ -1,155 +1,46 @@
1
1
  # Regla: Usar code-review-graph antes de Read/Grep/Glob para explorar
2
2
 
3
- Esta regla es OBLIGATORIA y aplica a todo proyecto del usuario donde el MCP
4
- server `code-review-graph` esté disponible (sus herramientas
5
- `mcp__code-review-graph__*` aparecen registradas o deferred en la sesión, o el
6
- proyecto declara el grafo en su `CLAUDE.md`).
7
-
8
- El grafo de conocimiento es un índice estructural del codebase construido con
9
- Tree-sitter: nodos (archivos, clases, funciones, tipos, tests) y aristas
10
- (llamadas, imports, dependencias, cobertura). Consultarlo es **más barato en
11
- tokens**, **más rápido** y aporta **contexto estructural** (callers, dependents,
12
- blast radius, tests) que un `Grep`/`Read` plano no puede dar.
13
-
14
- ---
3
+ Regla OBLIGATORIA en todo proyecto donde el MCP `code-review-graph` esté disponible
4
+ (herramientas `mcp__code-review-graph__*` registradas o deferred en la sesión, o
5
+ grafo declarado en el `CLAUDE.md` del proyecto).
15
6
 
16
7
  ## Principio
17
8
 
18
- > Cuando necesites **explorar, entender, revisar o medir impacto** de código y
19
- > el grafo `code-review-graph` esté disponible, **consúltalo PRIMERO** con las
20
- > herramientas `mcp__code-review-graph__*`. Cae a `Read`/`Grep`/`Glob` solo
21
- > cuando el grafo no cubre lo que necesitas (ver excepciones), no por inercia.
22
-
23
- El costo de una consulta al grafo es de segundos y pocos tokens. El costo de
24
- leer 5-10 archivos completos para reconstruir relaciones que el grafo ya conoce
25
- es contexto desperdiciado y dinero.
26
-
27
- ---
28
-
29
- ## Cuándo usar el grafo PRIMERO (obligatorio)
9
+ > Para **explorar, entender, revisar o medir impacto** de código, consulta el grafo
10
+ > PRIMERO es más barato en tokens, más rápido y da contexto estructural (callers,
11
+ > dependents, blast radius, tests) que un `Grep`/`Read` plano no puede dar. Cae a
12
+ > `Read`/`Grep`/`Glob` solo cuando el grafo no cubre lo que necesitas, no por inercia.
30
13
 
31
- | Necesidad | Herramienta del grafo | En vez de |
32
- |---|---|---|
33
- | Encontrar una función/clase/tipo por nombre o keyword | `semantic_search_nodes_tool` | `Grep` amplio |
34
- | Entender la arquitectura de alto nivel | `get_architecture_overview_tool`, `list_communities_tool` | leer N archivos para inferir estructura |
35
- | Trazar callers / callees / imports / tests | `query_graph_tool` (patrones callers_of, callees_of, imports_of, tests_for, dependencies) | `Grep` recursivo + lectura manual |
36
- | Medir blast radius de un cambio | `get_impact_radius_tool` | rastrear imports a mano |
37
- | Saber qué flujos de ejecución afecta un cambio | `get_affected_flows_tool` | inferir leyendo |
38
- | Revisar cambios (code review) con riesgo puntuado | `detect_changes_tool` | `git diff` + leer archivos completos |
39
- | Obtener snippets justos para revisar | `get_review_context_tool`, `get_minimal_context_tool` | `Read` de archivos enteros |
40
- | Planear renames / detectar código muerto | `refactor_tool` | `Grep` + verificación manual |
41
- | Funciones grandes / hubs / puentes arquitectónicos | `find_large_functions_tool`, `get_hub_nodes_tool`, `get_bridge_nodes_tool` | heurística manual |
42
- | Verificar cobertura de tests de un símbolo | `query_graph_tool` pattern `tests_for` | `Grep` de nombres de test |
14
+ ## Mapa mínimo de herramientas
43
15
 
44
- Antes de una sesión de exploración/revisión, vale `list_graph_stats_tool` para
45
- confirmar que el grafo está construido y fresco (`Last updated`).
16
+ - Buscar función/clase/tipo por nombre o keyword `semantic_search_nodes_tool`.
17
+ - Arquitectura de alto nivel `get_architecture_overview_tool` / `list_communities_tool`.
18
+ - Callers / callees / imports / tests → `query_graph_tool` (callers_of, callees_of, imports_of, tests_for).
19
+ - Blast radius / flujos afectados → `get_impact_radius_tool` / `get_affected_flows_tool`.
20
+ - Code review con riesgo puntuado → `detect_changes_tool` + `get_review_context_tool`.
21
+ - Snippets justos / renames / código muerto → `get_minimal_context_tool` / `refactor_tool`.
46
22
 
47
- ---
23
+ ## Workflow
48
24
 
49
- ## Workflow estándar
50
-
51
- 1. **Localizar**: `semantic_search_nodes_tool` con el nombre/keyword del símbolo
52
- o `get_architecture_overview_tool` para el mapa general.
53
- 2. **Relacionar**: `query_graph_tool` (callers/callees/imports/tests) o
54
- `get_impact_radius_tool` para el blast radius.
55
- 3. **Leer dirigido**: `get_review_context_tool`/`get_minimal_context_tool` para
56
- traer solo los snippets relevantes — no el archivo completo.
57
- 4. **Caer al filesystem solo entonces**: si el grafo no cubre el detalle
58
- concreto (líneas exactas no indexadas, archivos no parseados, formatos no
59
- soportados), ahí sí `Read`/`Grep` con foco específico.
60
-
61
- El grafo se auto-actualiza vía hooks al cambiar archivos. Si `list_graph_stats`
62
- muestra un `Last updated` viejo respecto a cambios recientes, reconstruir con
25
+ Localizar relacionar → leer dirigido (`get_review_context_tool`/`get_minimal_context_tool`)
26
+ → filesystem solo para el detalle no cubierto. Verificar frescura con
27
+ `list_graph_stats_tool`; si `Last updated` es viejo, reconstruir con
63
28
  `build_or_update_graph_tool` antes de confiar en sus resultados.
64
29
 
65
- ---
66
-
67
- ## Cuándo SÍ usar Read/Grep/Glob directo (excepciones)
68
-
69
- NO forzar el grafo cuando:
70
-
71
- 1. **El grafo no está disponible** — el proyecto no tiene `code-review-graph`
72
- instalado, o `list_graph_stats_tool` falla. Usar Read/Grep sin más.
73
- 2. **Lenguaje/formato no indexado** — el grafo parsea código fuente (Python, JS,
74
- TS, Go, Rust, Java, C#, bash). Para `.md`, `.json`, `.sql`, `.yaml`, `.env`,
75
- migraciones, seeds, configs → Read/Grep directo (el grafo no los modela).
76
- 3. **Necesitas líneas exactas o contenido literal** — verificar una cita
77
- `archivo:línea`, leer el cuerpo completo de un archivo que vas a editar,
78
- confirmar texto exacto. El grafo da estructura, no sustituye `Read` del
79
- archivo que vas a modificar.
80
- 4. **El usuario pidió explícitamente** leer un archivo concreto o hacer un grep
81
- puntual.
82
- 5. **Operación de un solo archivo ya conocido** — sabes exactamente qué archivo
83
- y qué línea; un `Read` dirigido es más simple que el grafo.
84
- 6. **El grafo está desactualizado** para el cambio recién hecho y no quieres
85
- reconstruirlo en ese instante — usa Grep para lo recién escrito.
86
-
87
- Antes de editar un archivo, SIEMPRE `Read` del archivo (la regla de Edit lo
88
- exige y la verificación de citas `archivo:línea` también). El grafo localiza
89
- **qué** leer; no reemplaza la lectura del archivo que vas a tocar.
90
-
91
- ---
92
-
93
- ## Anti-patrones
94
-
95
- - **`Grep` amplio del codebase** para encontrar una función cuando
96
- `semantic_search_nodes_tool` la ubica en una llamada.
97
- - **Leer 5+ archivos completos** para entender la arquitectura sin haber
98
- consultado `get_architecture_overview_tool` primero.
99
- - **Rastrear imports a mano con `Grep`** para estimar el impacto de un cambio en
100
- vez de `get_impact_radius_tool` / `get_affected_flows_tool`.
101
- - **`git diff` + leer archivos enteros** para revisar cuando `detect_changes_tool`
102
- da el diff con riesgo puntuado y `get_review_context_tool` los snippets justos.
103
- - **Defaultear a Read/Grep "porque es lo de siempre"** cuando las herramientas
104
- `mcp__code-review-graph__*` aparecen deferred (schemas not loaded) — deferred
105
- ≠ ausente: cargar el schema con `ToolSearch(query="select:<tool>")` y usarlo.
106
- Confundir "no cargado" con "no disponible" es el mismo error documentado para
107
- el MCP `obsidian` en `consultar-vault-primero.md`.
108
- - **Confiar en el grafo sin verificar frescura** tras cambios recientes — si
109
- `Last updated` es anterior al cambio, reconstruir o caer a Grep para esa parte.
110
-
111
- ---
112
-
113
- ## Relación con otras reglas
114
-
115
- - `~/.claude/rules/consultar-vault-primero.md` — patrón hermano: consultar la
116
- fuente curada (vault Obsidian para decisiones; grafo para estructura de
117
- código) antes de leer múltiples archivos. Mismo principio de economía de
118
- tokens y mismo anti-patrón de "deferred ≠ ausente".
119
- - `~/.claude/rules/verificar-citas-normativas.md § Familia 2` — el grafo
120
- **localiza** la cita `archivo:línea`; verificarla aún exige `Read` del archivo
121
- real. El grafo no exime de la verificación de citas.
122
- - `~/.claude/rules/harness-claude-code.md § Disciplina de input format` — repos
123
- grandes (>500 archivos) son donde el grafo da el mayor ahorro de tokens
124
- (6.8-49× por review según la nota de ese harness).
125
- - `~/.claude/rules/analizar-directorios-antes-de-escribir.md` — para decidir
126
- DÓNDE escribir docs sigue siendo `ls`/`Glob`; el grafo es para explorar
127
- **código**, no estructura de directorios de documentación.
128
-
129
- ---
130
-
131
- ## Aplicabilidad
132
-
133
- Aplica a:
134
- - Claude Code (CLI, Desktop, IDE) en proyectos con `code-review-graph` activo.
135
- - Sesiones de exploración, debugging, code review, refactor, análisis de impacto.
30
+ ## Excepciones (Read/Grep/Glob directo, sin forzar el grafo)
136
31
 
137
- NO aplica a:
138
- - Proyectos sin el grafo instalado.
139
- - Exploración de documentación/configuración no indexada por el grafo.
140
- - Sub-agentes que operan sobre un único archivo pasado como argumento.
32
+ 1. El grafo no está disponible o `list_graph_stats_tool` falla.
33
+ 2. Formato no indexado: `.md`, `.json`, `.sql`, `.yaml`, `.env`, migraciones, seeds, configs.
34
+ 3. Necesitas líneas exactas o contenido literal — y antes de editar, SIEMPRE `Read` del archivo (el grafo localiza QUÉ leer, no sustituye la lectura de lo que vas a tocar).
35
+ 4. El usuario pidió explícitamente leer un archivo concreto o hacer un grep puntual.
36
+ 5. Operación de un solo archivo ya conocido — un `Read` dirigido es más simple.
37
+ 6. Grafo desactualizado para el cambio recién hecho — usa Grep para lo recién escrito.
141
38
 
142
- ---
39
+ ## Anti-patrón clave
143
40
 
144
- ## Origen
41
+ Deferred ≠ ausente: si las herramientas `mcp__code-review-graph__*` aparecen deferred
42
+ (schemas not loaded), cargar el schema con `ToolSearch(query="select:<tool>")` y usarlas —
43
+ NO defaultear a Grep "porque es lo de siempre".
145
44
 
146
- Formalizada el 2026-06-09 a petición explícita del usuario tras observar que en
147
- una sesión larga (feature B-1 de SIGM) se usó `Grep`/`Read`/`Bash` directo de
148
- forma intensiva para explorar el codebase mientras el MCP `code-review-graph`
149
- estaba disponible y auto-actualizado (9336 nodos, 78247 aristas). El proyecto
150
- SIGM ya documentaba la preferencia en su `CLAUDE.md` ("ALWAYS use the
151
- code-review-graph MCP tools BEFORE using Grep/Glob/Read"), pero el usuario pidió
152
- promoverla a regla global para que aplique a todo proyecto con el grafo, no solo
153
- a SIGM. La regla global es ahora la fuente de verdad del comportamiento; el
154
- `CLAUDE.md` de cada proyecto solo debe declarar que el grafo está disponible
155
- (no re-derivar el comportamiento — ver `sin-duplicacion-reglas-globales.md`).
45
+ Detalle extendido (tabla completa de herramientas, workflow desarrollado, anti-patrones,
46
+ relación con otras reglas, origen): `Skill("meta-reglas-extendido")` `recursos/usar-code-review-graph.md`.