Contexto en franjas: 50, 70 y 85% del punto de compactación
El mayor enemigo de una sesión larga es la compactación repetida: el objetivo sobrevive, pero lo que ya está hecho y lo que falta se diluyen. El hook-longrun mide el contexto y actúa antes del límite, en tres franjas. En esta lección activas el hook y provocas las tres franjas en un ensayo, sin gastar un token.
1Dónde quedan las franjas: ~484, ~677 y ~822 mil tokens
2Compactación × handoff: qué guarda cada uno
3Activar el hook en los cinco eventos de Claude Code
4Ensayar el hook con una transcripción falsa
Objetivo: activar el hook-longrun y provocar las tres franjas en un ensayo, sabiendo qué le pide cada una al agente y cuándo hacer /clear + /prime.
01 · Las franjas sobre el punto de compactación
El porcentaje es sobre el punto en que Claude Code compacta por tamaño, no sobre la ventana completa.
En las mediciones del 07 al 15/10/2026, ninguna sesión compactó por tamaño: las 93 compactaciones fueron por inactividad (lección 4).
Hook-longrun 1.9.6 (18/10/2026). Las franjas cambian con LONGRUN_FAIXAS="50,70,85". El aviso llega una llamada de herramienta después, porque la transcripción se graba con retraso.
02 · Compactar, grabar handoff o abrir una sesión nueva
Qué guarda cada camino, medido el 15/10/2026 (17 compactaciones con handoff de la misma sesión en las 3 h anteriores).
1. Compactación
El resumen cita de 20 a 54 archivos y conserva los pasos y comandos recientes. Dentro de la misma sesión, guarda más detalle concreto que el handoff.
Pero no separa lo confirmado de la suposición, mezcla las decisiones en la narrativa y no sobrevive a /clear.
2. Handoff
Cita de 1 a 27 archivos, pero marca lo que se probó y guarda las decisiones y la próxima acción en una sección propia.
Es el único que sirve para otra sesión, otro día o para Codex. Los dos juntos son mejores que cualquiera solo.
Error que debes evitarGrabar el handoff a partir del resumen de la compactación: se vuelve copia de copia.
3. /clear + /prime
La sesión nueva vuelve a descubrir: el 80% de los primeros 25 pasos fueron lecturas, contra 51–59% después de compactar.
Por eso la sesión nueva llega en la franja 3 o en la 3.ª compactación, al final de la unidad en curso, y no antes.
4. Gastar menos contexto
La mitad de un JSONL de 1,84 GB medido el 01/10/2026 era salida de herramientas. Guarda el log en un archivo y lee el fragmento (tail -50).
El subagente gasta su propio contexto y devuelve solo el resumen; Anthropic cita retornos de 1.000 a 2.000 tokens. Cómo usar subagentes es tema del curso 3.
03 · Activar el hook y ensayar las franjas
El ensayo escribe una transcripción falsa con el número de tokens que quieras y llama al hook como lo llamaría Claude Code.
~/.claude/settings.json · fragmento "hooks" (únelo a los tuyos)
$ bash ensaio-hook.sh 500000
{"hookSpecificOutput": {"hookEventName": "PostToolUse", "additionalContext":
"Contexto em 52% do ponto de compactação (500 mil de 967 mil tokens). FAIXA 1 de 3:
antes de seguir, acrescente em longrun/2026-10-19-teste/canal.md o que você precisaria
se o histórico sumisse agora (…) Só acrescentar. Depois continue o trabalho normalmente."}}
$ bash ensaio-hook.sh 500000
$ bash ensaio-hook.sh 700000
{… "Contexto em 72% do ponto de compactação (700 mil de 967 mil tokens). FAIXA 2 de 3:
atualize state.md, progress.md e (…) canal.md; termine a unidade de trabalho atual e
grave o handoff agora (…)"},
"systemMessage": "Execução longa em 72% do ponto de compactação: hora de /compact
(o agente foi avisado)."}
$ bash ensaio-hook.sh 830000
{… "Contexto em 86% do ponto de compactação (830 mil de 967 mil tokens). FAIXA 3 de 3:
não abra trabalho novo. (…) /session-handoff, sessão nova e /prime (…) ao fim da
unidade em curso, sem largá-la no meio. (…)"},
"systemMessage": "Execução longa em 86% do ponto de compactação: hora de
/session-handoff + sessão nova + /prime."}
Saltos de línea y (…) añadidos para que quepa en la pantalla; el texto es el del hook-longrun 1.9.6. El additionalContext va al agente; el systemMessage te aparece a ti.
No hay hook de compactación ni contador. Sigue el porcentaje en /status; quien sigue las franjas es la regla del AGENTS.md (clase 1) y tú.
Medido en el kit: Codex compacta cerca del 90–93% de la ventana, alrededor de 230–240 mil de 258 mil, tarde para la calidad del resumen. Haz el /compact manual antes.
Con modelo de OpenAI la compactación automática corre en el servidor e ignora el compact_prompt; el prompt estructurado en ~/.codex/config.toml solo vale en el /compact manual.
04 · Práctica
El primer ejercicio toca tu settings.json: haz una copia de seguridad antes.
E6 · Hook activado en los cinco eventos
15 min
Copia settings.json a settings.json.bak y une el fragmento de hooks a los que ya tienes (no borres los tuyos). Abre una sesión nueva de Claude Code para cargarlo.
Listo cuando:python3 -c "import json,os;h=json.load(open(os.path.expanduser('~/.claude/settings.json')))['hooks'];print(sorted(e for e,l in h.items() if 'hook-longrun' in json.dumps(l)))" → ['PostToolUse', 'PreCompact', 'SessionStart', 'Stop', 'UserPromptSubmit'].
E7 · Las tres franjas en el ensayo
10 min
Guarda el ensaio-hook.sh y ejecuta la secuencia de las tres franjas. Después borra /tmp/ensaio-hook y ejecuta LONGRUN_TETO=600000 bash ensaio-hook.sh 500000.
Listo cuando: aparecen, en este orden, FAIXA 1 de 3, nada, FAIXA 2 de 3 y FAIXA 3 de 3; con LONGRUN_TETO=600000, 500 mil ya cae en la FAIXA 2 de 3 (83% de 600 mil).
05 · Prueba de la clase
Pregunta 1 de 4
En un modelo de 1M, ¿en cuántos tokens avisa el hook la franja 2 por defecto?competencia
Correcto
La cuenta es sobre el punto de compactación por tamaño (~967 mil), no sobre la ventana. Las franjas 112/157/191 mil eran del hook 1.2.x, que usaba el tope equivocado de 225 mil y se disparaba en medio del trabajo.
No es esa
La cuenta es sobre el punto de compactación por tamaño (~967 mil), no sobre la ventana. Las franjas 112/157/191 mil eran del hook 1.2.x, que usaba el tope equivocado de 225 mil y se disparaba en medio del trabajo.Repasar: Las franjas sobre el punto de compactación
Pregunta 2 de 4
La franja 3 se disparó en medio de una refactorización. ¿Qué debe hacer el agente?competencia
Correcto
Desde la 1.4.1, la franja 3 y la 3ª compactación no mandan soltar todo a mitad de camino: la sesión nueva cuesta más lectura (80% de los primeros 25 pasos), así que llega al final de la unidad.
No es esa
Desde la 1.4.1, la franja 3 y la 3ª compactación no mandan soltar todo a mitad de camino: la sesión nueva cuesta más lectura (80% de los primeros 25 pasos), así que llega al final de la unidad.Repasar: Las franjas sobre el punto de compactación
Pregunta 3 de 4
Dentro de la misma sesión, ¿qué guarda más detalle concreto (archivos, pasos)?
Correcto
Medido el 15/10: el resumen cita 20–54 archivos; el handoff, 1–27. El handoff gana al separar lo probado de lo supuesto, en las decisiones y en sobrevivir a /clear. Por eso, los dos juntos.
No es esa
Medido el 15/10: el resumen cita 20–54 archivos; el handoff, 1–27. El handoff gana al separar lo probado de lo supuesto, en las decisiones y en sobrevivir a /clear. Por eso, los dos juntos.Repasar: Compactar, grabar handoff o abrir una sesión nueva
Pregunta 4 de 4
Tú usas Codex. ¿Cómo sigues las franjas?
Correcto
Codex no tiene hook de compactación ni contador. La regla escrita y tú hacen el papel del hook; y su compactación automática ignora el compact_prompt con modelo de OpenAI.
No es esa
Codex no tiene hook de compactación ni contador. La regla escrita y tú hacen el papel del hook; y su compactación automática ignora el compact_prompt con modelo de OpenAI.Repasar: Activar el hook y ensayar las franjas
Prueba terminada
Acertaste {a} de {n}. Si aciertas todas, la clase se marca como completada.
Elige una alternativa. La explicación aparece después de tu intento.
06 · En tres frases
Sobre el punto justoLas franjas son 50/70/85% de ~967 mil: canal, luego estado + handoff + /compact, luego nada nuevo y sesión nueva al final.
Los dos juntosLa compactación guarda más detalle; el handoff guarda lo probado, las decisiones y sobrevive a /clear.
Ensaya antesCon una transcripción falsa ves cada aviso del hook sin gastar un token.