@saulwade/swl-ses 2.3.0 → 2.4.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 (327) hide show
  1. package/CLAUDE.md +241 -199
  2. package/README.md +597 -597
  3. package/agentes/_intent-spec.md +73 -73
  4. package/agentes/_propose-step.md +90 -90
  5. package/agentes/accesibilidad-wcag-swl.md +2 -2
  6. package/agentes/arquitecto-swl.md +2 -2
  7. package/agentes/auto-evolucion-swl.md +2 -2
  8. package/agentes/backend-api-swl.md +2 -2
  9. package/agentes/backend-csharp-swl.md +2 -2
  10. package/agentes/backend-go-swl.md +2 -2
  11. package/agentes/backend-java-swl.md +2 -2
  12. package/agentes/backend-node-swl.md +2 -2
  13. package/agentes/backend-python-swl.md +2 -2
  14. package/agentes/backend-rust-swl.md +2 -2
  15. package/agentes/backend-workers-swl.md +2 -2
  16. package/agentes/cloud-infra-swl.md +2 -2
  17. package/agentes/consolidador-swl.md +2 -2
  18. package/agentes/datos-swl.md +2 -2
  19. package/agentes/depurador-swl.md +2 -2
  20. package/agentes/devops-ci-swl.md +2 -2
  21. package/agentes/disenador-ui-swl.md +2 -2
  22. package/agentes/documentador-swl.md +2 -2
  23. package/agentes/frontend-angular-swl.md +2 -2
  24. package/agentes/frontend-css-swl.md +2 -2
  25. package/agentes/frontend-react-swl.md +2 -2
  26. package/agentes/frontend-swl.md +2 -2
  27. package/agentes/frontend-tailwind-swl.md +2 -2
  28. package/agentes/gh-fix-ci-swl.md +275 -275
  29. package/agentes/implementador-swl.md +2 -2
  30. package/agentes/investigador-swl.md +2 -2
  31. package/agentes/investigador-ux-swl.md +2 -2
  32. package/agentes/llm-apps-swl.md +2 -2
  33. package/agentes/migrador-swl.md +2 -2
  34. package/agentes/mobile-android-swl.md +2 -2
  35. package/agentes/mobile-cross-swl.md +2 -2
  36. package/agentes/mobile-ios-swl.md +2 -2
  37. package/agentes/mobile-testing-swl.md +2 -2
  38. package/agentes/nemesis-auditor-swl.md +1 -1
  39. package/agentes/notificador-swl.md +2 -2
  40. package/agentes/observabilidad-swl.md +2 -2
  41. package/agentes/orquestador-swl.md +41 -14
  42. package/agentes/pagos-swl.md +2 -2
  43. package/agentes/perfilador-usuario-swl.md +2 -2
  44. package/agentes/planificador-swl.md +2 -2
  45. package/agentes/producto-prd-swl.md +2 -2
  46. package/agentes/red-team-swl.md +218 -218
  47. package/agentes/release-manager-swl.md +2 -2
  48. package/agentes/rendimiento-swl.md +2 -2
  49. package/agentes/resolutor-build-swl.md +2 -2
  50. package/agentes/revisor-angular-swl.md +2 -2
  51. package/agentes/revisor-codigo-swl.md +36 -3
  52. package/agentes/revisor-csharp-swl.md +2 -2
  53. package/agentes/revisor-go-swl.md +2 -2
  54. package/agentes/revisor-java-swl.md +2 -2
  55. package/agentes/revisor-kotlin-swl.md +2 -2
  56. package/agentes/revisor-nextjs-swl.md +2 -2
  57. package/agentes/revisor-php-swl.md +2 -2
  58. package/agentes/revisor-react-swl.md +2 -2
  59. package/agentes/revisor-rust-swl.md +2 -2
  60. package/agentes/revisor-seguridad-swl.md +2 -2
  61. package/agentes/revisor-swift-swl.md +2 -2
  62. package/agentes/revisor-typescript-swl.md +2 -2
  63. package/agentes/sre-swl.md +2 -2
  64. package/agentes/tdd-qa-swl.md +2 -2
  65. package/comandos/swl/briefing.md +119 -119
  66. package/comandos/swl/contexto.md +0 -2
  67. package/comandos/swl/contribuir.md +233 -233
  68. package/comandos/swl/deuda-codigo.md +97 -0
  69. package/comandos/swl/predecir.md +139 -139
  70. package/comandos/swl/sesiones.md +1 -1
  71. package/gateway/agent-executor.js +1 -1
  72. package/gateway/lib/event-channel.js +191 -191
  73. package/habilidades/agent-deep-links/SKILL.md +148 -148
  74. package/habilidades/agentes-como-servicio/SKILL.md +2 -2
  75. package/habilidades/angular-moderno/SKILL.md +24 -1
  76. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  77. package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
  78. package/habilidades/backend-error-design/SKILL.md +221 -221
  79. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  80. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  81. package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
  82. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  83. package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
  84. package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
  85. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  86. package/habilidades/contenedores-docker/SKILL.md +3 -1
  87. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  88. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  89. package/habilidades/drift-detection/SKILL.md +179 -179
  90. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
  91. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  92. package/habilidades/eval-framework/SKILL.md +212 -212
  93. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  94. package/habilidades/harness-claude-code/SKILL.md +4 -4
  95. package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +253 -252
  96. package/habilidades/legacy-code-rescue/SKILL.md +268 -267
  97. package/habilidades/meta-skills-estandar/SKILL.md +1 -1
  98. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  99. package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +2 -2
  100. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  101. package/habilidades/perfil-usuario/SKILL.md +200 -200
  102. package/habilidades/postgresql-experto/SKILL.md +3 -1
  103. package/habilidades/prevencion-sobreingenieria/SKILL.md +70 -92
  104. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  105. package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -0
  106. package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -0
  107. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
  108. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  109. package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
  110. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  111. package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
  112. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  113. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  114. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  115. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  116. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
  117. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  118. package/habilidades/structured-outputs/SKILL.md +2 -2
  119. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  120. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  121. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  122. package/habilidades/swl-dashboard/SKILL.md +2 -2
  123. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  124. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
  125. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
  126. package/hooks/audit-trail.js +4 -4
  127. package/hooks/calidad-pre-commit.js +15 -11
  128. package/hooks/captura-acciones-post.js +3 -2
  129. package/hooks/captura-acciones-session.js +3 -2
  130. package/hooks/ciclo-evolucion-subagente.js +26 -26
  131. package/hooks/ciclo-evolucion.js +26 -26
  132. package/hooks/claudemd-bloat-detector.js +161 -161
  133. package/hooks/claudemd-duplicacion-detector.js +170 -170
  134. package/hooks/contexto-iteracion.js +145 -144
  135. package/hooks/contexto-subagente.js +68 -0
  136. package/hooks/guardrail-modelo.js +14 -4
  137. package/hooks/inyeccion-contexto.js +12 -12
  138. package/hooks/lib/agent-routing.js +107 -107
  139. package/hooks/lib/auto-consolidator.js +335 -335
  140. package/hooks/lib/autonomia.js +208 -208
  141. package/hooks/lib/ciclo-evolucion.js +47 -47
  142. package/hooks/lib/deep-links.js +185 -185
  143. package/hooks/lib/error-classifier.js +308 -308
  144. package/hooks/lib/etapa-auto-evolucion.js +701 -701
  145. package/hooks/lib/etapa-metricas.js +388 -388
  146. package/hooks/lib/etapa-perfil-usuario.js +376 -376
  147. package/hooks/lib/loop-telemetry.js +321 -321
  148. package/hooks/lib/merkle-audit.js +96 -96
  149. package/hooks/lib/model-router.js +2 -2
  150. package/hooks/lib/propose-step.js +358 -358
  151. package/hooks/lib/provenance-tracker.js +191 -191
  152. package/hooks/lib/rate-limit-tracker.js +253 -253
  153. package/hooks/lib/resource-quota.js +122 -122
  154. package/hooks/lib/retry-jitter.js +165 -165
  155. package/hooks/lib/security-net.js +201 -201
  156. package/hooks/lib/skill-auditor.js +588 -588
  157. package/hooks/lib/sync-status.js +228 -228
  158. package/hooks/lib/taint-tracker.js +107 -107
  159. package/hooks/lib/text-similarity.js +241 -241
  160. package/hooks/lib/token-estimator.js +1 -0
  161. package/hooks/lib/toon-compressor.js +245 -245
  162. package/hooks/lib/usage-model.js +1 -1
  163. package/hooks/registro-turnos.js +210 -209
  164. package/hooks/session-briefing.js +98 -98
  165. package/hooks/spec-gate.js +212 -211
  166. package/hooks/sugerir-contribuir.js +2 -1
  167. package/hooks/sugerir-regenerar-inventario.js +171 -170
  168. package/hooks/tdd-gate.js +242 -241
  169. package/hooks/telemetria-skill-routing.js +100 -100
  170. package/hooks/validar-formato-post-subagente.js +140 -140
  171. package/hooks/validar-intent-spec.js +242 -242
  172. package/hooks/validar-memoria-hook.js +218 -218
  173. package/hooks/validar-planning-paths.js +134 -134
  174. package/instintos/autonomia.yaml +27 -27
  175. package/instintos/prompt-appendices.yaml +57 -57
  176. package/llms.txt +29 -29
  177. package/manifiestos/agent-output-schemas.json +57 -57
  178. package/manifiestos/canonical-hashes.json +2948 -1964
  179. package/manifiestos/hook-profiles.json +0 -2
  180. package/manifiestos/hooks-config.json +469 -477
  181. package/manifiestos/invariantes-criticos.json +30 -0
  182. package/manifiestos/modulos.json +1390 -1390
  183. package/manifiestos/planning-paths.json +44 -44
  184. package/manifiestos/skills-lock.json +1282 -1282
  185. package/package.json +93 -93
  186. package/plantillas/auditor-veto-template.md +105 -105
  187. package/plantillas/github-workflows/README.md +47 -47
  188. package/plantillas/github-workflows/release-please.yml +44 -44
  189. package/plantillas/github-workflows/swl-ci.yml +107 -107
  190. package/plantillas/github-workflows/swl-security.yml +51 -51
  191. package/plugin.json +369 -371
  192. package/reglas/accesibilidad.md +10 -10
  193. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  194. package/reglas/api-diseno.md +9 -9
  195. package/reglas/arreglar-al-detectar.md +240 -240
  196. package/reglas/auditorias-documentales-estructurales.md +7 -7
  197. package/reglas/cloud-infra.md +8 -8
  198. package/reglas/consultar-vault-primero.md +195 -195
  199. package/reglas/debatir-antes-de-aceptar.md +158 -158
  200. package/reglas/fragmentos-compartidos.md +183 -183
  201. package/reglas/hooks.md +6 -6
  202. package/reglas/intent-engineering.md +218 -218
  203. package/reglas/markitdown.md +8 -8
  204. package/reglas/monitor-ci.md +309 -309
  205. package/reglas/patrones.md +6 -6
  206. package/reglas/sesiones-paralelas.md +180 -180
  207. package/reglas/sin-duplicacion-reglas-globales.md +182 -182
  208. package/reglas/skills-estandar.md +6 -6
  209. package/reglas/testing.md +7 -7
  210. package/reglas/tests-cleanup.md +224 -224
  211. package/reglas/usar-code-review-graph.md +155 -155
  212. package/reglas/usar-context7.md +226 -226
  213. package/reglas/verificar-citas-normativas.md +548 -548
  214. package/schemas/agent-frontmatter.schema.json +5 -3
  215. package/schemas/agent-message.schema.json +73 -73
  216. package/schemas/agent-output-implementacion.schema.json +114 -114
  217. package/schemas/agent-output-planificacion.schema.json +150 -150
  218. package/schemas/agent-output-review.schema.json +98 -98
  219. package/schemas/diary-entry.schema.json +112 -112
  220. package/schemas/hook-profiles.schema.json +54 -54
  221. package/schemas/hooks-config.schema.json +89 -89
  222. package/schemas/modulos.schema.json +38 -38
  223. package/schemas/perfiles.schema.json +36 -36
  224. package/schemas/plugin.schema.json +77 -77
  225. package/schemas/skill-evals.schema.json +119 -119
  226. package/schemas/skill-frontmatter.schema.json +245 -245
  227. package/scripts/audit-tools/audit-history.js +330 -330
  228. package/scripts/audit-tools/bundle-tracker.js +290 -290
  229. package/scripts/audit-tools/canary-monitor.js +352 -352
  230. package/scripts/audit-tools/code-profiler.js +605 -605
  231. package/scripts/audit-tools/dep-doctor.js +320 -320
  232. package/scripts/audit-tools/env-validator.js +206 -206
  233. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  234. package/scripts/audit-tools/lib/output.js +23 -23
  235. package/scripts/audit-tools/migration-checker.js +392 -392
  236. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  237. package/scripts/benchmark-memoria.js +167 -167
  238. package/scripts/cli/aprobar-plan.js +73 -73
  239. package/scripts/cli/briefing.js +23 -23
  240. package/scripts/cli/ciclo-evolucion.js +26 -26
  241. package/scripts/cli/configurar-ci.js +40 -40
  242. package/scripts/cli/derivar-feature-list.js +25 -25
  243. package/scripts/cli/detectar-host.js +27 -27
  244. package/scripts/cli/diary-entry.js +69 -69
  245. package/scripts/cli/execution-state.js +18 -18
  246. package/scripts/cli/gateway-notify.js +41 -41
  247. package/scripts/cli/liberar-fase.js +42 -42
  248. package/scripts/cli/loop-telemetry.js +125 -125
  249. package/scripts/cli/mark-evolved.js +56 -56
  250. package/scripts/cli/metricas-dora.js +26 -26
  251. package/scripts/cli/near-duplicate.js +55 -55
  252. package/scripts/cli/notificaciones.js +123 -123
  253. package/scripts/cli/propose-step.js +29 -29
  254. package/scripts/cli/schedule-parse.js +19 -19
  255. package/scripts/cli/sugerir-modelo.js +20 -20
  256. package/scripts/cli/verificar-plan.js +36 -36
  257. package/scripts/cli/verificar-trazabilidad.js +35 -35
  258. package/scripts/configurar-branch-protection.js +418 -418
  259. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  260. package/scripts/field-report.js +199 -199
  261. package/scripts/generar-checklists-consolidados.js +273 -273
  262. package/scripts/generar-matriz-lenguajes.js +271 -271
  263. package/scripts/instalador.js +4 -1
  264. package/scripts/lib/artefactos-python.js +43 -43
  265. package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
  266. package/scripts/lib/benchmark-metrics.js +160 -160
  267. package/scripts/lib/budget-enforcer.js +252 -252
  268. package/scripts/lib/ci-reader.js +193 -193
  269. package/scripts/lib/claude-sessions.js +1 -0
  270. package/scripts/lib/configurar-ci.js +380 -380
  271. package/scripts/lib/contadores-inventario.js +217 -217
  272. package/scripts/lib/detectar-host-swl.js +175 -175
  273. package/scripts/lib/detectar-stack-detallado.js +307 -307
  274. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  275. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  276. package/scripts/lib/diary-entry.js +234 -234
  277. package/scripts/lib/eval-metrics-store.js +218 -218
  278. package/scripts/lib/eval-quality.js +171 -171
  279. package/scripts/lib/eval-schemas.js +144 -144
  280. package/scripts/lib/eval-self-correct.js +106 -106
  281. package/scripts/lib/eval-validator.js +185 -185
  282. package/scripts/lib/evidencia-release.js +322 -322
  283. package/scripts/lib/gate-hooks-requires.js +249 -249
  284. package/scripts/lib/gate-licencias.js +212 -212
  285. package/scripts/lib/git-metricas.js +257 -257
  286. package/scripts/lib/jaccard-similarity.js +98 -98
  287. package/scripts/lib/longmemeval-runner.js +125 -125
  288. package/scripts/lib/metricas-dora.js +204 -204
  289. package/scripts/lib/npm-version.js +261 -261
  290. package/scripts/lib/paquetes-conocidos.js +50 -50
  291. package/scripts/lib/plan-lock.js +275 -275
  292. package/scripts/lib/pr-analyzer.js +399 -399
  293. package/scripts/lib/preservar-usuario.js +39 -5
  294. package/scripts/lib/prompt-builder.js +264 -264
  295. package/scripts/lib/reglas-globales-conocidas.json +180 -180
  296. package/scripts/lib/resolver-plan-fase.js +37 -37
  297. package/scripts/lib/rrf-fusion.js +175 -175
  298. package/scripts/lib/schema-version.js +164 -164
  299. package/scripts/lib/scoring-instintos.js +277 -277
  300. package/scripts/lib/semantic-search.js +252 -252
  301. package/scripts/lib/tool-cost-analyzer.js +1 -0
  302. package/scripts/limpiar-artefactos-python.js +131 -131
  303. package/scripts/migrar-csv-a-array.js +168 -168
  304. package/scripts/migrar-fase-dominio.js +200 -200
  305. package/scripts/publicar.js +497 -497
  306. package/scripts/run-eval.js +141 -141
  307. package/scripts/tui/componentes/selector-multi.js +189 -189
  308. package/scripts/tui/componentes/selector-unico.js +158 -158
  309. package/scripts/tui/ejecutores.js +375 -375
  310. package/scripts/tui/index.js +162 -162
  311. package/scripts/tui/lib/colores.js +129 -129
  312. package/scripts/tui/lib/render.js +264 -264
  313. package/scripts/tui/lib/teclas.js +113 -113
  314. package/scripts/tui/pantallas/inspect.js +173 -173
  315. package/scripts/tui/pantallas/install-wizard.js +334 -334
  316. package/scripts/tui/pantallas/menu-principal.js +52 -52
  317. package/scripts/tui/pantallas/progreso.js +274 -274
  318. package/scripts/tui/pantallas/resumen.js +132 -132
  319. package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
  320. package/scripts/tui/pantallas/update-wizard.js +232 -232
  321. package/scripts/tui/pantallas/welcome.js +187 -187
  322. package/scripts/validar-userland-vacio.js +110 -110
  323. package/scripts/validar.js +1 -1
  324. package/scripts/verificar-release.js +51 -0
  325. package/hooks/lib/context-compressor.js +0 -657
  326. package/hooks/linea-estado.js +0 -326
  327. package/hooks/monitor-contexto.js +0 -373
