Dejar de leer archivos enteros; comprimir lo que lees
Aplasta el ruido de logs, estaciona la salida voluminosa en disco detrás de un stub, y lee un cuerpo de función en vez de un archivo.
Prompt#
Ese log de build es enorme — comprímelo y sigue. Y deja de leer archivos enteros.
Qué hace el Chair#
Aplasta el ruido repetitivo en el momento, o estaciona el bloque en .orch/context/ y
deja en la conversación solo un stub con un id.
Llamadas MCP#
context_crush({ "text": "<the 4k-line build log>" })
Cuando puedas necesitar el original después:
context_externalize({ "text": "<the 4k-line build log>" })
Recupéralo por el id que trae el stub, o busca en todo lo estacionado:
context_retrieve({ "id": "ctx-7f31a2" })
context_search({ "query": "undefined reference", "limit": 20 })
Y para el código fuente, reemplaza la lectura del archivo por completo:
code_snippet({ "symbol": "RotateOn429", "max_lines": 120 })
Para ver o cambiar las banderas: orch context show, orch context setup.
Respuesta esperada#
context_crush devuelve el texto aplastado. context_externalize devuelve un stub más
el id con el que se recupera. context_retrieve devuelve el bloque completo.
context_search devuelve fragmentos rankeados. code_snippet devuelve
{symbol, start_line, end_line, body, file_bytes} — y registra los bytes que ahorró
contra el tamaño del archivo que sustituyó.
Trampas#
- Las cuatro herramientas
context_*están detrás de una bandera.context.guidance.mcp_tools(activa por defecto) las expone; apágala y ni siquiera aparecen en la lista de herramientas. Confírmalo conorch context show. - Crush pierde información a propósito; externalize no. Crush colapsa líneas
repetidas de éxito/log y no las recuperas. Externalize guarda el original en disco
bajo
.orch/contexty te entrega un stub. - Los bloques externalizados vencen.
context.ttl_minutes(30 por defecto) es el tiempo en quecontext_retrievegarantiza respuesta. La salida voluminosa que necesitas mañana va en un archivo tuyo, no en el almacén de contexto. - Los resultados de herramientas protegidas nunca se aplastan. Todo lo que esté en
context.guidance.protect_toolspasa entero — esa es la salida de emergencia para salidas donde una línea perdida es un bug. - Los hooks hacen esto sin que lo pidas.
hooks.post_toolcomprime los resultados de herramientas al llegar (PostToolUse del harness más el plugin de OpenCode) yhooks.pre_compactdispara antes de que el harness compacte.orch guard wirelos instala; ambos son opt-in. auto_gatewayaplica la misma compresión a/v1/chat/completionsen el gateway local, así que los CLIs BYO la reciben sin llamar ninguna herramienta.- La verdadera ganancia es no leer el archivo.
code_snippet/trace_path/impact/architectureresponden casi todo "cómo funciona X" por una fracción de los tokens; leer el archivo completo es el último recurso.