@saulwade/swl-ses 2.2.4 → 2.3.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 (325) hide show
  1. package/CLAUDE.md +48 -7
  2. package/README.md +3 -3
  3. package/agentes/accesibilidad-wcag-swl.md +690 -690
  4. package/agentes/arquitecto-swl.md +267 -267
  5. package/agentes/auto-evolucion-swl.md +908 -908
  6. package/agentes/backend-api-swl.md +472 -472
  7. package/agentes/backend-csharp-swl.md +420 -420
  8. package/agentes/backend-go-swl.md +390 -390
  9. package/agentes/backend-java-swl.md +281 -281
  10. package/agentes/backend-node-swl.md +479 -479
  11. package/agentes/backend-python-swl.md +605 -605
  12. package/agentes/backend-rust-swl.md +364 -364
  13. package/agentes/backend-workers-swl.md +482 -482
  14. package/agentes/cloud-infra-swl.md +509 -509
  15. package/agentes/consolidador-swl.md +541 -541
  16. package/agentes/datos-swl.md +605 -605
  17. package/agentes/depurador-swl.md +352 -352
  18. package/agentes/devops-ci-swl.md +400 -400
  19. package/agentes/disenador-ui-swl.md +569 -569
  20. package/agentes/documentador-swl.md +345 -345
  21. package/agentes/frontend-angular-swl.md +621 -621
  22. package/agentes/frontend-css-swl.md +716 -716
  23. package/agentes/frontend-react-swl.md +692 -692
  24. package/agentes/frontend-swl.md +496 -496
  25. package/agentes/frontend-tailwind-swl.md +826 -826
  26. package/agentes/gh-fix-ci-swl.md +2 -2
  27. package/agentes/implementador-swl.md +328 -328
  28. package/agentes/investigador-swl.md +432 -432
  29. package/agentes/investigador-ux-swl.md +505 -505
  30. package/agentes/llm-apps-swl.md +278 -278
  31. package/agentes/migrador-swl.md +442 -442
  32. package/agentes/mobile-android-swl.md +511 -511
  33. package/agentes/mobile-cross-swl.md +541 -541
  34. package/agentes/mobile-ios-swl.md +502 -502
  35. package/agentes/mobile-testing-swl.md +302 -302
  36. package/agentes/nemesis-auditor-swl.md +285 -285
  37. package/agentes/notificador-swl.md +918 -918
  38. package/agentes/observabilidad-swl.md +438 -438
  39. package/agentes/orquestador-swl.md +1026 -1026
  40. package/agentes/pagos-swl.md +310 -310
  41. package/agentes/perfilador-usuario-swl.md +321 -321
  42. package/agentes/planificador-swl.md +399 -399
  43. package/agentes/producto-prd-swl.md +589 -589
  44. package/agentes/red-team-swl.md +1 -1
  45. package/agentes/release-manager-swl.md +590 -590
  46. package/agentes/rendimiento-swl.md +713 -713
  47. package/agentes/resolutor-build-swl.md +245 -245
  48. package/agentes/revisor-angular-swl.md +278 -278
  49. package/agentes/revisor-codigo-swl.md +505 -505
  50. package/agentes/revisor-csharp-swl.md +264 -264
  51. package/agentes/revisor-go-swl.md +259 -259
  52. package/agentes/revisor-java-swl.md +257 -257
  53. package/agentes/revisor-kotlin-swl.md +273 -273
  54. package/agentes/revisor-nextjs-swl.md +281 -281
  55. package/agentes/revisor-php-swl.md +271 -271
  56. package/agentes/revisor-react-swl.md +278 -278
  57. package/agentes/revisor-rust-swl.md +346 -346
  58. package/agentes/revisor-seguridad-swl.md +399 -399
  59. package/agentes/revisor-swift-swl.md +268 -268
  60. package/agentes/revisor-typescript-swl.md +346 -346
  61. package/agentes/sre-swl.md +291 -291
  62. package/agentes/tdd-qa-swl.md +393 -393
  63. package/comandos/swl/aprobar-plan.md +146 -141
  64. package/comandos/swl/briefing.md +119 -119
  65. package/comandos/swl/contribuir.md +233 -233
  66. package/comandos/swl/predecir.md +139 -139
  67. package/comandos/swl/release.md +30 -8
  68. package/comandos/swl/sesiones.md +1 -1
  69. package/comandos/swl/status.md +343 -333
  70. package/gateway/agent-executor.js +1 -1
  71. package/gateway/lib/event-channel.js +191 -191
  72. package/habilidades/agent-deep-links/SKILL.md +148 -148
  73. package/habilidades/agentes-como-servicio/SKILL.md +2 -2
  74. package/habilidades/angular-moderno/SKILL.md +20 -1
  75. package/habilidades/auto-evolucion-protocolo/SKILL.md +276 -276
  76. package/habilidades/backend-async-postgres-testing/SKILL.md +215 -215
  77. package/habilidades/backend-error-design/SKILL.md +221 -221
  78. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  79. package/habilidades/benchmark-memoria/SKILL.md +186 -186
  80. package/habilidades/calidad-anti-patrones-universales/SKILL.md +368 -368
  81. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  82. package/habilidades/calidad-mutation-testing/SKILL.md +170 -170
  83. package/habilidades/changelog-generator/scripts/parse-commits.js +367 -367
  84. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  85. package/habilidades/contenedores-docker/SKILL.md +3 -1
  86. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  87. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  88. package/habilidades/drift-detection/SKILL.md +179 -179
  89. package/habilidades/ejecutar-fase/SKILL.md +564 -541
  90. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  91. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +1 -1
  92. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  93. package/habilidades/eval-framework/SKILL.md +212 -212
  94. package/habilidades/extractor-de-aprendizajes/SKILL.md +3 -3
  95. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  96. package/habilidades/harness-claude-code/recursos/disciplina-harness-regla.md +252 -252
  97. package/habilidades/legacy-code-rescue/SKILL.md +267 -267
  98. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  99. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  100. package/habilidades/perfil-usuario/SKILL.md +200 -200
  101. package/habilidades/planear-fase/SKILL.md +15 -1
  102. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  103. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -255
  104. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  105. package/habilidades/proceso-debate-adversarial/SKILL.md +191 -164
  106. package/habilidades/proceso-debate-adversarial/recursos/personas.md +105 -105
  107. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  108. package/habilidades/proceso-dynamic-workflows/SKILL.md +138 -138
  109. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  110. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  111. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  112. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  113. package/habilidades/prompt-engineering/recursos/patrones-avanzados.md +2 -2
  114. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  115. package/habilidades/structured-outputs/SKILL.md +2 -2
  116. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  117. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  118. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  119. package/habilidades/swl-dashboard/SKILL.md +2 -2
  120. package/habilidades/tdd-workflow/SKILL.md +33 -1
  121. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  122. package/habilidades/validacion-ci-sistema/recursos/validadores-completos.md +1 -1
  123. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +1 -1
  124. package/hooks/captura-acciones-post.js +151 -0
  125. package/hooks/captura-acciones-session.js +155 -0
  126. package/hooks/ciclo-evolucion-subagente.js +26 -26
  127. package/hooks/ciclo-evolucion.js +26 -26
  128. package/hooks/claudemd-bloat-detector.js +161 -161
  129. package/hooks/claudemd-duplicacion-detector.js +170 -170
  130. package/hooks/contexto-iteracion.js +144 -144
  131. package/hooks/guardrail-modelo.js +1 -1
  132. package/hooks/lib/agent-routing.js +107 -107
  133. package/hooks/lib/auto-consolidator.js +335 -335
  134. package/hooks/lib/autonomia.js +208 -208
  135. package/hooks/lib/briefing.js +512 -474
  136. package/hooks/lib/captura-acciones.js +392 -0
  137. package/hooks/lib/ciclo-evolucion.js +47 -47
  138. package/hooks/lib/deep-links.js +185 -185
  139. package/hooks/lib/error-classifier.js +308 -308
  140. package/hooks/lib/etapa-auto-evolucion.js +701 -701
  141. package/hooks/lib/etapa-metricas.js +388 -388
  142. package/hooks/lib/etapa-perfil-usuario.js +376 -376
  143. package/hooks/lib/loop-telemetry.js +321 -321
  144. package/hooks/lib/merkle-audit.js +96 -96
  145. package/hooks/lib/model-router.js +2 -2
  146. package/hooks/lib/propose-step.js +358 -358
  147. package/hooks/lib/provenance-tracker.js +191 -191
  148. package/hooks/lib/rate-limit-tracker.js +253 -253
  149. package/hooks/lib/resource-quota.js +122 -122
  150. package/hooks/lib/retry-jitter.js +165 -165
  151. package/hooks/lib/security-net.js +201 -201
  152. package/hooks/lib/skill-auditor.js +588 -588
  153. package/hooks/lib/sync-status.js +228 -228
  154. package/hooks/lib/taint-tracker.js +107 -107
  155. package/hooks/lib/text-similarity.js +241 -241
  156. package/hooks/lib/token-estimator.js +1 -0
  157. package/hooks/lib/toon-compressor.js +245 -245
  158. package/hooks/lib/usage-model.js +1 -1
  159. package/hooks/linea-estado.js +2 -0
  160. package/hooks/registro-turnos.js +209 -209
  161. package/hooks/session-briefing.js +98 -98
  162. package/hooks/spec-gate.js +211 -211
  163. package/hooks/sugerir-regenerar-inventario.js +170 -170
  164. package/hooks/tdd-gate.js +241 -241
  165. package/hooks/telemetria-skill-routing.js +100 -100
  166. package/hooks/validar-formato-post-subagente.js +140 -140
  167. package/hooks/validar-intent-spec.js +242 -242
  168. package/hooks/validar-memoria-hook.js +218 -218
  169. package/hooks/validar-planning-paths.js +134 -134
  170. package/instintos/autonomia.yaml +27 -27
  171. package/instintos/prompt-appendices.yaml +57 -57
  172. package/llms.txt +2 -2
  173. package/manifiestos/agent-output-schemas.json +57 -57
  174. package/manifiestos/canonical-hashes.json +2291 -1637
  175. package/manifiestos/hooks-config.json +18 -0
  176. package/manifiestos/modulos.json +4 -0
  177. package/manifiestos/planning-paths.json +44 -44
  178. package/manifiestos/skills-lock.json +1282 -1282
  179. package/package.json +2 -2
  180. package/plantillas/auditor-veto-template.md +105 -105
  181. package/plantillas/github-workflows/README.md +47 -47
  182. package/plantillas/github-workflows/release-please.yml +44 -44
  183. package/plantillas/github-workflows/swl-ci.yml +107 -107
  184. package/plantillas/github-workflows/swl-security.yml +51 -51
  185. package/plugin.json +2 -2
  186. package/reglas/accesibilidad.md +10 -10
  187. package/reglas/analisis-previo-tareas-grandes.md +172 -172
  188. package/reglas/api-diseno.md +9 -9
  189. package/reglas/arreglar-al-detectar.md +240 -240
  190. package/reglas/auditorias-documentales-estructurales.md +7 -7
  191. package/reglas/cloud-infra.md +8 -8
  192. package/reglas/consultar-vault-primero.md +195 -195
  193. package/reglas/debatir-antes-de-aceptar.md +158 -158
  194. package/reglas/fragmentos-compartidos.md +183 -183
  195. package/reglas/hooks.md +6 -6
  196. package/reglas/intent-engineering.md +218 -218
  197. package/reglas/markitdown.md +8 -8
  198. package/reglas/memoria-consolidada.md +41 -0
  199. package/reglas/monitor-ci.md +309 -309
  200. package/reglas/patrones.md +6 -6
  201. package/reglas/seguridad-agentes.md +66 -0
  202. package/reglas/sesiones-paralelas.md +180 -180
  203. package/reglas/sin-duplicacion-reglas-globales.md +182 -182
  204. package/reglas/skills-estandar.md +6 -6
  205. package/reglas/testing.md +7 -7
  206. package/reglas/tests-cleanup.md +224 -224
  207. package/reglas/usar-code-review-graph.md +155 -155
  208. package/reglas/usar-context7.md +226 -226
  209. package/reglas/verificar-citas-normativas.md +548 -548
  210. package/schemas/agent-frontmatter.schema.json +3 -3
  211. package/schemas/agent-message.schema.json +73 -73
  212. package/schemas/agent-output-implementacion.schema.json +114 -114
  213. package/schemas/agent-output-planificacion.schema.json +150 -150
  214. package/schemas/agent-output-review.schema.json +98 -98
  215. package/schemas/diary-entry.schema.json +112 -112
  216. package/schemas/hook-profiles.schema.json +54 -54
  217. package/schemas/hooks-config.schema.json +89 -89
  218. package/schemas/instinct.schema.json +161 -152
  219. package/schemas/modulos.schema.json +38 -38
  220. package/schemas/perfiles.schema.json +36 -36
  221. package/schemas/plugin.schema.json +77 -77
  222. package/schemas/skill-evals.schema.json +119 -119
  223. package/schemas/skill-frontmatter.schema.json +245 -245
  224. package/scripts/audit-tools/audit-history.js +330 -330
  225. package/scripts/audit-tools/bundle-tracker.js +290 -290
  226. package/scripts/audit-tools/canary-monitor.js +352 -352
  227. package/scripts/audit-tools/code-profiler.js +605 -605
  228. package/scripts/audit-tools/dep-doctor.js +320 -320
  229. package/scripts/audit-tools/env-validator.js +206 -206
  230. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  231. package/scripts/audit-tools/lib/output.js +23 -23
  232. package/scripts/audit-tools/migration-checker.js +392 -392
  233. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  234. package/scripts/benchmark-memoria.js +167 -167
  235. package/scripts/bootstrap-instintos.js +25 -7
  236. package/scripts/cli/aprobar-plan.js +73 -73
  237. package/scripts/cli/briefing.js +23 -23
  238. package/scripts/cli/ciclo-evolucion.js +26 -26
  239. package/scripts/cli/configurar-ci.js +40 -40
  240. package/scripts/cli/derivar-feature-list.js +25 -25
  241. package/scripts/cli/detectar-host.js +27 -27
  242. package/scripts/cli/diary-entry.js +69 -69
  243. package/scripts/cli/execution-state.js +18 -18
  244. package/scripts/cli/gateway-notify.js +41 -41
  245. package/scripts/cli/liberar-fase.js +42 -42
  246. package/scripts/cli/loop-telemetry.js +125 -125
  247. package/scripts/cli/mark-evolved.js +56 -56
  248. package/scripts/cli/metricas-dora.js +26 -26
  249. package/scripts/cli/near-duplicate.js +55 -55
  250. package/scripts/cli/notificaciones.js +123 -123
  251. package/scripts/cli/propose-step.js +29 -29
  252. package/scripts/cli/schedule-parse.js +19 -19
  253. package/scripts/cli/sugerir-modelo.js +20 -20
  254. package/scripts/cli/verificar-plan.js +36 -36
  255. package/scripts/cli/verificar-trazabilidad.js +35 -35
  256. package/scripts/configurar-branch-protection.js +418 -418
  257. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  258. package/scripts/field-report.js +199 -199
  259. package/scripts/generar-checklists-consolidados.js +273 -273
  260. package/scripts/generar-matriz-lenguajes.js +271 -271
  261. package/scripts/lib/artefactos-python.js +43 -43
  262. package/scripts/lib/auditar-invocaciones-comandos.js +104 -104
  263. package/scripts/lib/benchmark-metrics.js +160 -160
  264. package/scripts/lib/budget-enforcer.js +252 -252
  265. package/scripts/lib/ci-reader.js +193 -193
  266. package/scripts/lib/claude-sessions.js +1 -0
  267. package/scripts/lib/configurar-ci.js +380 -380
  268. package/scripts/lib/contadores-inventario.js +217 -217
  269. package/scripts/lib/detectar-host-swl.js +175 -175
  270. package/scripts/lib/detectar-stack-detallado.js +307 -307
  271. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  272. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  273. package/scripts/lib/diary-entry.js +234 -234
  274. package/scripts/lib/eval-metrics-store.js +218 -218
  275. package/scripts/lib/eval-quality.js +171 -171
  276. package/scripts/lib/eval-schemas.js +144 -144
  277. package/scripts/lib/eval-self-correct.js +106 -106
  278. package/scripts/lib/eval-validator.js +185 -185
  279. package/scripts/lib/evidencia-release.js +322 -322
  280. package/scripts/lib/expandir-targets.js +71 -71
  281. package/scripts/lib/gate-hooks-requires.js +249 -249
  282. package/scripts/lib/gate-licencias.js +212 -212
  283. package/scripts/lib/git-metricas.js +257 -257
  284. package/scripts/lib/gitignore-manifest.js +44 -11
  285. package/scripts/lib/jaccard-similarity.js +98 -98
  286. package/scripts/lib/longmemeval-runner.js +125 -125
  287. package/scripts/lib/metricas-dora.js +204 -204
  288. package/scripts/lib/npm-version.js +261 -261
  289. package/scripts/lib/paquetes-conocidos.js +50 -50
  290. package/scripts/lib/plan-lock.js +275 -275
  291. package/scripts/lib/pr-analyzer.js +399 -399
  292. package/scripts/lib/prompt-builder.js +264 -264
  293. package/scripts/lib/reglas-globales-conocidas.json +180 -180
  294. package/scripts/lib/resolver-plan-fase.js +37 -37
  295. package/scripts/lib/rrf-fusion.js +175 -175
  296. package/scripts/lib/schema-version.js +164 -164
  297. package/scripts/lib/scoring-instintos.js +277 -277
  298. package/scripts/lib/semantic-search.js +252 -252
  299. package/scripts/lib/skill-metrics.js +41 -1
  300. package/scripts/lib/toml-merge.js +204 -204
  301. package/scripts/lib/tool-cost-analyzer.js +1 -0
  302. package/scripts/limpiar-artefactos-python.js +131 -131
  303. package/scripts/mcp-server/auth.js +105 -105
  304. package/scripts/mcp-server/cache.js +106 -106
  305. package/scripts/migrar-csv-a-array.js +168 -168
  306. package/scripts/migrar-fase-dominio.js +200 -200
  307. package/scripts/publicar.js +497 -497
  308. package/scripts/run-eval.js +141 -141
  309. package/scripts/tui/componentes/selector-multi.js +189 -189
  310. package/scripts/tui/componentes/selector-unico.js +158 -158
  311. package/scripts/tui/ejecutores.js +375 -375
  312. package/scripts/tui/index.js +162 -162
  313. package/scripts/tui/lib/colores.js +129 -129
  314. package/scripts/tui/lib/render.js +264 -264
  315. package/scripts/tui/lib/teclas.js +113 -113
  316. package/scripts/tui/pantallas/inspect.js +173 -173
  317. package/scripts/tui/pantallas/install-wizard.js +334 -334
  318. package/scripts/tui/pantallas/menu-principal.js +52 -52
  319. package/scripts/tui/pantallas/progreso.js +274 -274
  320. package/scripts/tui/pantallas/resumen.js +132 -132
  321. package/scripts/tui/pantallas/uninstall-wizard.js +208 -208
  322. package/scripts/tui/pantallas/update-wizard.js +232 -232
  323. package/scripts/tui/pantallas/welcome.js +187 -187
  324. package/scripts/validar-userland-vacio.js +110 -110
  325. package/scripts/verificar-trazabilidad.js +329 -298
@@ -1,252 +1,252 @@
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
+ - **`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")`.