@@ -1,252 +1,253 @@
1
- # Regla: Harness de Claude Code — disciplina operacional
2
-
3
- Esta regla aplica al uso operativo de Claude Code (CLI / Desktop / IDE).
4
- Define las prácticas que protegen la economía de tokens, el cache de prompt y
5
- la calidad de las respuestas. Origen: artículo "Claude Code's Limits Are
6
- Generous. The Problem Is Your Harness." más experiencia operativa SWL.
7
-
8
- El harness es el conjunto de configuración + sesión + tools + modelo que
9
- rodea a Claude. Anthropic provee el modelo; el harness lo provees tú. Una
10
- mala disciplina del harness convierte una suscripción Max generosa en
11
- "se acabó la cuota en 2 días".
12
-
13
- ---
14
-
15
- ## Disciplina del cache de prompt
16
-
17
- El prompt cache es la palanca económica más grande de Claude Code:
18
-
19
- - **Cache read**: 0.1× del precio de input (90% de descuento).
20
- - **Cache write 5min TTL**: 1.25×.
21
- - **Cache write 1h TTL**: 2× (solo API, no incluido en Pro/Max/Team).
22
- - **Cache refresh on hit**: gratis (se cobra al precio read).
23
-
24
- Cada hit en un prefijo cacheado resetea su TTL sin costo. Una sesión larga
25
- con uso constante de tools mantiene el prefijo caliente indefinidamente
26
- **siempre que el prefijo no cambie**.
27
-
28
- ### Reglas de cache discipline
29
-
30
- - **NUNCA agregues o quites MCP servers a mitad de sesión.** Modifica
31
- `.claude/settings.json` antes de iniciar Claude Code, no durante.
32
- - **NUNCA uses `/model` a mitad de sesión.** Cambiar de modelo invalida
33
- el prefijo cacheado y fuerza una re-lectura completa.
34
- - **NUNCA modifiques la lista de tools permitidos a mitad de sesión.**
35
- Agregar o quitar tools cambia el prefijo del system prompt.
36
- - **Lock-at-session-start**: define configuración, modelo, MCP servers y
37
- tools permitidos antes de iniciar. Si necesitas cambiar algo, abre una
38
- sesión nueva con `/clear` o cierra y reinicia.
39
- - **Hit rate sano**: ~90% en el TTL de 5 minutos por defecto. Si el hit
40
- rate cae por debajo del 80%, hay algo en el harness que invalida el
41
- prefijo entre turnos.
42
-
43
- ### Cuándo SÍ es OK abrir nueva sesión
44
-
45
- - Cambio de proyecto / repo.
46
- - Cambio entre tareas no relacionadas (frontend vs. backend).
47
- - Tras un turno que salió mal y quiere descartarse (`/rewind` o `/clear`).
48
- - Cada 30+ turnos en sesiones de exploración para evitar context-rot.
49
-
50
- ---
51
-
52
- ## Manejo de contexto
53
-
54
- ### Variables de entorno opt-in (recomendadas para sesiones largas)
55
-
56
- ```jsonc
57
- // .claude/settings.json (sección env)
58
- {
59
- "env": {
60
- "CLAUDE_CODE_DISABLE_1M_CONTEXT": "1", // forzar 200K en lugar de 1M
61
- "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80" // disparar auto-compact al 80%
62
- }
63
- }
64
- ```
65
-
66
- - **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`** desactiva la variante 1M de Opus
67
- 4.7 y vuelve al techo histórico de 200K. Útil cuando el codebase del
68
- usuario no requiere 1M y se quiere reducir costo de tokens. **NO se
69
- recomienda como default universal** — solo si el usuario detecta
70
- context bloat real.
71
- - **`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=80`** ajusta el umbral del
72
- auto-compact. Disparar al 80% en lugar del default permite que la
73
- compactación ocurra antes de que el contexto sature.
74
-
75
- ### Cinco movimientos de sesión
76
-
77
- - **`/compact` al 50% de uso o tras cada tarea grande.** No esperes al
78
- auto. La compactación tardía empuja el contexto encima del threshold y
79
- obliga a recargar prefijo.
80
- - **`/clear` entre tareas no relacionadas.** Sesión nueva = prefijo
81
- fresco, sin lastre acumulado.
82
- - **`/rewind` cuando un turno salió mal.** Más barato que pelear con
83
- contexto contaminado.
84
- - **Sub-agentes** para trabajo bulk-mecánico, búsqueda en codebase, o
85
- procesamiento de archivos grandes (PDF→TLDR). El padre conserva
86
- contexto limpio.
87
- - **Tag files con `@`**: en lugar de pedirle a Claude que busque, pásale
88
- la ruta directamente. `@docs/diseno.md` evita un round-trip de grep.
89
-
90
- ---
91
-
92
- ## Routing de modelos y effort
93
-
94
- ### Escoger el modelo al inicio (no a media sesión)
95
-
96
- - **Sonnet session**: más barato, sin acceso a Opus en el padre. Bueno
97
- cuando se sabe que el trabajo cabe en Sonnet.
98
- - **Opus session + delegate**: pagar Opus solo en el padre (planning,
99
- tradeoffs); delegar trabajo táctico a sub-agentes Sonnet/Haiku. Default
100
- para trabajo mixto.
101
- - Cambiar de modelo a media sesión invalida el cache (regla de cache
102
- discipline arriba). Si necesitas otro modelo, abre nueva sesión.
103
-
104
- ### Knobs nativos para sub-agentes y teams (env vars del harness)
105
-
106
- Claude Code expone variables de entorno que controlan el routing de
107
- modelos y el costo de sesiones con múltiples agentes. Son del **harness
108
- Anthropic**, no de swl-ses — complementan, no reemplazan, el Model-Tier
109
- por frontmatter (`model:` en cada agente) ni el `budget-enforcer.js`.
110
-
111
- ```bash
112
- # Forzar el modelo de TODOS los sub-agentes/teammates a uno más barato.
113
- # Útil en sesiones ad-hoc donde no quieres routing granular por agente.
114
- # El líder mantiene el modelo de la sesión (Opus); los teammates bajan a Sonnet.
115
- export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"
116
-
117
- # Habilitar Agent Teams nativo (experimental): un líder coordina teammates
118
- # que se comunican entre sí vía task list compartida. swl-ses NO lo usa por
119
- # defecto — su patrón es orquestador-swl + Agent tool. Activar solo para
120
- # experimentar con coordinación teammate-to-teammate.
121
- export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
122
- ```
123
-
124
- ```bash
125
- # Cap de costo nativo por sesión headless/team. Aborta la sesión completa
126
- # al alcanzar el límite, sin importar cuántos agentes estén activos.
127
- claude -p "build the auth system" --max-budget-usd 15.00
128
- ```
129
-
130
- **Relación con la infra de swl-ses:**
131
-
132
- | Knob nativo | Equivalente swl-ses | Cuándo usar el nativo |
133
- |-------------|---------------------|------------------------|
134
- | `CLAUDE_CODE_SUBAGENT_MODEL` | `model:` en frontmatter de cada agente (Model-Tier) | El frontmatter es **superior** (granular por agente). El env var solo para sesiones ad-hoc sin SWL o como override global temporal |
135
- | `--max-budget-usd` | `scripts/lib/budget-enforcer.js` (4 niveles + idempotency) + `hooks/tracking-costos.js` | El `budget-enforcer` es **superior** (warning/approval/backpressure/hard). El flag nativo es un cap duro complementario para sesiones de orquestador con muchos sub-agentes en paralelo |
136
- | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | `orquestador-swl` + Agent tool | swl-ses prefiere su patrón. El nativo solo para experimentación — su modelo teammate-to-teammate no está integrado con los hooks de gobernanza SWL |
137
-
138
- **Anti-patrón**: usar `CLAUDE_CODE_SUBAGENT_MODEL` como reemplazo del
139
- Model-Tier por frontmatter. Pierde la granularidad (revisor-seguridad
140
- necesita Opus aunque sea teammate). Usar solo como override de sesión,
141
- nunca persistente en `.bashrc` si trabajas con swl-ses.
142
-
143
- ### `/effort` per-prompt (no per-session)
144
-
145
- ```
146
- /effort low # fixes rápidos, tareas mecánicas
147
- /effort medium # la mayoría de prompts (gran ahorro vs default)
148
- /effort high # razonamiento exigente
149
- /effort xhigh # default para coding agéntico (4.7)
150
- /effort max # diminishing returns, raramente vale el ~2× costo extra
151
- ```
152
-
153
- El effort se aplica al **prompt** que lo necesita, no al resto de la
154
- sesión. Subir a `max` por reflejo en cada turno duplica el costo sin
155
- mejora observable.
156
-
157
- ---
158
-
159
- ## Disciplina de input format
160
-
161
- Algunos formatos consumen muchos más tokens de los necesarios:
162
-
163
- - **PDFs**: usar `pdftotext` o `markitdown` ANTES, no el Read tool con
164
- PDF directo (Read carga PDF como imágenes). Ver `reglas/markitdown.md`.
165
- - **Páginas web dinámicas**: `agent-browser` (vía accessibility tree)
166
- reduce ~82% tokens vs Playwright MCP / screenshots.
167
- - **Repos grandes (>500 archivos)**: considerar `code-review-graph` pip
168
- (opt-in) que reduce 6.8-49× tokens por review al leer solo blast
169
- radius. Documentado en `MANUAL_USO.md` sección "Dependencias externas".
170
- - **Spec prompts > vague prompts**: incluir rutas de archivo, componentes
171
- esperados, I/O y restricciones. Vago = más turnos = más tokens.
172
-
173
- ---
174
-
175
- ## Carga lean de componentes
176
-
177
- - Desactivar MCP servers no usados en `.claude/settings.json`.
178
- - Mover reglas largas de CLAUDE.md a skills cargados bajo demanda
179
- (progressive disclosure SWL ya hace esto).
180
- - Comandos slash `/swl:*` que no usas no cuestan tokens si no se invocan.
181
- - Skills oficiales de Anthropic: solo agregar los que aplican al
182
- proyecto (Office docs solo si trabajas con Office, etc.).
183
-
184
- ---
185
-
186
- ## Anti-patrones
187
-
188
- - **Invocar Claude Code y luego decidir el modelo**: invalida cache cada
189
- vez que cambias de opinión.
190
- - **Agregar un MCP server "temporal" durante la sesión**: el costo de
191
- invalidar el prefijo cacheado supera lo que el server agrega.
192
- - **Re-leer manualmente archivos que ya están en contexto**: si Claude
193
- ya leyó X, pedirle que lo lea de nuevo es token waste.
194
- - **No usar `/compact` y esperar al auto-compact**: el auto dispara
195
- TARDE. Compactar proactivamente al 50% es siempre más eficiente.
196
- - **`/effort max` por reflejo**: 2× costo de xhigh con mejora marginal
197
- fuera de tareas que requieran razonamiento profundo.
198
- - **PDFs vía Read tool sin extraer texto antes**: 10× más tokens que
199
- pasar por `markitdown` o `pdftotext`.
200
-
201
- ---
202
-
203
- ## Observabilidad — watch the number
204
-
205
- SWL incluye:
206
-
207
- - **`/swl:status dashboard`** — dashboard histórico de uso (basado en
208
- `phuryn/claude-usage`).
209
- - **`/swl:status metricas`** — métricas de la sesión actual (tokens, costo
210
- estimado, modelos usados).
211
- - **`hooks/linea-estado.js`**barra de estado con porcentaje de
212
- contexto consumido (con detección dinámica del techo según modelo
213
- ver fix v5.12.4).
214
- - **`hooks/monitor-contexto.js`** — alertas WARNING (≥65%) y CRITICAL
215
- (≥75%) cuando el contexto se llena.
216
-
217
- Si no ves el hit rate de cache, no puedes optimizarlo. Para uso intenso
218
- considera dashboard externo en `platform.claude.com/usage/cache` (solo
219
- API users).
220
-
221
- ---
222
-
223
- ## Checklist de harness antes de empezar una sesión larga
224
-
225
- - [ ] `.claude/settings.json` con MCP servers necesarios YA configurado
226
- - [ ] Modelo elegido y bloqueado (no se cambiará durante la sesión)
227
- - [ ] Tools permitidos definidos en `.claude/settings.json`, no se
228
- modificarán mid-session
229
- - [ ] Variables de entorno (`CLAUDE_CODE_DISABLE_1M_CONTEXT`,
230
- `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`) configuradas si es sesión larga
231
- - [ ] CLAUDE.md del proyecto referencia archivos clave para que Claude
232
- no haga grep innecesario
233
- - [ ] Para repos grandes: `code-review-graph` instalado (opt-in)
234
- - [ ] Estrategia de delegación clara: qué se manda a sub-agente y qué
235
- se mantiene en el padre
236
- - [ ] PDFs / Office docs serán pre-procesados con `markitdown` antes de
237
- Read
238
-
239
- ---
240
-
241
- ## Cómo cargar esta regla
242
-
243
- Esta regla no es de carga obligatoria global. Cargar cuando:
244
-
245
- - El usuario reporta "se acabó la cuota antes de tiempo".
246
- - Se diagnostica context-rot u alertas críticas falsas/persistentes.
247
- - Se prepara una sesión de trabajo larga (>2h) con Opus.
248
- - Se planifica adopción de MCP servers nuevos en un proyecto.
249
-
250
- Para detalles operacionales adicionales (workflow de las 5 session moves,
251
- cuándo usar cada effort level, integración con SWL), cargar también
252
- `Skill("harness-claude-code")`.
1
+ # Regla: Harness de Claude Code — disciplina operacional
2
+
3
+ Esta regla aplica al uso operativo de Claude Code (CLI / Desktop / IDE).
4
+ Define las prácticas que protegen la economía de tokens, el cache de prompt y
5
+ la calidad de las respuestas. Origen: artículo "Claude Code's Limits Are
6
+ Generous. The Problem Is Your Harness." más experiencia operativa SWL.
7
+
8
+ El harness es el conjunto de configuración + sesión + tools + modelo que
9
+ rodea a Claude. Anthropic provee el modelo; el harness lo provees tú. Una
10
+ mala disciplina del harness convierte una suscripción Max generosa en
11
+ "se acabó la cuota en 2 días".
12
+
13
+ ---
14
+
15
+ ## Disciplina del cache de prompt
16
+
17
+ El prompt cache es la palanca económica más grande de Claude Code:
18
+
19
+ - **Cache read**: 0.1× del precio de input (90% de descuento).
20
+ - **Cache write 5min TTL**: 1.25×.
21
+ - **Cache write 1h TTL**: 2× (solo API, no incluido en Pro/Max/Team).
22
+ - **Cache refresh on hit**: gratis (se cobra al precio read).
23
+
24
+ Cada hit en un prefijo cacheado resetea su TTL sin costo. Una sesión larga
25
+ con uso constante de tools mantiene el prefijo caliente indefinidamente
26
+ **siempre que el prefijo no cambie**.
27
+
28
+ ### Reglas de cache discipline
29
+
30
+ - **NUNCA agregues o quites MCP servers a mitad de sesión.** Modifica
31
+ `.claude/settings.json` antes de iniciar Claude Code, no durante.
32
+ - **NUNCA uses `/model` a mitad de sesión.** Cambiar de modelo invalida
33
+ el prefijo cacheado y fuerza una re-lectura completa.
34
+ - **NUNCA modifiques la lista de tools permitidos a mitad de sesión.**
35
+ Agregar o quitar tools cambia el prefijo del system prompt.
36
+ - **Lock-at-session-start**: define configuración, modelo, MCP servers y
37
+ tools permitidos antes de iniciar. Si necesitas cambiar algo, abre una
38
+ sesión nueva con `/clear` o cierra y reinicia.
39
+ - **Hit rate sano**: ~90% en el TTL de 5 minutos por defecto. Si el hit
40
+ rate cae por debajo del 80%, hay algo en el harness que invalida el
41
+ prefijo entre turnos.
42
+
43
+ ### Cuándo SÍ es OK abrir nueva sesión
44
+
45
+ - Cambio de proyecto / repo.
46
+ - Cambio entre tareas no relacionadas (frontend vs. backend).
47
+ - Tras un turno que salió mal y quiere descartarse (`/rewind` o `/clear`).
48
+ - Cada 30+ turnos en sesiones de exploración para evitar context-rot.
49
+
50
+ ---
51
+
52
+ ## Manejo de contexto
53
+
54
+ ### Variables de entorno opt-in (recomendadas para sesiones largas)
55
+
56
+ ```jsonc
57
+ // .claude/settings.json (sección env)
58
+ {
59
+ "env": {
60
+ "CLAUDE_CODE_DISABLE_1M_CONTEXT": "1", // forzar 200K en lugar de 1M
61
+ "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80" // disparar auto-compact al 80%
62
+ }
63
+ }
64
+ ```
65
+
66
+ - **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`** desactiva la variante 1M de Opus
67
+ 4.7 y vuelve al techo histórico de 200K. Útil cuando el codebase del
68
+ usuario no requiere 1M y se quiere reducir costo de tokens. **NO se
69
+ recomienda como default universal** — solo si el usuario detecta
70
+ context bloat real.
71
+ - **`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=80`** ajusta el umbral del
72
+ auto-compact. Disparar al 80% en lugar del default permite que la
73
+ compactación ocurra antes de que el contexto sature.
74
+
75
+ ### Cinco movimientos de sesión
76
+
77
+ - **`/compact` al 50% de uso o tras cada tarea grande.** No esperes al
78
+ auto. La compactación tardía empuja el contexto encima del threshold y
79
+ obliga a recargar prefijo.
80
+ - **`/clear` entre tareas no relacionadas.** Sesión nueva = prefijo
81
+ fresco, sin lastre acumulado.
82
+ - **`/rewind` cuando un turno salió mal.** Más barato que pelear con
83
+ contexto contaminado.
84
+ - **Sub-agentes** para trabajo bulk-mecánico, búsqueda en codebase, o
85
+ procesamiento de archivos grandes (PDF→TLDR). El padre conserva
86
+ contexto limpio.
87
+ - **Tag files con `@`**: en lugar de pedirle a Claude que busque, pásale
88
+ la ruta directamente. `@docs/diseno.md` evita un round-trip de grep.
89
+
90
+ ---
91
+
92
+ ## Routing de modelos y effort
93
+
94
+ ### Escoger el modelo al inicio (no a media sesión)
95
+
96
+ - **Sonnet session**: más barato, sin acceso a Opus en el padre. Bueno
97
+ cuando se sabe que el trabajo cabe en Sonnet.
98
+ - **Opus session + delegate**: pagar Opus solo en el padre (planning,
99
+ tradeoffs); delegar trabajo táctico a sub-agentes Sonnet/Haiku. Default
100
+ para trabajo mixto.
101
+ - Cambiar de modelo a media sesión invalida el cache (regla de cache
102
+ discipline arriba). Si necesitas otro modelo, abre nueva sesión.
103
+
104
+ ### Knobs nativos para sub-agentes y teams (env vars del harness)
105
+
106
+ Claude Code expone variables de entorno que controlan el routing de
107
+ modelos y el costo de sesiones con múltiples agentes. Son del **harness
108
+ Anthropic**, no de swl-ses — complementan, no reemplazan, el Model-Tier
109
+ por frontmatter (`model:` en cada agente) ni el `budget-enforcer.js`.
110
+
111
+ ```bash
112
+ # Forzar el modelo de TODOS los sub-agentes/teammates a uno más barato.
113
+ # Útil en sesiones ad-hoc donde no quieres routing granular por agente.
114
+ # El líder mantiene el modelo de la sesión (Opus); los teammates bajan a Sonnet.
115
+ export CLAUDE_CODE_SUBAGENT_MODEL="sonnet"
116
+
117
+ # Habilitar Agent Teams nativo (experimental): un líder coordina teammates
118
+ # que se comunican entre sí vía task list compartida. swl-ses NO lo usa por
119
+ # defecto — su patrón es orquestador-swl + Agent tool. Activar solo para
120
+ # experimentar con coordinación teammate-to-teammate.
121
+ export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
122
+ ```
123
+
124
+ ```bash
125
+ # Cap de costo nativo por sesión headless/team. Aborta la sesión completa
126
+ # al alcanzar el límite, sin importar cuántos agentes estén activos.
127
+ claude -p "build the auth system" --max-budget-usd 15.00
128
+ ```
129
+
130
+ **Relación con la infra de swl-ses:**
131
+
132
+ | Knob nativo | Equivalente swl-ses | Cuándo usar el nativo |
133
+ |-------------|---------------------|------------------------|
134
+ | `CLAUDE_CODE_SUBAGENT_MODEL` | `model:` en frontmatter de cada agente (Model-Tier) | El frontmatter es **superior** (granular por agente). El env var solo para sesiones ad-hoc sin SWL o como override global temporal |
135
+ | `--max-budget-usd` | `scripts/lib/budget-enforcer.js` (4 niveles + idempotency) + `hooks/tracking-costos.js` | El `budget-enforcer` es **superior** (warning/approval/backpressure/hard). El flag nativo es un cap duro complementario para sesiones de orquestador con muchos sub-agentes en paralelo |
136
+ | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | `orquestador-swl` + Agent tool | swl-ses prefiere su patrón. El nativo solo para experimentación — su modelo teammate-to-teammate no está integrado con los hooks de gobernanza SWL |
137
+
138
+ **Anti-patrón**: usar `CLAUDE_CODE_SUBAGENT_MODEL` como reemplazo del
139
+ Model-Tier por frontmatter. Pierde la granularidad (revisor-seguridad
140
+ necesita Opus aunque sea teammate). Usar solo como override de sesión,
141
+ nunca persistente en `.bashrc` si trabajas con swl-ses.
142
+
143
+ ### `/effort` per-prompt (no per-session)
144
+
145
+ ```
146
+ /effort low # fixes rápidos, tareas mecánicas
147
+ /effort medium # la mayoría de prompts (gran ahorro vs default)
148
+ /effort high # razonamiento exigente
149
+ /effort xhigh # default para coding agéntico (4.7)
150
+ /effort max # diminishing returns, raramente vale el ~2× costo extra
151
+ ```
152
+
153
+ El effort se aplica al **prompt** que lo necesita, no al resto de la
154
+ sesión. Subir a `max` por reflejo en cada turno duplica el costo sin
155
+ mejora observable.
156
+
157
+ ---
158
+
159
+ ## Disciplina de input format
160
+
161
+ Algunos formatos consumen muchos más tokens de los necesarios:
162
+
163
+ - **PDFs**: usar `pdftotext` o `markitdown` ANTES, no el Read tool con
164
+ PDF directo (Read carga PDF como imágenes). Ver `reglas/markitdown.md`.
165
+ - **Páginas web dinámicas**: `agent-browser` (vía accessibility tree)
166
+ reduce ~82% tokens vs Playwright MCP / screenshots.
167
+ - **Repos grandes (>500 archivos)**: considerar `code-review-graph` pip
168
+ (opt-in) que reduce 6.8-49× tokens por review al leer solo blast
169
+ radius. Documentado en `MANUAL_USO.md` sección "Dependencias externas".
170
+ - **Spec prompts > vague prompts**: incluir rutas de archivo, componentes
171
+ esperados, I/O y restricciones. Vago = más turnos = más tokens.
172
+
173
+ ---
174
+
175
+ ## Carga lean de componentes
176
+
177
+ - Desactivar MCP servers no usados en `.claude/settings.json`.
178
+ - Mover reglas largas de CLAUDE.md a skills cargados bajo demanda
179
+ (progressive disclosure SWL ya hace esto).
180
+ - Comandos slash `/swl:*` que no usas no cuestan tokens si no se invocan.
181
+ - Skills oficiales de Anthropic: solo agregar los que aplican al
182
+ proyecto (Office docs solo si trabajas con Office, etc.).
183
+
184
+ ---
185
+
186
+ ## Anti-patrones
187
+
188
+ - **Invocar Claude Code y luego decidir el modelo**: invalida cache cada
189
+ vez que cambias de opinión.
190
+ - **Agregar un MCP server "temporal" durante la sesión**: el costo de
191
+ invalidar el prefijo cacheado supera lo que el server agrega.
192
+ - **Re-leer manualmente archivos que ya están en contexto**: si Claude
193
+ ya leyó X, pedirle que lo lea de nuevo es token waste.
194
+ - **No usar `/compact` y esperar al auto-compact**: el auto dispara
195
+ TARDE. Compactar proactivamente al 50% es siempre más eficiente.
196
+ - **`/effort max` por reflejo**: 2× costo de xhigh con mejora marginal
197
+ fuera de tareas que requieran razonamiento profundo.
198
+ - **PDFs vía Read tool sin extraer texto antes**: 10× más tokens que
199
+ pasar por `markitdown` o `pdftotext`.
200
+
201
+ ---
202
+
203
+ ## Observabilidad — watch the number
204
+
205
+ SWL incluye:
206
+
207
+ - **`/swl:status dashboard`** — dashboard histórico de uso (basado en
208
+ `phuryn/claude-usage`).
209
+ - **`/swl:status metricas`** — métricas de la sesión actual (tokens, costo
210
+ estimado, modelos usados).
211
+ - **Statusline nativo del CLI** muestra `ctx: N%` en vivo; desde 2026-07-03
212
+ SWL ya no duplica esa medición (los hooks `linea-estado.js` y
213
+ `monitor-contexto.js` se eliminaron: el CLI reporta el % y Claude Code
214
+ compacta solo).
215
+ - **`hooks/preservar-estado-pre-compact.js`** preserva estado en el momento
216
+ exacto de toda compactación (manual o automática), sin adivinar umbrales.
217
+
218
+ Si no ves el hit rate de cache, no puedes optimizarlo. Para uso intenso
219
+ considera dashboard externo en `platform.claude.com/usage/cache` (solo
220
+ API users).
221
+
222
+ ---
223
+
224
+ ## Checklist de harness antes de empezar una sesión larga
225
+
226
+ - [ ] `.claude/settings.json` con MCP servers necesarios YA configurado
227
+ - [ ] Modelo elegido y bloqueado (no se cambiará durante la sesión)
228
+ - [ ] Tools permitidos definidos en `.claude/settings.json`, no se
229
+ modificarán mid-session
230
+ - [ ] Variables de entorno (`CLAUDE_CODE_DISABLE_1M_CONTEXT`,
231
+ `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`) configuradas si es sesión larga
232
+ - [ ] CLAUDE.md del proyecto referencia archivos clave para que Claude
233
+ no haga grep innecesario
234
+ - [ ] Para repos grandes: `code-review-graph` instalado (opt-in)
235
+ - [ ] Estrategia de delegación clara: qué se manda a sub-agente y qué
236
+ se mantiene en el padre
237
+ - [ ] PDFs / Office docs serán pre-procesados con `markitdown` antes de
238
+ Read
239
+
240
+ ---
241
+
242
+ ## Cómo cargar esta regla
243
+
244
+ Esta regla no es de carga obligatoria global. Cargar cuando:
245
+
246
+ - El usuario reporta "se acabó la cuota antes de tiempo".
247
+ - Se diagnostica context-rot u alertas críticas falsas/persistentes.
248
+ - Se prepara una sesión de trabajo larga (>2h) con Opus.
249
+ - Se planifica adopción de MCP servers nuevos en un proyecto.
250
+
251
+ Para detalles operacionales adicionales (workflow de las 5 session moves,
252
+ cuándo usar cada effort level, integración con SWL), cargar también
253
+ `Skill("harness-claude-code")`.