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 con orch 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/context y te entrega un stub.
  • Los bloques externalizados vencen. context.ttl_minutes (30 por defecto) es el tiempo en que context_retrieve garantiza 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_tools pasa 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_tool comprime los resultados de herramientas al llegar (PostToolUse del harness más el plugin de OpenCode) y hooks.pre_compact dispara antes de que el harness compacte. orch guard wire los instala; ambos son opt-in.
  • auto_gateway aplica la misma compresión a /v1/chat/completions en 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 / architecture responden casi todo "cómo funciona X" por una fracción de los tokens; leer el archivo completo es el último recurso.