@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
@@ -0,0 +1,156 @@
1
+ # Usar code-review-graph antes de Read/Grep/Glob — extendido
2
+
3
+ > Extendido de `reglas/usar-code-review-graph.md` (Fase D, dieta de contexto).
4
+ > El núcleo instalado es la norma; aquí viven la tabla completa de herramientas,
5
+ > el workflow desarrollado, las excepciones y anti-patrones completos, la
6
+ > relación con otras reglas y el origen.
7
+
8
+ ## Índice
9
+
10
+ - [Cuándo usar el grafo PRIMERO (obligatorio)](#cuándo-usar-el-grafo-primero-obligatorio)
11
+ - [Workflow estándar](#workflow-estándar)
12
+ - [Cuándo SÍ usar Read/Grep/Glob directo (excepciones)](#cuándo-sí-usar-readgrepglob-directo-excepciones)
13
+ - [Anti-patrones](#anti-patrones)
14
+ - [Relación con otras reglas](#relación-con-otras-reglas)
15
+ - [Aplicabilidad](#aplicabilidad)
16
+ - [Origen](#origen)
17
+
18
+ ---
19
+
20
+ ## Cuándo usar el grafo PRIMERO (obligatorio)
21
+
22
+ El grafo de conocimiento es un índice estructural del codebase construido con
23
+ Tree-sitter: nodos (archivos, clases, funciones, tipos, tests) y aristas
24
+ (llamadas, imports, dependencias, cobertura). Consultarlo es **más barato en
25
+ tokens**, **más rápido** y aporta **contexto estructural** (callers, dependents,
26
+ blast radius, tests) que un `Grep`/`Read` plano no puede dar.
27
+
28
+ El costo de una consulta al grafo es de segundos y pocos tokens. El costo de
29
+ leer 5-10 archivos completos para reconstruir relaciones que el grafo ya conoce
30
+ es contexto desperdiciado y dinero.
31
+
32
+ | Necesidad | Herramienta del grafo | En vez de |
33
+ |---|---|---|
34
+ | Encontrar una función/clase/tipo por nombre o keyword | `semantic_search_nodes_tool` | `Grep` amplio |
35
+ | Entender la arquitectura de alto nivel | `get_architecture_overview_tool`, `list_communities_tool` | leer N archivos para inferir estructura |
36
+ | Trazar callers / callees / imports / tests | `query_graph_tool` (patrones callers_of, callees_of, imports_of, tests_for, dependencies) | `Grep` recursivo + lectura manual |
37
+ | Medir blast radius de un cambio | `get_impact_radius_tool` | rastrear imports a mano |
38
+ | Saber qué flujos de ejecución afecta un cambio | `get_affected_flows_tool` | inferir leyendo |
39
+ | Revisar cambios (code review) con riesgo puntuado | `detect_changes_tool` | `git diff` + leer archivos completos |
40
+ | Obtener snippets justos para revisar | `get_review_context_tool`, `get_minimal_context_tool` | `Read` de archivos enteros |
41
+ | Planear renames / detectar código muerto | `refactor_tool` | `Grep` + verificación manual |
42
+ | Funciones grandes / hubs / puentes arquitectónicos | `find_large_functions_tool`, `get_hub_nodes_tool`, `get_bridge_nodes_tool` | heurística manual |
43
+ | Verificar cobertura de tests de un símbolo | `query_graph_tool` pattern `tests_for` | `Grep` de nombres de test |
44
+
45
+ Antes de una sesión de exploración/revisión, vale `list_graph_stats_tool` para
46
+ confirmar que el grafo está construido y fresco (`Last updated`).
47
+
48
+ ---
49
+
50
+ ## Workflow estándar
51
+
52
+ 1. **Localizar**: `semantic_search_nodes_tool` con el nombre/keyword del símbolo
53
+ o `get_architecture_overview_tool` para el mapa general.
54
+ 2. **Relacionar**: `query_graph_tool` (callers/callees/imports/tests) o
55
+ `get_impact_radius_tool` para el blast radius.
56
+ 3. **Leer dirigido**: `get_review_context_tool`/`get_minimal_context_tool` para
57
+ traer solo los snippets relevantes — no el archivo completo.
58
+ 4. **Caer al filesystem solo entonces**: si el grafo no cubre el detalle
59
+ concreto (líneas exactas no indexadas, archivos no parseados, formatos no
60
+ soportados), ahí sí `Read`/`Grep` con foco específico.
61
+
62
+ El grafo se auto-actualiza vía hooks al cambiar archivos. Si `list_graph_stats`
63
+ muestra un `Last updated` viejo respecto a cambios recientes, reconstruir con
64
+ `build_or_update_graph_tool` antes de confiar en sus resultados.
65
+
66
+ ---
67
+
68
+ ## Cuándo SÍ usar Read/Grep/Glob directo (excepciones)
69
+
70
+ NO forzar el grafo cuando:
71
+
72
+ 1. **El grafo no está disponible** — el proyecto no tiene `code-review-graph`
73
+ instalado, o `list_graph_stats_tool` falla. Usar Read/Grep sin más.
74
+ 2. **Lenguaje/formato no indexado** — el grafo parsea código fuente (Python, JS,
75
+ TS, Go, Rust, Java, C#, bash). Para `.md`, `.json`, `.sql`, `.yaml`, `.env`,
76
+ migraciones, seeds, configs → Read/Grep directo (el grafo no los modela).
77
+ 3. **Necesitas líneas exactas o contenido literal** — verificar una cita
78
+ `archivo:línea`, leer el cuerpo completo de un archivo que vas a editar,
79
+ confirmar texto exacto. El grafo da estructura, no sustituye `Read` del
80
+ archivo que vas a modificar.
81
+ 4. **El usuario pidió explícitamente** leer un archivo concreto o hacer un grep
82
+ puntual.
83
+ 5. **Operación de un solo archivo ya conocido** — sabes exactamente qué archivo
84
+ y qué línea; un `Read` dirigido es más simple que el grafo.
85
+ 6. **El grafo está desactualizado** para el cambio recién hecho y no quieres
86
+ reconstruirlo en ese instante — usa Grep para lo recién escrito.
87
+
88
+ Antes de editar un archivo, SIEMPRE `Read` del archivo (la regla de Edit lo
89
+ exige y la verificación de citas `archivo:línea` también). El grafo localiza
90
+ **qué** leer; no reemplaza la lectura del archivo que vas a tocar.
91
+
92
+ ---
93
+
94
+ ## Anti-patrones
95
+
96
+ - **`Grep` amplio del codebase** para encontrar una función cuando
97
+ `semantic_search_nodes_tool` la ubica en una llamada.
98
+ - **Leer 5+ archivos completos** para entender la arquitectura sin haber
99
+ consultado `get_architecture_overview_tool` primero.
100
+ - **Rastrear imports a mano con `Grep`** para estimar el impacto de un cambio en
101
+ vez de `get_impact_radius_tool` / `get_affected_flows_tool`.
102
+ - **`git diff` + leer archivos enteros** para revisar cuando `detect_changes_tool`
103
+ da el diff con riesgo puntuado y `get_review_context_tool` los snippets justos.
104
+ - **Defaultear a Read/Grep "porque es lo de siempre"** cuando las herramientas
105
+ `mcp__code-review-graph__*` aparecen deferred (schemas not loaded) — deferred
106
+ ≠ ausente: cargar el schema con `ToolSearch(query="select:<tool>")` y usarlo.
107
+ Confundir "no cargado" con "no disponible" es el mismo error documentado para
108
+ el MCP `obsidian` en `consultar-vault-primero.md`.
109
+ - **Confiar en el grafo sin verificar frescura** tras cambios recientes — si
110
+ `Last updated` es anterior al cambio, reconstruir o caer a Grep para esa parte.
111
+
112
+ ---
113
+
114
+ ## Relación con otras reglas
115
+
116
+ - `~/.claude/rules/consultar-vault-primero.md` — patrón hermano: consultar la
117
+ fuente curada (vault Obsidian para decisiones; grafo para estructura de
118
+ código) antes de leer múltiples archivos. Mismo principio de economía de
119
+ tokens y mismo anti-patrón de "deferred ≠ ausente".
120
+ - `~/.claude/rules/verificar-citas-normativas.md § Familia 2` — el grafo
121
+ **localiza** la cita `archivo:línea`; verificarla aún exige `Read` del archivo
122
+ real. El grafo no exime de la verificación de citas.
123
+ - `~/.claude/rules/harness-claude-code.md § Disciplina de input format` — repos
124
+ grandes (>500 archivos) son donde el grafo da el mayor ahorro de tokens
125
+ (6.8-49× por review según la nota de ese harness).
126
+ - `~/.claude/rules/analizar-directorios-antes-de-escribir.md` — para decidir
127
+ DÓNDE escribir docs sigue siendo `ls`/`Glob`; el grafo es para explorar
128
+ **código**, no estructura de directorios de documentación.
129
+
130
+ ---
131
+
132
+ ## Aplicabilidad
133
+
134
+ Aplica a:
135
+ - Claude Code (CLI, Desktop, IDE) en proyectos con `code-review-graph` activo.
136
+ - Sesiones de exploración, debugging, code review, refactor, análisis de impacto.
137
+
138
+ NO aplica a:
139
+ - Proyectos sin el grafo instalado.
140
+ - Exploración de documentación/configuración no indexada por el grafo.
141
+ - Sub-agentes que operan sobre un único archivo pasado como argumento.
142
+
143
+ ---
144
+
145
+ ## Origen
146
+
147
+ Formalizada el 2026-06-09 a petición explícita del usuario tras observar que en
148
+ una sesión larga (feature B-1 de SIGM) se usó `Grep`/`Read`/`Bash` directo de
149
+ forma intensiva para explorar el codebase mientras el MCP `code-review-graph`
150
+ estaba disponible y auto-actualizado (9336 nodos, 78247 aristas). El proyecto
151
+ SIGM ya documentaba la preferencia en su `CLAUDE.md` ("ALWAYS use the
152
+ code-review-graph MCP tools BEFORE using Grep/Glob/Read"), pero el usuario pidió
153
+ promoverla a regla global para que aplique a todo proyecto con el grafo, no solo
154
+ a SIGM. La regla global es ahora la fuente de verdad del comportamiento; el
155
+ `CLAUDE.md` de cada proyecto solo debe declarar que el grafo está disponible
156
+ (no re-derivar el comportamiento — ver `sin-duplicacion-reglas-globales.md`).
@@ -0,0 +1,236 @@
1
+ # Consultar Context7 — extendido
2
+
3
+ > Extendido de `reglas/usar-context7.md` (Fase D, dieta de contexto). El núcleo
4
+ > instalado es la norma; aquí viven la motivación completa, el flujo de consulta
5
+ > con ejemplos, la tabla de aplicabilidad por agente y el caso de origen.
6
+
7
+ ## Índice
8
+
9
+ - [Por qué existe esta regla](#por-qué-existe-esta-regla)
10
+ - [Cuándo consultar Context7 (OBLIGATORIO)](#cuándo-consultar-context7-obligatorio)
11
+ - [Cómo consultar Context7](#cómo-consultar-context7)
12
+ - [Reglas estrictas](#reglas-estrictas)
13
+ - [Excepción: Context7 no responde o no tiene la librería](#excepción-context7-no-responde-o-no-tiene-la-librería)
14
+ - [Auditoría retroactiva](#auditoría-retroactiva)
15
+ - [Aplicabilidad por agente](#aplicabilidad-por-agente)
16
+ - [Checklist de consulta Context7](#checklist-de-consulta-context7)
17
+ - [Origen de esta regla](#origen-de-esta-regla)
18
+
19
+ ---
20
+
21
+ ## Por qué existe esta regla
22
+
23
+ El conocimiento del modelo sobre librerías de terceros tiene fecha de
24
+ corte. Una librería que en el corte estaba en la versión X y era la
25
+ recomendación, hoy puede estar:
26
+
27
+ - En una versión Y mayor con cambios incompatibles
28
+ - Deprecada y reemplazada por otra librería
29
+ - Con vulnerabilidades conocidas que requieren un parche
30
+ - Renombrada o migrada a otra organización
31
+
32
+ Generar código sin verificar la versión actual genera tres clases de
33
+ defectos en producción:
34
+
35
+ 1. **Imports a APIs deprecadas** que arrastran warnings o se eliminan
36
+ en próximas versiones (ejemplo histórico: `@xenova/transformers`
37
+ migrado a `@huggingface/transformers`).
38
+ 2. **Dependencias transitivas obsoletas** que el usuario ve como
39
+ warnings al instalar (ejemplo: `prebuild-install@7.1.3` arrastrada
40
+ por una librería que el sistema eligió sin verificar la salud).
41
+ 3. **Vulnerabilidades CVE conocidas** que están parchadas en versiones
42
+ más nuevas que el modelo no conoce.
43
+
44
+ Context7 (MCP `mcp__claude_ai_Context7__query-docs` y
45
+ `mcp__claude_ai_Context7__resolve-library-id`) provee documentación
46
+ actualizada de librerías y frameworks. Su uso es la primera línea de
47
+ defensa contra estos tres problemas.
48
+
49
+ ---
50
+
51
+ ## Cuándo consultar Context7 (OBLIGATORIO)
52
+
53
+ Antes de:
54
+
55
+ 1. **Agregar una nueva dependencia** a `package.json`, `requirements.txt`,
56
+ `pom.xml`, `Cargo.toml`, `go.mod`, `composer.json`, `Package.swift` o
57
+ equivalente.
58
+ 2. **Generar código que importe o use una librería externa** que no
59
+ estaba ya en uso en el proyecto, aunque la librería ya esté
60
+ instalada.
61
+ 3. **Actualizar la versión** de una dependencia existente.
62
+ 4. **Migrar de una librería a otra** alternativa (ej.
63
+ `axios` → `fetch`, `moment` → `date-fns`, `jest` → `vitest`).
64
+ 5. **Resolver un warning de deprecación** de una dependencia
65
+ transitiva.
66
+ 6. **Implementar un patrón nuevo** del framework (ej. Server Actions
67
+ en Next.js, Signals en Angular, Suspense en React) — la API
68
+ correcta cambia rápido.
69
+
70
+ NO es necesario consultar Context7 cuando:
71
+
72
+ - La librería es interna al proyecto SWL (`scripts/lib/*`,
73
+ `hooks/lib/*`).
74
+ - Es la biblioteca estándar del lenguaje (Node `fs`, Python `os`).
75
+ - Es código que no usa dependencias externas (algoritmos, lógica de
76
+ negocio sin librerías de terceros).
77
+ - El cambio es trivial (renombrar variable, formatear).
78
+
79
+ ---
80
+
81
+ ## Cómo consultar Context7
82
+
83
+ El MCP de Context7 expone dos herramientas principales:
84
+
85
+ ```
86
+ mcp__claude_ai_Context7__resolve-library-id(libraryName)
87
+ → Resuelve un nombre de librería (ej. "react", "next.js") al ID
88
+ canónico que Context7 usa internamente.
89
+
90
+ mcp__claude_ai_Context7__query-docs(library, topic, version?)
91
+ → Devuelve documentación actualizada de la librería sobre el
92
+ topic específico. Acepta versión opcional.
93
+ ```
94
+
95
+ Flujo típico:
96
+
97
+ 1. Resolver el ID de la librería:
98
+ ```
99
+ const id = mcp__claude_ai_Context7__resolve-library-id({
100
+ libraryName: "next.js"
101
+ });
102
+ ```
103
+
104
+ 2. Consultar el tema específico:
105
+ ```
106
+ const docs = mcp__claude_ai_Context7__query-docs({
107
+ library: id,
108
+ topic: "Server Actions",
109
+ version: "16"
110
+ });
111
+ ```
112
+
113
+ 3. Verificar:
114
+ - ¿La librería sigue siendo la recomendada o está deprecada?
115
+ - ¿Hay una alternativa migrada que deberíamos usar?
116
+ - ¿La API que voy a generar es la actual o cambió?
117
+ - ¿La versión que recomienda Context7 coincide con la del
118
+ `package.json` del proyecto?
119
+
120
+ ---
121
+
122
+ ## Reglas estrictas
123
+
124
+ ### NUNCA agregar dependencia sin verificar
125
+
126
+ Antes de escribir `npm install <paquete>`, `pip install <paquete>`,
127
+ `go get <paquete>` o equivalente:
128
+
129
+ - Consultar Context7 para confirmar que la librería sigue activa.
130
+ - Confirmar la versión más reciente compatible con el resto del
131
+ stack del proyecto.
132
+ - Si Context7 reporta deprecación, **NO la uses**. Buscar la
133
+ alternativa migrada.
134
+
135
+ ### NUNCA generar código con API obsoleta
136
+
137
+ Si el usuario pide implementar X usando librería Y:
138
+
139
+ - Consultar Context7 sobre cómo se hace X en la versión actual de Y.
140
+ - Si la API que aparece en el contexto del modelo difiere de la que
141
+ Context7 reporta como actual, **usar la de Context7**.
142
+ - Documentar en un comentario corto la versión consultada y la
143
+ fecha si la API es notable.
144
+
145
+ ### NUNCA copiar ejemplos de la web sin verificar versión
146
+
147
+ Stack Overflow, blogs y tutoriales tienen alta probabilidad de
148
+ mostrar código deprecado. Si el agente consulta una web (vía
149
+ WebSearch o WebFetch) y obtiene un ejemplo, ese ejemplo debe
150
+ validarse contra Context7 antes de incorporarlo.
151
+
152
+ ---
153
+
154
+ ## Excepción: Context7 no responde o no tiene la librería
155
+
156
+ Si Context7 no tiene documentación disponible para una librería
157
+ específica:
158
+
159
+ 1. **Documentar en el código** que Context7 no respondió y la API se
160
+ tomó de la fuente oficial (npm registry, docs del repo).
161
+ 2. **Verificar al menos**: la librería existe, no está deprecada en
162
+ npm/PyPI, su última publicación es reciente (≤ 12 meses).
163
+ 3. **NO bloquear** el flujo del usuario por este caso — proceder con
164
+ diligencia razonable.
165
+
166
+ ---
167
+
168
+ ## Auditoría retroactiva
169
+
170
+ Esta regla aplica también al código existente del proyecto SWL:
171
+
172
+ - Si durante un refactor se detecta una dependencia que arrastra
173
+ warnings de deprecación, abrir un ticket para auditarla con
174
+ Context7 y migrar si hay alternativa actual.
175
+ - El comando `/swl:auditar-deps` (cuando esté disponible) debe
176
+ cruzar las dependencias del proyecto contra Context7 para
177
+ detectar deprecaciones silenciosas.
178
+
179
+ ---
180
+
181
+ ## Aplicabilidad por agente
182
+
183
+ | Agente | Aplica | Cuándo |
184
+ |---|---|---|
185
+ | `backend-python-swl` | SÍ | Al generar código FastAPI/Django/SQLAlchemy |
186
+ | `backend-node-swl` | SÍ | Al generar código Express/Fastify/NestJS |
187
+ | `backend-java-swl` | SÍ | Al generar código Spring Boot/JPA |
188
+ | `backend-go-swl` | SÍ | Al generar código Go con frameworks |
189
+ | `backend-rust-swl` | SÍ | Al generar código Axum/Actix |
190
+ | `backend-csharp-swl` | SÍ | Al generar código ASP.NET Core |
191
+ | `frontend-react-swl` | SÍ | Al generar código React/Next.js |
192
+ | `frontend-angular-swl` | SÍ | Al generar código Angular |
193
+ | `frontend-css-swl` | SÍ | Al usar PostCSS/Tailwind plugins |
194
+ | `frontend-tailwind-swl` | SÍ | Al usar Tailwind v4+ APIs |
195
+ | `frontend-swl` | SÍ | Al usar Vue/Svelte/Lit |
196
+ | `mobile-android-swl` | SÍ | Al usar Jetpack Compose libs |
197
+ | `mobile-ios-swl` | SÍ | Al usar SwiftUI/Combine |
198
+ | `mobile-cross-swl` | SÍ | Al usar React Native/Flutter |
199
+ | `implementador-swl` | SÍ | Generalista — siempre |
200
+ | `llm-apps-swl` | SÍ | LangChain, OpenAI SDK, Anthropic SDK |
201
+ | `pagos-swl` | SÍ | Stripe SDK actualizado |
202
+ | `datos-swl` | SÍ | ORMs y drivers de BD |
203
+ | `arquitecto-swl` | RECOMENDADO | Al evaluar tradeoffs entre librerías |
204
+ | `revisor-codigo-swl` | RECOMENDADO | Al detectar deps deprecadas en review |
205
+ | `revisor-seguridad-swl` | OBLIGATORIO | Al verificar CVEs de dependencias |
206
+ | Resto de agentes | NO | No generan código con dependencias externas |
207
+
208
+ ---
209
+
210
+ ## Checklist de consulta Context7
211
+
212
+ Antes de marcar una tarea como completa:
213
+
214
+ - [ ] ¿Las dependencias agregadas/usadas se verificaron contra Context7?
215
+ - [ ] ¿La versión usada está alineada con la que Context7 reporta como actual?
216
+ - [ ] ¿No hay imports de APIs deprecadas según Context7?
217
+ - [ ] ¿Las dependencias transitivas conocidas no son warnings de
218
+ deprecación al instalar?
219
+ - [ ] Si Context7 no tenía la librería, ¿se documentó el motivo?
220
+
221
+ ---
222
+
223
+ ## Origen de esta regla
224
+
225
+ Esta regla se formalizó tras observar en la primera instalación pública
226
+ de `@saulwade/swl-ses@1.0.0` (2026-04-30) un warning de
227
+ `prebuild-install@7.1.3 deprecated` arrastrado por
228
+ `@xenova/transformers` que estaba en `optionalDependencies`. La
229
+ dependencia se eligió en una iteración anterior sin verificar Context7;
230
+ la migración oficial era `@huggingface/transformers`. El warning se vio
231
+ en cada `npm install` del paquete distribuido. Resuelto en v1.0.1
232
+ eliminando la dependencia opcional y elevando esta regla a obligatoria
233
+ para que no se repita.
234
+
235
+ Memoria asociada: `feedback_usar_context7.md` (preferencia previa del
236
+ usuario, formalizada como regla).
@@ -0,0 +1,253 @@
1
+ # Uso obligatorio del sistema SWL — extendido
2
+
3
+ > Extendido de `reglas/usar-sistema-swl.md` (Fase D, dieta de contexto). El núcleo
4
+ > instalado es la norma — su matriz operacional comprimida es LA herramienta de
5
+ > decisión; aquí viven el racional completo, la matriz con justificaciones, los
6
+ > anti-patrones desarrollados con MAL/BIEN y los checklists íntegros.
7
+
8
+ ## Índice
9
+
10
+ - [Por qué existe esta regla](#por-qué-existe-esta-regla)
11
+ - [Matriz operacional completa](#matriz-operacional-completa)
12
+ - [Excepciones legítimas](#excepciones-legítimas)
13
+ - [Anti-patrones explícitos](#anti-patrones-explícitos)
14
+ - [Checklist antes de empezar cualquier tarea](#checklist-antes-de-empezar-cualquier-tarea)
15
+ - [Cómo recuperarse si ya empecé directo](#cómo-recuperarse-si-ya-empecé-directo)
16
+ - [Aplicabilidad](#aplicabilidad)
17
+ - [Relación con otras reglas](#relación-con-otras-reglas)
18
+ - [Checklist de auto-verificación al final del turno](#checklist-de-auto-verificación-al-final-del-turno)
19
+
20
+ ---
21
+
22
+ ## Por qué existe esta regla
23
+
24
+ El sistema SWL se instaló específicamente para que Claude **no haga trabajo
25
+ directo cuando hay un componente especializado**. El patrón recurrente que
26
+ esta regla cierra es:
27
+
28
+ - Implementar con Read/Write/Edit en vez de invocar `implementador-swl` o el
29
+ agente de stack (`backend-python-swl`, `frontend-react-swl`, etc.).
30
+ - Hacer commits sin invocar `revisor-codigo-swl` ni `revisor-seguridad-swl`.
31
+ - Escribir código sin cargar el skill de stack correspondiente
32
+ (`fastapi-experto`, `react-experto`, `angular-moderno`).
33
+ - Implementar features sin pasar por `/swl:discutir-fase` → `/swl:planear-fase`
34
+ → `/swl:ejecutar-fase` cuando el alcance lo justifica.
35
+ - Diferir scope (entregar read-only cuando el plan decía CRUD) sin invocar al
36
+ planificador ni crear DA formal — viola `arreglar-al-detectar.md`.
37
+
38
+ El patrón es costoso y reproducible. La regla `arreglar-al-detectar.md`
39
+ prohíbe la deuda silenciosa; esta regla cierra la causa raíz: saltarse el
40
+ flujo SWL desde el inicio.
41
+
42
+ El sistema SWL es la herramienta del usuario — saltársela sin justificación
43
+ es decisión que la regla `debatir-antes-de-aceptar.md` exige debatir antes
44
+ de ejecutar.
45
+
46
+ ---
47
+
48
+ ## Matriz operacional completa
49
+
50
+ Versión íntegra de la matriz del núcleo, con la columna que justifica por qué
51
+ el trabajo directo NO basta.
52
+
53
+ ### Para tareas de desarrollo
54
+
55
+ | Tarea | Componente SWL obligatorio | Componente directo NO basta porque |
56
+ |---|---|---|
57
+ | Feature nueva > 50 LOC o multi-archivo | `/swl:discutir-fase` → `/swl:planear-fase` → `/swl:ejecutar-fase` o `orquestador-swl` | Sin discovery el scope queda implícito y diverge en ejecución |
58
+ | Implementación backend Python/Node/Java/Go/Rust/C# | `backend-python-swl` / `backend-node-swl` / etc. + `Skill("<framework>-experto")` | El skill carga gotchas críticos (ej: MissingGreenlet en SQLAlchemy async) |
59
+ | Implementación frontend React/Angular/Vue/Svelte | `frontend-react-swl` / `frontend-angular-swl` / `frontend-swl` + skill correspondiente | Los skills traen patrones modernos (signals, RSC, Suspense) que el modelo no actualiza solo |
60
+ | Implementación mobile Android/iOS/RN/Flutter | `mobile-android-swl` / `mobile-ios-swl` / `mobile-cross-swl` | Casos edge de plataforma (Core Data, baseline profiles) |
61
+ | Bug con stack trace o reproducible | `depurador-swl` con método científico | Saltar al fix sin hipótesis aislada falla con frecuencia |
62
+ | Refactor masivo o migración schema | `migrador-swl` | Exige plan de rollback + expand-contract, no improvisar |
63
+
64
+ ### Para tareas de calidad
65
+
66
+ | Tarea | Componente SWL obligatorio |
67
+ |---|---|
68
+ | Pre-merge a main | `/swl:revisar` o `revisor-codigo-swl` + `revisor-seguridad-swl` |
69
+ | Verificación post-fase | `/swl:verificar` con `Skill("verificar-trabajo")` (goal-backward 4 niveles) |
70
+ | Auditoría de calidad | `Skill("checklist-calidad")` con score ≥9.0 |
71
+ | Tests nuevos | `tdd-qa-swl` (ciclo RED→GREEN→REFACTOR) |
72
+ | Auditoría de seguridad | `Skill("checklist-seguridad")` (OWASP Top 10 + A11) |
73
+ | Detectar funcionalidad duplicada | `Skill("swl-revisar-impacto")` o `revisor-codigo-swl` con veto DRY mayor |
74
+
75
+ ### Para tareas de proceso
76
+
77
+ | Tarea | Componente SWL obligatorio |
78
+ |---|---|
79
+ | Cierre de sesión productiva | `/swl:compactar` + `/swl:aprender` |
80
+ | Capturar aprendizaje recurrente | `/swl:aprender` → APRENDIZAJES.md → posible promoción a regla/skill |
81
+ | Release con bump de versión | `/swl:release` (sincronización de ubicaciones de versión) |
82
+ | Documentación viva post-feature | `documentador-swl` |
83
+ | Diagnóstico del sistema | `/swl:status salud` |
84
+
85
+ ### Para tareas de búsqueda y contexto
86
+
87
+ | Tarea | Componente SWL obligatorio |
88
+ |---|---|
89
+ | Contexto de dominio previo | `Skill("memoria-busqueda")` sobre `.planning/sessions/` y APRENDIZAJES.md |
90
+ | Investigación tecnológica | `investigador-swl` con WebSearch/WebFetch + `Skill("agent-browser")` |
91
+ | Verificar dependencia externa | Consultar Context7 (regla `usar-context7.md`) |
92
+ | Decisiones repetibles del proyecto | Revisar `.planning/adrs/`, APRENDIZAJES.md, `instintos/proyecto.yaml` ANTES de proponer solución |
93
+
94
+ ---
95
+
96
+ ## Excepciones legítimas
97
+
98
+ NO aplicar esta regla cuando:
99
+
100
+ 1. **Tarea trivial de 1-2 archivos**: rename, fix de typo, ajuste de comentario,
101
+ formato. El overhead de invocar agente supera el valor.
102
+ 2. **Pregunta de lectura pura**: "¿qué hace este archivo?", "¿dónde se define
103
+ X?". Usar Read/Grep directos.
104
+ 3. **Comando de shell puro**: `git status`, `npm install`, `gh pr list`.
105
+ 4. **Sesión exploratoria explícita**: el usuario pidió "explora", "echa un
106
+ vistazo", "investiga sin tocar nada".
107
+ 5. **Override explícito del usuario**: "no uses agentes, hazlo directo".
108
+ Respetar la instrucción explícita; registrar la excepción si tiene impacto
109
+ en flujo posterior.
110
+ 6. **Fix urgente de producción** con incidente activo: aplicar fix mínimo,
111
+ el agente puede esperar al post-mortem.
112
+ 7. **Proyecto sin SWL instalado**: si no hay `plugin.json` ni `agentes/` en
113
+ el proyecto, la regla no aplica.
114
+
115
+ ---
116
+
117
+ ## Anti-patrones explícitos
118
+
119
+ ### Anti-patrón 1: implementar feature compleja con Read+Write directo
120
+
121
+ ❌ **MAL**: el usuario pide "agrega CRUD para entidad X", Claude empieza a
122
+ escribir el modelo + endpoint + frontend + tests con Read+Write secuenciales,
123
+ sin pasar por `/swl:planear-fase` ni invocar `backend-python-swl`.
124
+
125
+ ✅ **BIEN**: invocar `/swl:discutir-fase` para extraer decisiones,
126
+ `/swl:planear-fase` para descomponer en tareas atómicas, `/swl:ejecutar-fase`
127
+ que delega a `implementador-swl` o agente de stack con skill cargado.
128
+
129
+ ### Anti-patrón 2: commit sin revisión
130
+
131
+ ❌ **MAL**: terminar implementación y hacer `git add . && git commit` sin
132
+ pasar por `revisor-codigo-swl` ni `revisor-seguridad-swl`.
133
+
134
+ ✅ **BIEN**: `/swl:revisar` antes del commit. Score ≥ 9.0 obligatorio. Si
135
+ hay veto items, corregir antes de mergear.
136
+
137
+ ### Anti-patrón 3: divergir del plan sin reconfirmar scope
138
+
139
+ ❌ **MAL**: plan decía "CRUD completo", entregar read-only documentando en
140
+ commit "la edición se agrega en iteración posterior". Es deuda silenciosa
141
+ prohibida por `arreglar-al-detectar.md`.
142
+
143
+ ✅ **BIEN**: si durante ejecución se detecta que el scope original es muy
144
+ grande, pausar, invocar `planificador-swl` para re-planificar, o crear DA
145
+ formal con trigger verificable. NUNCA diferir scope en commit silencioso.
146
+
147
+ ### Anti-patrón 4: implementar con framework sin cargar el skill correspondiente
148
+
149
+ ❌ **MAL**: escribir FastAPI con SQLAlchemy async sin cargar
150
+ `Skill("fastapi-experto")` — alta probabilidad de incurrir en MissingGreenlet
151
+ por lazy loading.
152
+
153
+ ✅ **BIEN**: cargar el skill ANTES de la primera línea. El skill trae los
154
+ gotchas específicos que el modelo no recuerda solo.
155
+
156
+ ### Anti-patrón 5: detectar funcionalidad duplicada y commitearla igual
157
+
158
+ ❌ **MAL**: durante implementación detectar que `/catalogos` ya tiene lo
159
+ mismo que se está agregando en `/catalogos-contratacion` pero commitearlo
160
+ porque "el plan decía implementarlo aquí". Pérdida de DRY.
161
+
162
+ ✅ **BIEN**: pausar, invocar `revisor-codigo-swl` o `Skill("swl-revisar-impacto")`,
163
+ reportar la duplicación al usuario, esperar decisión de scope.
164
+
165
+ ### Anti-patrón 6: usar agente especializado como "etiqueta cosmética"
166
+
167
+ ❌ **MAL**: decir "estoy invocando implementador-swl" pero seguir trabajando
168
+ con Read+Write+Edit personalmente sin lanzar el Agent tool.
169
+
170
+ ✅ **BIEN**: invocación real con el tool Agent. El sub-agente recibe contexto
171
+ acotado, opera con sus permisos declarados y devuelve resultado.
172
+
173
+ ---
174
+
175
+ ## Checklist antes de empezar cualquier tarea
176
+
177
+ Antes de la primera tool call sustantiva:
178
+
179
+ - [ ] **PASO 0 — Consultar memoria previa** (`Skill("memoria-busqueda")`,
180
+ APRENDIZAJES.md, `.planning/adrs/`, vault Obsidian si aplica). El
181
+ proyecto tiene decisiones ya tomadas y patrones validados que se
182
+ repiten. Empezar sin consultar es reabrir decisiones cerradas.
183
+ - [ ] ¿La tarea cabe en alguna fila de la **matriz operacional**?
184
+ - [ ] Si sí: ¿identifiqué el agente, skill o comando SWL correspondiente?
185
+ - [ ] ¿Cargué el skill relevante con `Skill("nombre")` antes de implementar?
186
+ - [ ] Si la tarea es no trivial: ¿pasó por el flujo discutir → planear → ejecutar?
187
+ - [ ] Si voy a hacer trabajo directo: ¿estoy dentro de las **excepciones
188
+ legítimas**? Si no, esta regla me obliga a usar el componente SWL.
189
+ - [ ] Antes de commit: ¿pasé por revisor de código + seguridad?
190
+
191
+ ---
192
+
193
+ ## Cómo recuperarse si ya empecé directo
194
+
195
+ Si avancé con trabajo directo y al revisar esta regla detecto que debí usar
196
+ un componente SWL:
197
+
198
+ 1. **Trabajo trivial y reversible**: aceptar el atajo, registrar la
199
+ excepción mentalmente, terminar.
200
+ 2. **Trabajo sustantivo pero sin commit**: invocar el componente SWL ahora
201
+ (revisor / verificar / planificador retrospectivo) antes del commit. Aún
202
+ se gana cobertura.
203
+ 3. **Ya se commiteó**: ejecutar `/swl:verificar` post-hoc. Si encuentra
204
+ hallazgos, corregir en commit siguiente bajo `arreglar-al-detectar.md`.
205
+ 4. **El patrón se repite en la sesión**: invocar `/swl:aprender` para
206
+ capturar el feedback explícitamente y reforzar el comportamiento futuro.
207
+
208
+ ---
209
+
210
+ ## Aplicabilidad
211
+
212
+ Aplica a:
213
+
214
+ - Claude Code (CLI, Desktop, IDE) operando dentro de proyectos con SWL
215
+ instalado.
216
+ - Sesiones de implementación, debugging, refactor, revisión, planning.
217
+ - Cualquier ciclo GSD (Goal-Seeking Development).
218
+
219
+ NO aplica a:
220
+
221
+ - Proyectos sin SWL instalado.
222
+ - Repos de terceros, exploración de código ajeno (`temp/`, dependencias
223
+ npm/pip).
224
+ - Tareas administrativas puras del sistema (instalar SWL, configurar Claude
225
+ Code).
226
+
227
+ ---
228
+
229
+ ## Relación con otras reglas
230
+
231
+ - `arreglar-al-detectar.md` — la deuda silenciosa de scope (anti-patrón 3
232
+ aquí) es exactamente lo que prohíbe esa regla.
233
+ - `debatir-antes-de-aceptar.md` — saltarse SWL sin justificación es decisión
234
+ que choca con regla documentada → exige debate, no ejecución silenciosa.
235
+ - `brevedad-output.md` — cubre idioma y eficiencia de tokens; esta regla
236
+ cubre flujo de trabajo.
237
+ - `skills-estandar.md` — cubre cómo escribir skills (autor); esta regla
238
+ cubre cómo usarlos (consumidor).
239
+ - `usar-context7.md` — regla hermana: consultar documentación de librerías
240
+ externas antes de implementar.
241
+
242
+ ---
243
+
244
+ ## Checklist de auto-verificación al final del turno
245
+
246
+ Al cerrar un turno con trabajo sustantivo:
247
+
248
+ - [ ] ¿Invoqué los agentes/skills/comandos SWL aplicables o estuve dentro
249
+ de las excepciones legítimas?
250
+ - [ ] Si hice trabajo directo: ¿la decisión está justificada por una
251
+ excepción concreta, no por inercia?
252
+ - [ ] Si detecto que omití un componente que debí usar: ¿lo invoco
253
+ retrospectivamente antes del commit final?