@saulwade/swl-ses 2.5.3 → 2.6.0

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 (181) hide show
  1. package/CLAUDE.md +192 -192
  2. package/README.md +600 -600
  3. package/agentes/auto-evolucion-swl.md +27 -3
  4. package/bin/swl-ses.js +32 -7
  5. package/comandos/swl/actualizar.md +174 -174
  6. package/comandos/swl/adoptar-proyecto.md +265 -265
  7. package/comandos/swl/aprender.md +836 -823
  8. package/comandos/swl/aprobar-plan.md +146 -146
  9. package/comandos/swl/auditar-deps.md +134 -134
  10. package/comandos/swl/autoresearch.md +264 -264
  11. package/comandos/swl/ayuda.md +224 -224
  12. package/comandos/swl/brainstorm.md +51 -51
  13. package/comandos/swl/briefing.md +119 -119
  14. package/comandos/swl/checkpoint.md +325 -325
  15. package/comandos/swl/claudemd.md +234 -234
  16. package/comandos/swl/compactar.md +310 -310
  17. package/comandos/swl/configurar-ci.md +235 -235
  18. package/comandos/swl/contexto.md +110 -110
  19. package/comandos/swl/contribuir.md +233 -233
  20. package/comandos/swl/crear-skill.md +292 -292
  21. package/comandos/swl/cron.md +194 -194
  22. package/comandos/swl/deuda-codigo.md +97 -97
  23. package/comandos/swl/discutir-fase.md +169 -169
  24. package/comandos/swl/ejecutar-fase.md +233 -233
  25. package/comandos/swl/evaluar-skill.md +520 -505
  26. package/comandos/swl/evolucion-continua.md +73 -0
  27. package/comandos/swl/evolucionar.md +267 -254
  28. package/comandos/swl/exportar-vault.md +583 -583
  29. package/comandos/swl/fix.md +118 -118
  30. package/comandos/swl/gateway.md +158 -158
  31. package/comandos/swl/inbox.md +116 -116
  32. package/comandos/swl/instalar.md +220 -220
  33. package/comandos/swl/instintos.md +86 -86
  34. package/comandos/swl/mapear-codebase.md +312 -312
  35. package/comandos/swl/mcp-status.md +175 -175
  36. package/comandos/swl/modelo.md +100 -100
  37. package/comandos/swl/nemesis.md +433 -433
  38. package/comandos/swl/notificaciones.md +299 -299
  39. package/comandos/swl/nuevo-proyecto.md +251 -251
  40. package/comandos/swl/planear-fase.md +263 -263
  41. package/comandos/swl/plugins.md +256 -256
  42. package/comandos/swl/predecir.md +169 -169
  43. package/comandos/swl/reflect-skills.md +125 -125
  44. package/comandos/swl/release.md +450 -450
  45. package/comandos/swl/revisar-impacto.md +201 -201
  46. package/comandos/swl/revisar.md +330 -330
  47. package/comandos/swl/seguridad.md +189 -189
  48. package/comandos/swl/sesiones.md +200 -200
  49. package/comandos/swl/skill-search.md +113 -113
  50. package/comandos/swl/status.md +343 -343
  51. package/comandos/swl/verificar.md +817 -817
  52. package/comandos/swl/wiki.md +620 -620
  53. package/gateway/cron/jobs.example.json +12 -0
  54. package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -276
  55. package/habilidades/autoresearch/SKILL.md +3 -2
  56. package/habilidades/benchmark-memoria/SKILL.md +7 -7
  57. package/habilidades/changelog-generator/SKILL.md +174 -174
  58. package/habilidades/changelog-generator/scripts/parse-commits.js +2 -1
  59. package/habilidades/checkpoints-verificacion/SKILL.md +6 -0
  60. package/habilidades/context-builder/SKILL.md +4 -0
  61. package/habilidades/doubt-driven-review/SKILL.md +207 -191
  62. package/habilidades/drift-detection/SKILL.md +6 -1
  63. package/habilidades/ejecutar-fase/SKILL.md +6 -6
  64. package/habilidades/eval-framework/SKILL.md +8 -3
  65. package/habilidades/harness-claude-code/SKILL.md +312 -308
  66. package/habilidades/infra-github-actions/SKILL.md +4 -3
  67. package/habilidades/instalar-sistema/SKILL.md +227 -223
  68. package/habilidades/memoria-busqueda/SKILL.md +31 -39
  69. package/habilidades/planear-fase/SKILL.md +358 -350
  70. package/habilidades/proceso-ddia-fundamentos/SKILL.md +3 -2
  71. package/habilidades/swl-claudemd/SKILL.md +6 -7
  72. package/habilidades/swl-dashboard/SKILL.md +11 -43
  73. package/habilidades/tdd-workflow/SKILL.md +749 -744
  74. package/habilidades/validacion-ci-sistema/SKILL.md +1 -1
  75. package/hooks/agente-lifecycle.js +2 -1
  76. package/hooks/aiisms-detector.js +13 -4
  77. package/hooks/audit-trail.js +2 -1
  78. package/hooks/auto-consolidacion.js +2 -1
  79. package/hooks/captura-acciones-post.js +2 -1
  80. package/hooks/captura-acciones-session.js +2 -1
  81. package/hooks/captura-feedback-usuario.js +3 -2
  82. package/hooks/claudemd-bloat-detector.js +12 -3
  83. package/hooks/claudemd-duplicacion-detector.js +13 -3
  84. package/hooks/contexto-iteracion.js +2 -1
  85. package/hooks/degradacion-instintos.js +2 -1
  86. package/hooks/extraccion-aprendizajes.js +109 -15
  87. package/hooks/grafo-contexto.js +2 -1
  88. package/hooks/guardrail-modelo.js +2 -1
  89. package/hooks/inbox-aviso.js +2 -1
  90. package/hooks/inyeccion-contexto.js +2 -1
  91. package/hooks/lib/agent-matcher.js +2 -1
  92. package/hooks/lib/agent-routing.js +2 -1
  93. package/hooks/lib/autonomia.js +5 -3
  94. package/hooks/lib/captura-acciones.js +2 -1
  95. package/hooks/lib/consolidation-lock.js +21 -10
  96. package/hooks/lib/etapa-auto-evolucion.js +10 -4
  97. package/hooks/lib/etapa-metricas.js +2 -1
  98. package/hooks/lib/etapa-perfil-usuario.js +20 -4
  99. package/hooks/lib/evolution-tracker.js +2 -1
  100. package/hooks/lib/gateway-notify.js +193 -179
  101. package/hooks/lib/loop-telemetry.js +5 -4
  102. package/hooks/lib/mcp-health.js +2 -1
  103. package/hooks/lib/memory-search.js +4 -0
  104. package/hooks/lib/merkle-audit.js +58 -6
  105. package/hooks/lib/nudge-tracker.js +2 -1
  106. package/hooks/lib/otlp-exporter.js +2 -1
  107. package/hooks/lib/propose-step.js +3 -2
  108. package/hooks/lib/raiz-proyecto.js +102 -0
  109. package/hooks/lib/run-log.js +2 -1
  110. package/hooks/lib/singleton-guard.js +218 -27
  111. package/hooks/lib/telegram-cliente.js +17 -8
  112. package/hooks/preservar-estado-pre-compact.js +2 -1
  113. package/hooks/proteccion-rutas.js +59 -3
  114. package/hooks/registro-turnos.js +2 -1
  115. package/hooks/resumen-sesion.js +2 -1
  116. package/hooks/risk-scoring.js +2 -1
  117. package/hooks/rotar-audit-auto.js +46 -20
  118. package/hooks/session-briefing.js +127 -1
  119. package/hooks/spec-gate.js +2 -1
  120. package/hooks/sugerir-contribuir.js +6 -3
  121. package/hooks/sugerir-regenerar-inventario.js +3 -2
  122. package/hooks/tdd-gate.js +2 -1
  123. package/hooks/telemetria-agentes.js +2 -1
  124. package/hooks/telemetria-skill-routing.js +2 -1
  125. package/hooks/tracking-costos.js +4 -3
  126. package/hooks/validar-formato-post-subagente.js +2 -1
  127. package/hooks/validar-intent-spec.js +2 -1
  128. package/hooks/validar-memoria-hook.js +13 -3
  129. package/hooks/validar-planning-paths.js +2 -1
  130. package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +53 -0
  131. package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +372 -0
  132. package/instintos/perfil-usuario.yaml +506 -3
  133. package/instintos/proyecto.yaml +78 -0
  134. package/llms.txt +2 -2
  135. package/manifiestos/canonical-hashes.json +335 -3
  136. package/manifiestos/modulos.json +19 -14
  137. package/manifiestos/planning-paths.json +1 -0
  138. package/manifiestos/skills-lock.json +50 -50
  139. package/package.json +2 -3
  140. package/plugin.json +2 -2
  141. package/scripts/actualizar.js +3 -0
  142. package/scripts/auditar-clases-conocidas.js +32 -4
  143. package/scripts/benchmark-memoria.js +1 -0
  144. package/scripts/cli/autonomia.js +23 -0
  145. package/scripts/cli/benchmark-memoria.js +37 -0
  146. package/scripts/cli/ciclo-autonomo.js +73 -0
  147. package/scripts/cli/ciclo-fase-b.js +102 -0
  148. package/scripts/cli/guardrail-metrics.js +39 -0
  149. package/scripts/cli/loop-telemetry.js +4 -2
  150. package/scripts/cli/memoria-search.js +69 -0
  151. package/scripts/cli/nudge-accionar.js +39 -0
  152. package/scripts/cli/run-eval.js +38 -0
  153. package/scripts/cli/run-skill-evals.js +13 -2
  154. package/scripts/derivar-feature-list.js +15 -14
  155. package/scripts/desinstalar.js +11 -0
  156. package/scripts/doctor.js +24 -10
  157. package/scripts/instalador.js +85 -7
  158. package/scripts/lib/activar-hooks-proyecto.js +12 -0
  159. package/scripts/lib/auditar-invocaciones-comandos.js +96 -6
  160. package/scripts/lib/ciclo-autonomo/candidatos.js +174 -0
  161. package/scripts/lib/ciclo-autonomo/config.js +165 -0
  162. package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -0
  163. package/scripts/lib/ciclo-autonomo/fallback.js +77 -0
  164. package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -0
  165. package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -0
  166. package/scripts/lib/ciclo-autonomo/index.js +301 -0
  167. package/scripts/lib/ciclo-autonomo/lock.js +124 -0
  168. package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -0
  169. package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -0
  170. package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -0
  171. package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -0
  172. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -0
  173. package/scripts/lib/estado.js +9 -0
  174. package/scripts/lib/gitignore-manifest.js +8 -1
  175. package/scripts/lib/hooks-settings.js +45 -0
  176. package/scripts/rotar-audit-logs.js +48 -2
  177. package/scripts/run-eval.js +1 -0
  178. package/scripts/run-skill-evals.js +287 -8
  179. package/scripts/smoke-test.js +16 -8
  180. package/scripts/tui/pantallas/install-wizard.js +403 -347
  181. package/scripts/validar.js +40 -1
