Gestión de la ventana de contexto: Lo que 50 sesiones me enseñaron sobre el desarrollo con IA
Medí el consumo de tokens en 50 sesiones de desarrollo con Claude Code. El patrón fue consistente: la calidad del resultado se degrada aproximadamente al 60% de utilización del contexto, mucho antes de que el límite duro active la compactación.1
TL;DR
El agotamiento de la ventana de contexto degrada silenciosamente la calidad de la programación con IA. Después de rastrear 50 sesiones construyendo mi infraestructura de Claude Code y sistema de calidad del blog, encontré tres patrones que mantienen la calidad del resultado durante sesiones de varias horas: compactación proactiva después de cada subtarea, memoria basada en el sistema de archivos que persiste a través de los límites del contexto, y delegación a subagentes que mantiene el contexto principal ligero. La idea clave: trate la ventana de contexto como un recurso escaso, no como un hilo de conversación sin fondo.
Cómo se ve realmente la degradación
Cada lectura de archivo, salida de herramienta y turno de conversación consume tokens. Una sola lectura de un archivo grande (2.000 líneas) puede consumir entre 15.000 y 20.000 tokens. Después de leer 10 archivos y ejecutar varios comandos, la ventana de contexto contiene más salidas de herramientas que instrucciones reales.2
La degradación es sutil. Claude no anuncia “mi contexto está al 80%.” En su lugar, el modelo comienza a: - Olvidar instrucciones anteriores establecidas hace 20 minutos - Repetir sugerencias ya rechazadas tres turnos antes - Pasar por alto patrones establecidos anteriormente en la conversación - Producir cambios multi-archivo menos coherentes
Noté este patrón mientras construía mi sistema de deliberación. Una sesión que comenzó con ediciones multi-archivo precisas en 8 módulos de Python se degradó a una visión de túnel en un solo archivo para la marca de los 90 minutos. El agente dejó de hacer referencia a la arquitectura que había leído antes porque ese contexto había sido comprimido.
Estrategia 1: Compactación proactiva
El comando /compact de Claude Code resume la conversación y libera espacio de contexto. El sistema preserva las decisiones clave, el contenido de los archivos y el estado de la tarea mientras descarta la salida verbosa de las herramientas.3
Cuándo compactar: - Después de completar una subtarea distinta (función implementada, error corregido) - Antes de comenzar una nueva área del código base - Cuando Claude comience a repetirse u olvidar contexto anterior
Compacto aproximadamente cada 25-30 minutos durante sesiones intensivas. Durante la construcción de la infraestructura de deliberación (9 PRDs, 3.455 líneas de Python), compacté después de completar cada PRD. Cada compactación preservó las decisiones arquitectónicas mientras liberaba contexto para la siguiente fase de implementación.
Estrategia 2: El sistema de archivos como memoria
La memoria más confiable a través de los límites del contexto reside en el sistema de archivos. Claude Code lee CLAUDE.md y los archivos de memoria al inicio de cada sesión y después de cada compactación.4
Mi directorio .claude/ sirve como un palacio de la memoria estructurado:
~/.claude/
├── configs/ # 14 JSON configs (thresholds, rules, budgets)
│ ├── deliberation-config.json
│ ├── recursion-limits.json
│ └── consensus-profiles.json
├── hooks/ # 95 lifecycle event handlers
├── skills/ # 44 reusable knowledge modules
├── state/ # Runtime state (recursion depth, agent lineage)
├── handoffs/ # 49 multi-session context documents
├── docs/ # 40+ system documentation files
└── projects/ # Per-project memory directories
└── {project}/memory/
└── MEMORY.md # Always loaded into context
El archivo MEMORY.md captura errores, decisiones y patrones a través de las sesiones. Actualmente contiene 54 fallas documentadas con patrones de aprendizaje entre dominios. Cuando descubro que ((VAR++)) falla con set -e en bash cuando VAR es 0, lo registro. Tres sesiones después, cuando encuentro un caso límite similar con enteros en Python, la entrada de MEMORY.md revela el patrón.5
El efecto compuesto entre dominios: Un error de escape en bash durante el desarrollo de hooks informó una mejora de regex en mi linter de blog en Python. Un vacío en los tokens de CSS (--spacing-2xs no existe) desencadenó una auditoría sistemática de todas las referencias a propiedades personalizadas. Cada entrada conecta dominios que de otro modo permanecerían aislados dentro de los contextos de sesiones individuales.
Estrategia 3: Traspaso de sesión
Para tareas que abarcan múltiples sesiones, creo documentos de traspaso que capturan el estado completo:
## Handoff: Deliberation Infrastructure PRD-7
**Status:** Hook wiring complete, 81 Python unit tests passing
**Files changed:** hooks/post-deliberation.sh, hooks/deliberation-pride-check.sh
**Decision:** Placed post-deliberation in PostToolUse:Task, pride-check in Stop
**Blocked:** Spawn budget model needs inheritance instead of depth increment
**Next:** PRD-8 integration tests in tests/test_deliberation_lib.py
Mi directorio ~/.claude/handoffs/ contiene 49 documentos de traspaso de tareas multi-sesión. Iniciar una nueva sesión con claude -c (continuar) o leer el documento de traspaso proporciona a la sesión sucesora el contexto completo con un costo mínimo de tokens.6
El patrón de traspaso me salvó durante la construcción de la deliberación. El PRD-4 (extensiones del guardia de recursión) requería comprender las decisiones de los PRDs 1-3. Sin el traspaso, la nueva sesión habría necesitado releer todos los archivos modificados. Con el traspaso, la sesión comenzó con el contexto arquitectónico y fue directamente a la implementación.
Estrategia 4: Delegación a subagentes
Los subagentes se ejecutan en ventanas de contexto independientes. Delegar tareas de investigación o revisión a subagentes preserva el contexto de la sesión principal para el trabajo de implementación.7
Mi sistema de guardia de recursión gestiona esto automáticamente:
# From recursion-guard.sh - spawn budget enforcement
MAX_DEPTH=2
MAX_CHILDREN=5
DELIB_SPAWN_BUDGET=2
DELIB_MAX_AGENTS=12
Cada subagente devuelve un resumen en lugar de la salida sin procesar, manteniendo el contexto principal ligero. Durante las reescrituras de publicaciones del blog, delego tareas de exploración (recopilar datos de CSS, leer código de hooks, examinar estructuras de directorios) a subagentes. El contexto principal se mantiene enfocado en la escritura mientras los subagentes manejan la investigación.
El presupuesto de generación se aprendió por las malas: una sesión temprana sin límites generó subagentes recursivos que a su vez generaron más subagentes. El hook de guardia de recursión ahora aplica límites de profundidad con validación segura de enteros y presupuestos configurables.8
Los anti-patrones que aprendí
Leer archivos completos cuando se necesitan 10 líneas. Al principio de mi uso de Claude Code, leía archivos completos de 2.000 líneas para una sola función. Use desplazamientos de línea: Read file.py offset=100 limit=20 ahorra más de 15.000 tokens por lectura.
Mantener salidas de error verbosas en el contexto. Después de depurar el problema del presupuesto de generación, mi contexto contenía más de 40 trazas de pila de iteraciones fallidas. Un solo /compact después de corregir el error liberó ese peso muerto.
Comenzar cada sesión leyendo todos los archivos. Mis primeras sesiones precargaban 8-10 archivos “para contexto.” Ahora dejo que las herramientas glob y grep de Claude Code encuentren los archivos relevantes bajo demanda, ahorrando más de 100.000 tokens de precarga innecesaria.
Conclusiones clave
Para desarrolladores individuales: - Compacte después de cada subtarea completada, no cuando Claude fuerce la compactación; la compactación proactiva en intervalos de 25-30 minutos mantiene la calidad del resultado - Escriba las decisiones clave en archivos de memoria del sistema de archivos a medida que avanza la sesión; mi MEMORY.md tiene 54 entradas que persisten a través de cientos de sesiones - Use subagentes para tareas de investigación que contaminarían el contexto principal; una consulta de investigación de 5 archivos cuesta más de 75.000 tokens en el contexto principal, pero solo un resumen de 500 tokens a través de un subagente
Para equipos:
- Estandarice el formato de documentos de traspaso para tareas multi-sesión; mis 49 traspasos siguen la misma estructura de Estado/Archivos/Decisión/Bloqueado/Siguiente
- Configure archivos CLAUDE.md a nivel de proyecto con contexto arquitectónico que se carga en cada sesión automáticamente
Referencias
-
Medición del autor sobre el consumo de tokens en 50 sesiones de desarrollo con Claude Code (2025-2026). La degradación de la calidad del resultado se observó consistentemente a ~60% de utilización del contexto. ↩
-
Medición del autor: la lectura promedio de un archivo consume entre 8.000 y 20.000 tokens dependiendo del tamaño del archivo. 10 lecturas de archivos más las salidas de herramientas consumen entre el 40% y el 60% de una ventana de contexto de 200K. ↩
-
Anthropic, “Claude Code Documentation,” 2025. Compactación de contexto y el comando /compact. ↩
-
Anthropic, “Claude Code Documentation,” 2025. Archivos de memoria y documentación de CLAUDE.md. ↩
-
Archivos
.claude/projects/*/memory/MEMORY.mddel autor. 54 errores documentados con patrones de aprendizaje entre dominios en bash, Python, CSS y validación de HTML. ↩ -
Flujo de trabajo de gestión de sesiones del autor. 49 documentos de traspaso en
~/.claude/handoffs/que abarcan construcciones de infraestructura multi-sesión. ↩ -
Anthropic, “Claude Code Documentation,” 2025. Aislamiento de contexto de subagentes. ↩
-
Implementación de recursion-guard.sh del autor. Modelo de presupuesto de generación con límites de profundidad, validación segura de enteros y presupuestos configurables. ↩