Guía de implementación para sesiones largas de Claude Code — basada en el módulo CRM de cultivaia-next como sesión de ejemplo.
| Transición de fase | ¿Compactar? | Por qué |
|---|---|---|
| Investigación → Planificación | SÍ | Los docs leídos son voluminosos; el plan es el output destilado que importa |
| Planificación → Implementación | SÍ | El plan ya está en TodoWrite o archivo; libera contexto para escribir código |
| Implementación → Testing | QUIZÁS | Mantener si los tests referencian código reciente; compactar si cambias foco |
| Debugging → siguiente feature | SÍ | Los stack traces y trazas de error contaminan el contexto de trabajo nuevo |
| Módulo CRM → Módulo Herramientas | SÍ | Cambio de dominio completo; el contexto previo es ruido puro |
| Mid-implementación (código parcial) | NO | Perderías nombres de variables, rutas de archivos y estado parcial |
| Tras enfoque fallido | SÍ | Limpia el razonamiento erróneo antes de probar una nueva aproximación |
| Revisión de PR → nueva sesión | SÍ | El diff y comentarios del PR ya no son relevantes para trabajo independiente |
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [{
"type": "command",
"command": "node ~/.claude/scripts/
hooks/suggest-compact.js"
}]
},
{
"matcher": "Write",
"hooks": [{
"type": "command",
"command": "node ~/.claude/scripts/
hooks/suggest-compact.js"
}]
}
]
}
}
// Variables de entorno CULTIVA
// (ventana 200k → umbral 160k)
const COMPACT_THRESHOLD = 50;
const COMPACT_CONTEXT_THRESHOLD
= 160_000;
const COMPACT_CONTEXT_INTERVAL
= 60_000;
const COMPACT_STATE_TTL_DAYS
= 14;
// Leer transcript de sesión
// Sumar input_tokens +
// cache_read_input_tokens +
// cache_creation_input_tokens
// Comparar con umbral
// Si supera → sugerir /compact