@@ -1,234 +1,234 @@
1
- ---
2
- name: swl:claudemd
3
- description: Audita, refactoriza, valida o inicializa archivos CLAUDE.md según best practices Anthropic (ADR-0016). Subcomandos audit (analiza calidad), refactor (sugiere extracciones), check (verifica secciones canónicas), init-user (crea ~/.claude/CLAUDE.md template), init-project (genera CLAUDE.md raíz del proyecto).
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
- ---
6
-
7
- # /swl:claudemd — Tratamiento profesional de CLAUDE.md
8
-
9
- Comando para auditar, refactorizar y mantener `CLAUDE.md` siguiendo las
10
- cinco recomendaciones del video oficial Anthropic *"The CLAUDE.md file"*:
11
-
12
- 1. **Compacto** — empieza sin uno, agrega solo lo que tengas que corregir
13
- 2. **Stack arriba** — lenguaje, framework, ORM, BD
14
- 3. **Commands** — cómo correr dev, tests, lint, build
15
- 4. **Code style** — convenciones de indentación, exports, nombrado
16
- 5. **Conventions** — dónde van las cosas, qué patrones preferir
17
-
18
- **Carga**: `Skill("swl-claudemd")` — contiene la lógica de auditoría, las
19
- secciones canónicas, los umbrales de inflación y los templates de
20
- generación. Delega análisis y criterios al skill.
21
-
22
- ## Subcomandos
23
-
24
- | Subcomando | Propósito |
25
- |---|---|
26
- | `/swl:claudemd audit` | Audita el CLAUDE.md actual (líneas, bullets gigantes, secciones canónicas, @references, placeholders) |
27
- | `/swl:claudemd check` | Como audit pero exit 1 si hay WARN — útil en pre-commit/CI |
28
- | `/swl:claudemd refactor` | Sugiere extracciones a archivos `@`-referenciados (no modifica, solo propone diff) |
29
- | `/swl:claudemd init-user` | Crea `~/.claude/CLAUDE.md` con template de preferencias personales si no existe |
30
- | `/swl:claudemd init-project` | Genera CLAUDE.md raíz del proyecto detectando el stack actual |
31
-
32
- Sin subcomando: equivale a `audit`.
33
-
34
- ## Cuándo usar
35
-
36
- - Después de modificar manualmente CLAUDE.md (verifica calidad)
37
- - Al inicio de un proyecto que no tenía CLAUDE.md (init-project)
38
- - Al cambiar de máquina y querer transportar preferencias (init-user)
39
- - En pre-commit hook si el proyecto trackea CLAUDE.md (check)
40
- - Cuando el hook `claudemd-bloat-detector` emite nudge
41
-
42
- ## Ejecución de cada subcomando
43
-
44
- ### audit / check
45
-
46
- ```bash
47
- npx -y @saulwade/swl-ses@latest audit-claudemd # output legible
48
- npx -y @saulwade/swl-ses@latest audit-claudemd --json # output JSON estructurado
49
- npx -y @saulwade/swl-ses@latest audit-claudemd --strict # exit 1 si WARN (modo check)
50
- ```
51
-
52
- El subcomando `audit-claudemd` del CLI funciona con cualquier modo de instalación
53
- (global vía `npm i -g`, npx puntual o local dev) porque resuelve el script via
54
- el paquete npm, no via path relativo al CWD. Es independiente del proyecto desde
55
- donde se invoque.
56
-
57
- El veredicto puede ser:
58
-
59
- - **OK** — cumple best practices, sin hallazgos
60
- - **WARN** — tiene oportunidades de mejora (líneas excesivas, bullets
61
- gigantes, secciones ausentes, sin @references)
62
- - **ERROR** — no existe, tiene placeholders sin reemplazar, faltan
63
- secciones críticas
64
-
65
- ### refactor
66
-
67
- Lee el CLAUDE.md actual, identifica candidatos a extracción (bullets
68
- monolíticos, secciones largas, contenido duplicable a `@references`) y
69
- imprime el diff propuesto. **NO modifica el archivo** — el usuario
70
- revisa y aplica manualmente o con `git apply`.
71
-
72
- Patrones de extracción típicos:
73
-
74
- | Si el bullet/sección contiene… | Mover a… |
75
- |---|---|
76
- | Variables de entorno opt-in | `docs/variables-entorno.md` |
77
- | Reglas de gobernanza extensas | `docs/gobernanza.md` |
78
- | Catálogo de comandos completo | `COMANDOS.md` (referenciar) |
79
- | Mapa de propagación detallado | `docs/mapa-propagacion.md` |
80
- | Convenciones de cada capa | `docs/convenciones-{capa}.md` |
81
-
82
- ### init-user
83
-
84
- Verifica si existe `~/.claude/CLAUDE.md` (en Windows:
85
- `%USERPROFILE%\.claude\CLAUDE.md`). Si no existe, genera template
86
- mínimo:
87
-
88
- ```markdown
89
- # CLAUDE.md (preferencias personales transversales)
90
-
91
- > Este archivo aplica a TODOS mis proyectos. Las reglas específicas de
92
- > proyecto van en el CLAUDE.md de la raíz del proyecto, no aquí.
93
-
94
- ## Mi rol y stack preferido
95
-
96
- - Rol: [ej. ingeniero senior backend]
97
- - Stack preferido: [ej. Python + FastAPI, TypeScript + Next.js]
98
- - Herramientas habituales: [ej. Neovim, ripgrep, fd, gh CLI]
99
-
100
- ## Estilo de comunicación
101
-
102
- - Idioma: español
103
- - Formato preferido para respuestas: [breve / detallado / con tablas]
104
- - Cuándo prefiero ver alternativas vs. una sola recomendación
105
-
106
- ## Patrones que aplico siempre
107
-
108
- - [ej. "Antes de implementar, mostrar el plan"]
109
- - [ej. "Tests para todo código nuevo, sin excepción"]
110
- - [ej. "Commits atómicos en español, formato conventional"]
111
- ```
112
-
113
- Si ya existe, NO lo sobreescribe — sugiere añadir secciones faltantes.
114
-
115
- ### init-project
116
-
117
- Detecta el stack del proyecto actual con `scripts/lib/detectar-stack-detallado.js`
118
- y genera `./CLAUDE.md` mínimo con:
119
-
120
- - Sección **Reglas obligatorias** que **DEBE** incluir como primera línea
121
- bajo el encabezado:
122
- ```markdown
123
- ## Reglas obligatorias
124
-
125
- Aplica la regla global `usar-sistema-swl.md` (matriz operacional del sistema
126
- SWL), auto-cargada desde `.claude/rules/`. NO duplicar su contenido aquí.
127
- ```
128
- Esta mención es obligatoria — recuerda la matriz operacional de uso del
129
- sistema SWL. NO usar `@reglas/usar-sistema-swl.md`: la regla se auto-carga
130
- desde `.claude/rules/` y un `@reglas/...` se rompe en proyectos downstream
131
- (ahí no existe `reglas/`). Las demás reglas globales (`seguridad.md`,
132
- `arquitectura.md`, etc.) también se auto-cargan desde `.claude/rules/` — NO
133
- referenciarlas con `@reglas/...`; mencionarlas por nombre si hace falta.
134
- - Sección **Reglas de máxima prioridad** con sub-sección obligatoria
135
- **Cuatro principios de implementación (Karpathy)**:
136
- ```markdown
137
- ### Cuatro principios de implementación (Karpathy)
138
- Antes de implementar, refactorizar o corregir bugs: (1) **pensar antes de codificar** (no asumir en silencio), (2) **simplicidad primero** (sin abstracciones especulativas), (3) **cambios quirúrgicos** (leer archivo completo antes de editar, no refactor de oportunidad), (4) **ejecución orientada a metas** (criterios verificables, test que reproduce bugs antes del fix). Detalle + 9 ejemplos MAL→BIEN: `Skill("prevencion-sobreingenieria")` + `recursos/EXAMPLES.md`.
139
- ```
140
- Esta sub-sección es estándar SWL y cubre los gaps cognitivos más
141
- frecuentes del agente sin agregar reglas específicas del proyecto.
142
- - Sección **Stack** poblada (lenguaje, framework, ORM, package manager)
143
- - Sección **Comandos** poblada (npm scripts detectados o comandos típicos)
144
- - Sección **Code style** vacía con placeholders
145
- - Sección **Conventions** vacía con placeholders
146
- - Sección **@references** apuntando a `.planning/PROYECTO.md`,
147
- `README.md`, etc. si existen
148
-
149
- Si CLAUDE.md ya existe, **NO lo sobreescribe**. Sugiere correr
150
- `/swl:claudemd refactor` para mejorar el actual. Si detecta que el CLAUDE.md
151
- existente NO menciona la regla global `usar-sistema-swl` o NO menciona los cuatro
152
- principios Karpathy (o `prevencion-sobreingenieria`), emitir hallazgo WARN
153
- recomendando agregarlo manualmente.
154
-
155
- ### Validación síncrona post-generación
156
-
157
- Tras `init-project` generar el archivo nuevo, ejecutar inmediatamente
158
- `audit` sobre el resultado:
159
-
160
- ```bash
161
- swl-ses audit-claudemd --json
162
- # Fallback si el script no está en el proyecto destino (instalación global vía npm):
163
- npx -y @saulwade/swl-ses@latest audit-claudemd --json
164
- ```
165
-
166
- Veredicto esperado: `OK` (el template debe respetar el contrato por
167
- construcción). Cualquier WARN/ERROR es bug del template — reportar al
168
- usuario y abrir issue para corrección. Este check es parte del contrato
169
- cruzado con `/swl:aprender` documentado en `@docs/contrato-aprender-claudemd.md`.
170
-
171
- ### audit — checks específicos sobre Karpathy
172
-
173
- El subcomando `audit` verifica además de las dimensiones estándar:
174
-
175
- - ¿El CLAUDE.md menciona los cuatro principios Karpathy (texto literal
176
- "Karpathy" o nombres de los 4 principios) o referencia
177
- `prevencion-sobreingenieria` con `Skill(...)` o `@reglas/`?
178
-
179
- Si NO los menciona y el archivo tiene >50 líneas: emitir hallazgo WARN
180
- recomendando agregar la sub-sección compacta (4 líneas) como guía de
181
- implementación. NO emite WARN para CLAUDE.md mínimos (<50 LOC) ni para
182
- archivos `~/.claude/CLAUDE.md` user-level (esos siguen otro contrato).
183
-
184
- ### audit — checks específicos sobre duplicación de reglas globales
185
-
186
- El subcomando `audit` también detecta (dimensión 7) si CLAUDE.md duplica
187
- reglas que ya viven en `~/.claude/rules/` y se cargan globalmente.
188
- Consume el catálogo declarativo
189
- `scripts/lib/reglas-globales-conocidas.json` que cataloga 6 reglas
190
- conocidas:
191
-
192
- - `brevedad-output.md` § Idioma obligatorio: español de México
193
- - `brevedad-output.md` § Brevedad y eficiencia de output
194
- - `git-coauthor.md` § Sin co-autores en commits
195
- - `arreglar-al-detectar.md` § Detectar → Informar → Arreglar
196
- - `debatir-antes-de-aceptar.md`
197
- - `usar-context7.md`
198
-
199
- Si detecta duplicación: emite hallazgo `duplicacion-reglas-globales`
200
- severidad WARN con línea aproximada y remediación específica. NO bloquea
201
- el comando — sirve como nudge para limpiar el CLAUDE.md.
202
-
203
- NO aplica a `~/.claude/CLAUDE.md` user-level (ahí sí pueden declararse
204
- preferencias personales que parafrasean reglas globales).
205
-
206
- Aplica regla `reglas/sin-duplicacion-reglas-globales.md`.
207
-
208
- ### refactor — propuestas para duplicaciones de reglas globales
209
-
210
- Cuando `audit` detecta duplicaciones, el subcomando `refactor` propone
211
- el reemplazo concreto usando `construirSugerenciaRefactor()` del
212
- detector. Cada propuesta incluye:
213
-
214
- - **Bloque a eliminar** (línea aproximada en CLAUDE.md)
215
- - **Regla global afectada** (archivo + sección canónica)
216
- - **Reemplazo sugerido** (3 opciones):
217
- 1. Eliminar el bloque — la regla global YA aplica automáticamente
218
- 2. Reescribir como matiz local en ≤3 líneas referenciando la regla
219
- 3. Documentar override explícito con justificación
220
-
221
- El refactor SOLO imprime el diff propuesto. El usuario decide aplicar.
222
-
223
- ## Variables de entorno
224
-
225
- Ver `@docs/variables-entorno.md` sección "Calidad de CLAUDE.md":
226
-
227
- - `SWL_CLAUDEMD_BLOAT` (on/off) — activa hook `claudemd-bloat-detector`
228
- - `SWL_CLAUDEMD_MAX_LINES` (default 200) — umbral de líneas totales
229
- - `SWL_CLAUDEMD_MAX_BULLET_CHARS` (default 1000) — umbral de bullet/párrafo
230
-
231
- ## Exit codes
232
-
233
- - `0` — OK o WARN (consultivo)
234
- - `1` — ERROR o `--strict` + WARN
1
+ ---
2
+ name: swl:claudemd
3
+ description: Audita, refactoriza, valida o inicializa archivos CLAUDE.md según best practices Anthropic (ADR-0016). Subcomandos audit (analiza calidad), refactor (sugiere extracciones), check (verifica secciones canónicas), init-user (crea ~/.claude/CLAUDE.md template), init-project (genera CLAUDE.md raíz del proyecto).
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:claudemd — Tratamiento profesional de CLAUDE.md
8
+
9
+ Comando para auditar, refactorizar y mantener `CLAUDE.md` siguiendo las
10
+ cinco recomendaciones del video oficial Anthropic *"The CLAUDE.md file"*:
11
+
12
+ 1. **Compacto** — empieza sin uno, agrega solo lo que tengas que corregir
13
+ 2. **Stack arriba** — lenguaje, framework, ORM, BD
14
+ 3. **Commands** — cómo correr dev, tests, lint, build
15
+ 4. **Code style** — convenciones de indentación, exports, nombrado
16
+ 5. **Conventions** — dónde van las cosas, qué patrones preferir
17
+
18
+ **Carga**: `Skill("swl-claudemd")` — contiene la lógica de auditoría, las
19
+ secciones canónicas, los umbrales de inflación y los templates de
20
+ generación. Delega análisis y criterios al skill.
21
+
22
+ ## Subcomandos
23
+
24
+ | Subcomando | Propósito |
25
+ |---|---|
26
+ | `/swl:claudemd audit` | Audita el CLAUDE.md actual (líneas, bullets gigantes, secciones canónicas, @references, placeholders) |
27
+ | `/swl:claudemd check` | Como audit pero exit 1 si hay WARN — útil en pre-commit/CI |
28
+ | `/swl:claudemd refactor` | Sugiere extracciones a archivos `@`-referenciados (no modifica, solo propone diff) |
29
+ | `/swl:claudemd init-user` | Crea `~/.claude/CLAUDE.md` con template de preferencias personales si no existe |
30
+ | `/swl:claudemd init-project` | Genera CLAUDE.md raíz del proyecto detectando el stack actual |
31
+
32
+ Sin subcomando: equivale a `audit`.
33
+
34
+ ## Cuándo usar
35
+
36
+ - Después de modificar manualmente CLAUDE.md (verifica calidad)
37
+ - Al inicio de un proyecto que no tenía CLAUDE.md (init-project)
38
+ - Al cambiar de máquina y querer transportar preferencias (init-user)
39
+ - En pre-commit hook si el proyecto trackea CLAUDE.md (check)
40
+ - Cuando el hook `claudemd-bloat-detector` emite nudge
41
+
42
+ ## Ejecución de cada subcomando
43
+
44
+ ### audit / check
45
+
46
+ ```bash
47
+ npx -y @saulwade/swl-ses@latest audit-claudemd # output legible
48
+ npx -y @saulwade/swl-ses@latest audit-claudemd --json # output JSON estructurado
49
+ npx -y @saulwade/swl-ses@latest audit-claudemd --strict # exit 1 si WARN (modo check)
50
+ ```
51
+
52
+ El subcomando `audit-claudemd` del CLI funciona con cualquier modo de instalación
53
+ (global vía `npm i -g`, npx puntual o local dev) porque resuelve el script via
54
+ el paquete npm, no via path relativo al CWD. Es independiente del proyecto desde
55
+ donde se invoque.
56
+
57
+ El veredicto puede ser:
58
+
59
+ - **OK** — cumple best practices, sin hallazgos
60
+ - **WARN** — tiene oportunidades de mejora (líneas excesivas, bullets
61
+ gigantes, secciones ausentes, sin @references)
62
+ - **ERROR** — no existe, tiene placeholders sin reemplazar, faltan
63
+ secciones críticas
64
+
65
+ ### refactor
66
+
67
+ Lee el CLAUDE.md actual, identifica candidatos a extracción (bullets
68
+ monolíticos, secciones largas, contenido duplicable a `@references`) y
69
+ imprime el diff propuesto. **NO modifica el archivo** — el usuario
70
+ revisa y aplica manualmente o con `git apply`.
71
+
72
+ Patrones de extracción típicos:
73
+
74
+ | Si el bullet/sección contiene… | Mover a… |
75
+ |---|---|
76
+ | Variables de entorno opt-in | `docs/variables-entorno.md` |
77
+ | Reglas de gobernanza extensas | `docs/gobernanza.md` |
78
+ | Catálogo de comandos completo | `COMANDOS.md` (referenciar) |
79
+ | Mapa de propagación detallado | `docs/mapa-propagacion.md` |
80
+ | Convenciones de cada capa | `docs/convenciones-{capa}.md` |
81
+
82
+ ### init-user
83
+
84
+ Verifica si existe `~/.claude/CLAUDE.md` (en Windows:
85
+ `%USERPROFILE%\.claude\CLAUDE.md`). Si no existe, genera template
86
+ mínimo:
87
+
88
+ ```markdown
89
+ # CLAUDE.md (preferencias personales transversales)
90
+
91
+ > Este archivo aplica a TODOS mis proyectos. Las reglas específicas de
92
+ > proyecto van en el CLAUDE.md de la raíz del proyecto, no aquí.
93
+
94
+ ## Mi rol y stack preferido
95
+
96
+ - Rol: [ej. ingeniero senior backend]
97
+ - Stack preferido: [ej. Python + FastAPI, TypeScript + Next.js]
98
+ - Herramientas habituales: [ej. Neovim, ripgrep, fd, gh CLI]
99
+
100
+ ## Estilo de comunicación
101
+
102
+ - Idioma: español
103
+ - Formato preferido para respuestas: [breve / detallado / con tablas]
104
+ - Cuándo prefiero ver alternativas vs. una sola recomendación
105
+
106
+ ## Patrones que aplico siempre
107
+
108
+ - [ej. "Antes de implementar, mostrar el plan"]
109
+ - [ej. "Tests para todo código nuevo, sin excepción"]
110
+ - [ej. "Commits atómicos en español, formato conventional"]
111
+ ```
112
+
113
+ Si ya existe, NO lo sobreescribe — sugiere añadir secciones faltantes.
114
+
115
+ ### init-project
116
+
117
+ Detecta el stack del proyecto actual con `scripts/lib/detectar-stack-detallado.js`
118
+ y genera `./CLAUDE.md` mínimo con:
119
+
120
+ - Sección **Reglas obligatorias** que **DEBE** incluir como primera línea
121
+ bajo el encabezado:
122
+ ```markdown
123
+ ## Reglas obligatorias
124
+
125
+ Aplica la regla global `usar-sistema-swl.md` (matriz operacional del sistema
126
+ SWL), auto-cargada desde `.claude/rules/`. NO duplicar su contenido aquí.
127
+ ```
128
+ Esta mención es obligatoria — recuerda la matriz operacional de uso del
129
+ sistema SWL. NO usar `@reglas/usar-sistema-swl.md`: la regla se auto-carga
130
+ desde `.claude/rules/` y un `@reglas/...` se rompe en proyectos downstream
131
+ (ahí no existe `reglas/`). Las demás reglas globales (`seguridad.md`,
132
+ `arquitectura.md`, etc.) también se auto-cargan desde `.claude/rules/` — NO
133
+ referenciarlas con `@reglas/...`; mencionarlas por nombre si hace falta.
134
+ - Sección **Reglas de máxima prioridad** con sub-sección obligatoria
135
+ **Cuatro principios de implementación (Karpathy)**:
136
+ ```markdown
137
+ ### Cuatro principios de implementación (Karpathy)
138
+ Antes de implementar, refactorizar o corregir bugs: (1) **pensar antes de codificar** (no asumir en silencio), (2) **simplicidad primero** (sin abstracciones especulativas), (3) **cambios quirúrgicos** (leer archivo completo antes de editar, no refactor de oportunidad), (4) **ejecución orientada a metas** (criterios verificables, test que reproduce bugs antes del fix). Detalle + 9 ejemplos MAL→BIEN: `Skill("prevencion-sobreingenieria")` + `recursos/EXAMPLES.md`.
139
+ ```
140
+ Esta sub-sección es estándar SWL y cubre los gaps cognitivos más
141
+ frecuentes del agente sin agregar reglas específicas del proyecto.
142
+ - Sección **Stack** poblada (lenguaje, framework, ORM, package manager)
143
+ - Sección **Comandos** poblada (npm scripts detectados o comandos típicos)
144
+ - Sección **Code style** vacía con placeholders
145
+ - Sección **Conventions** vacía con placeholders
146
+ - Sección **@references** apuntando a `.planning/PROYECTO.md`,
147
+ `README.md`, etc. si existen
148
+
149
+ Si CLAUDE.md ya existe, **NO lo sobreescribe**. Sugiere correr
150
+ `/swl:claudemd refactor` para mejorar el actual. Si detecta que el CLAUDE.md
151
+ existente NO menciona la regla global `usar-sistema-swl` o NO menciona los cuatro
152
+ principios Karpathy (o `prevencion-sobreingenieria`), emitir hallazgo WARN
153
+ recomendando agregarlo manualmente.
154
+
155
+ ### Validación síncrona post-generación
156
+
157
+ Tras `init-project` generar el archivo nuevo, ejecutar inmediatamente
158
+ `audit` sobre el resultado:
159
+
160
+ ```bash
161
+ swl-ses audit-claudemd --json
162
+ # Fallback si el script no está en el proyecto destino (instalación global vía npm):
163
+ npx -y @saulwade/swl-ses@latest audit-claudemd --json
164
+ ```
165
+
166
+ Veredicto esperado: `OK` (el template debe respetar el contrato por
167
+ construcción). Cualquier WARN/ERROR es bug del template — reportar al
168
+ usuario y abrir issue para corrección. Este check es parte del contrato
169
+ cruzado con `/swl:aprender` documentado en `@docs/contrato-aprender-claudemd.md`.
170
+
171
+ ### audit — checks específicos sobre Karpathy
172
+
173
+ El subcomando `audit` verifica además de las dimensiones estándar:
174
+
175
+ - ¿El CLAUDE.md menciona los cuatro principios Karpathy (texto literal
176
+ "Karpathy" o nombres de los 4 principios) o referencia
177
+ `prevencion-sobreingenieria` con `Skill(...)` o `@reglas/`?
178
+
179
+ Si NO los menciona y el archivo tiene >50 líneas: emitir hallazgo WARN
180
+ recomendando agregar la sub-sección compacta (4 líneas) como guía de
181
+ implementación. NO emite WARN para CLAUDE.md mínimos (<50 LOC) ni para
182
+ archivos `~/.claude/CLAUDE.md` user-level (esos siguen otro contrato).
183
+
184
+ ### audit — checks específicos sobre duplicación de reglas globales
185
+
186
+ El subcomando `audit` también detecta (dimensión 7) si CLAUDE.md duplica
187
+ reglas que ya viven en `~/.claude/rules/` y se cargan globalmente.
188
+ Consume el catálogo declarativo
189
+ `scripts/lib/reglas-globales-conocidas.json` que cataloga 6 reglas
190
+ conocidas:
191
+
192
+ - `brevedad-output.md` § Idioma obligatorio: español de México
193
+ - `brevedad-output.md` § Brevedad y eficiencia de output
194
+ - `git-coauthor.md` § Sin co-autores en commits
195
+ - `arreglar-al-detectar.md` § Detectar → Informar → Arreglar
196
+ - `debatir-antes-de-aceptar.md`
197
+ - `usar-context7.md`
198
+
199
+ Si detecta duplicación: emite hallazgo `duplicacion-reglas-globales`
200
+ severidad WARN con línea aproximada y remediación específica. NO bloquea
201
+ el comando — sirve como nudge para limpiar el CLAUDE.md.
202
+
203
+ NO aplica a `~/.claude/CLAUDE.md` user-level (ahí sí pueden declararse
204
+ preferencias personales que parafrasean reglas globales).
205
+
206
+ Aplica regla `reglas/sin-duplicacion-reglas-globales.md`.
207
+
208
+ ### refactor — propuestas para duplicaciones de reglas globales
209
+
210
+ Cuando `audit` detecta duplicaciones, el subcomando `refactor` propone
211
+ el reemplazo concreto usando `construirSugerenciaRefactor()` del
212
+ detector. Cada propuesta incluye:
213
+
214
+ - **Bloque a eliminar** (línea aproximada en CLAUDE.md)
215
+ - **Regla global afectada** (archivo + sección canónica)
216
+ - **Reemplazo sugerido** (3 opciones):
217
+ 1. Eliminar el bloque — la regla global YA aplica automáticamente
218
+ 2. Reescribir como matiz local en ≤3 líneas referenciando la regla
219
+ 3. Documentar override explícito con justificación
220
+
221
+ El refactor SOLO imprime el diff propuesto. El usuario decide aplicar.
222
+
223
+ ## Variables de entorno
224
+
225
+ Ver `@docs/variables-entorno.md` sección "Calidad de CLAUDE.md":
226
+
227
+ - `SWL_CLAUDEMD_BLOAT` (on/off) — activa hook `claudemd-bloat-detector`
228
+ - `SWL_CLAUDEMD_MAX_LINES` (default 200) — umbral de líneas totales
229
+ - `SWL_CLAUDEMD_MAX_BULLET_CHARS` (default 1000) — umbral de bullet/párrafo
230
+
231
+ ## Exit codes
232
+
233
+ - `0` — OK o WARN (consultivo)
234
+ - `1` — ERROR o `--strict` + WARN