context-distill
context-distill es un servidor MCP que comprime la salida de comandos ruidosos en resúmenes precisos y procesables para flujos de trabajo con LLM. Use distill_batch para registros grandes y distill_watch para deltas ciclo a ciclo. Construido con Go, Cobra, Viper y DI para una destilación confiable local y respaldada por proveedores.
Documentación

context-distill
Una herramienta en Go que destila la salida de comandos y recupera contexto de código antes de que llegue a un LLM de pago. Disponible como Skill (recomendado), CLI independiente y servidor MCP. Inspirada en el CLI distill y construida con arquitectura hexagonal, inyección de dependencias y TDD.
Resumen
context-distill expone cuatro operaciones accesibles de tres maneras:
| Modo | Mejor para | Cómo funciona |
|---|---|---|
| Skill ⭐ (recomendado) | Cualquier agente que pueda leer markdown y ejecutar comandos de shell | El agente lee un archivo SKILL.md desde su propio directorio de skills y aprende cuándo y cómo invocar el CLI. Cero configuración en el lado del agente. |
| CLI | Scripts locales, pipelines de CI, agentes con capacidad de shell | Subcomandos directos: context-distill distill_batch, context-distill distill_mcp_output, context-distill distill_watch, context-distill search_code. |
| MCP | Agentes/clientes con soporte MCP nativo (Claude Desktop, Cursor, Codex…) | Se ejecuta como servidor MCP sobre transporte stdio. |
| Operación | Propósito |
|---|---|
distill_batch | Comprime la salida completa de un comando para responder una única pregunta explícita. |
distill_mcp_output | Destila payloads MCP crudos, o llama a una herramienta MCP y destila su resultado en un solo paso. |
distill_watch | Compara dos instantáneas consecutivas y devuelve solo el delta relevante. |
search_code | Localiza código relevante en el repositorio y devuelve coincidencias compactas para el siguiente paso de razonamiento. |
Los tres modos comparten los mismos casos de uso subyacentes, reglas de validación y comportamiento de salida. Solo difiere el método de invocación.
También proporciona:
- Configuración del proveedor LLM mediante YAML y variables de entorno.
- Una interfaz de terminal interactiva para la configuración inicial (
--config-ui). - Soporte para Ollama y cualquier proveedor compatible con OpenAI.
Por qué se recomienda el modo Skill
| Skill | CLI | MCP | |
|---|---|---|---|
| Configuración del agente requerida | Ninguna — solo coloca SKILL.md en el directorio de skills del agente | El agente debe saber cómo ejecutar comandos de shell | Registrar el servidor en la configuración del cliente |
| Funciona entre agentes | ✅ Cualquier agente que lea markdown | ✅ Cualquier agente que ejecute shell | ⚠️ Solo clientes compatibles con MCP |
| Complejidad de configuración | Copiar un archivo por agente | Instalar binario | Instalar binario + registrar transporte |
| Portabilidad | Funciona en cualquier repositorio | Funciona en cualquier shell | Ligado a la configuración del cliente MCP |
El modo Skill funciona porque los agentes de codificación modernos (Codex, Claude Code, Cursor, Aider, OpenCode…) ya saben leer documentación de proyectos y ejecutar comandos de shell. Un archivo SKILL.md enseña al agente cuándo destilar o recuperar contexto de código y cómo llamar al CLI — sin necesidad de integración de protocolo.
Características
- Interfaz triple — Archivo Skill para adopción sin configuración por parte del agente + CLI para uso directo en shell + herramientas MCP para clientes nativos de protocolo.
- Cuatro operaciones principales —
distill_batch,distill_mcp_output,distill_watchysearch_code. - Arquitectura hexagonal —
distill/domain,distill/application,platform/*. - Inyección de dependencias mediante
sarulabs/di. - Gestión de configuración con
viper+.env. - Validación específica del proveedor en tiempo de configuración.
- Interfaz de configuración interactiva (
--config-ui). - Pruebas unitarias, de integración y opcionales en vivo.
Requisitos
- Go 1.26+
- Make (recomendado)
Si prefieres no compilar, puedes instalar un binario precompilado desde GitHub Releases (ver más abajo).
Instalación
Opción A: Compilar desde el código fuente
make build
El binario se coloca en ./bin/context-distill.
Para instalarlo en tu PATH:
make install
# installs to ~/.local/bin/context-distill
Opción B: Binario precompilado (sin necesidad de compilar)
Linux / macOS:
# Latest release
curl -fsSL https://raw.githubusercontent.com/jcastilloa/context-distill/master/scripts/install.sh | sh
# Specific version
curl -fsSL https://raw.githubusercontent.com/jcastilloa/context-distill/master/scripts/install.sh | VERSION=vX.Y.Z sh
Windows (PowerShell):
# Latest release
iwr https://raw.githubusercontent.com/jcastilloa/context-distill/master/scripts/install.ps1 -UseBasicParsing | iex
# Specific version
$env:VERSION='vX.Y.Z'; iwr https://raw.githubusercontent.com/jcastilloa/context-distill/master/scripts/install.ps1 -UseBasicParsing | iex
Variables de entorno del instalador:
| Variable | Valor predeterminado |
|---|---|
REPO | jcastilloa/context-distill |
SERVICE_NAME | context-distill |
INSTALL_DIR | ~/.local/bin (Linux/macOS) · %LOCALAPPDATA%\context-distill\bin (Windows) |
VERSION | Etiqueta de la última versión |
Objetivos de Makefile
make help
| Objetivo | Descripción |
|---|---|
make build | Compilar el binario en ./bin/context-distill |
make install | Instalar el binario en ~/.local/bin/context-distill |
make clean | Eliminar ./bin |
Inicio rápido
1. Configurar el proveedor (todos los modos)
context-distill --config-ui
2. Verificar que funciona
echo "PASS: TestA, PASS: TestB, FAIL: TestC - expected 4 got 5" | context-distill distill_batch --question "Did tests pass? Return only PASS or FAIL. If FAIL, list failing test names."
context-distill distill_watch --question "What changed? Return one short sentence." --previous-cycle "services: api=OK, db=OK, cache=OK" --current-cycle "services: api=OK, db=FAIL, cache=OK"
context-distill distill_mcp_output \
--tool-name "list_items" \
--question "Return only item names, one per line." \
--output '[{"type":"text","text":"[{\"id\":\"a1\",\"name\":\"Alpha\"},{\"id\":\"b2\",\"name\":\"Beta\"}]"}]'
context-distill distill_mcp_output \
--server-command "/absolute/path/to/mcp-server" \
--server-arg "--transport" \
--server-arg "stdio" \
--tool-name "get_status" \
--tool-arguments '{"scope":"production"}' \
--question "Return only status and version as JSON."
context-distill search_code --query "provider_name" --mode text --question "Return only file:line, one per line."
Si los comandos devuelven respuestas compactas esperadas, la configuración está lista.
3. Elegir tu modo
⭐ Modo Skill (recomendado)
Copia SKILL.md en el directorio de skills del agente correspondiente (ver Configuración de Skill). Tu agente lo leerá automáticamente y comenzará a destilar.
Modo CLI
Usa los subcomandos directamente en scripts o llamadas de shell del agente:
# Pipe (preferred)
echo "data" | context-distill distill_batch --question "..."
# Explicit flag
context-distill distill_batch --question "..." --input "data"
# Explicit stdin marker
echo "data" | context-distill distill_batch --question "..." --input -
# MCP payload distillation
context-distill distill_mcp_output --tool-name "list_items" --question "Return only item names." --output '<mcp payload>'
# MCP call + distillation in one step
context-distill distill_mcp_output --server-command "/absolute/path/to/mcp-server" --server-arg "--transport" --server-arg "stdio" --tool-name "get_status" --tool-arguments '{"scope":"production"}' --question "Return only status and version as JSON."
# Code retrieval
context-distill search_code --query "LoadDistillConfig" --mode symbol --question "Return likely definitions first as file:line, one per line."
Modo MCP
context-distill --transport stdio
Luego registra el servidor en tu cliente MCP (ver Registro de cliente MCP).
Configuración de Skill (Recomendado)
El skill canónico instalable ahora vive en SKILL.md.
Ese archivo es el lugar más claro para aprender el comportamiento y el archivo más fácil de copiar en un directorio de skills de agente.
El skill ahora cubre cuatro flujos de trabajo concretos:
- Destilar salida larga de comandos con
distill_batch. - Destilar payloads MCP crudos que ya tienes con
distill_mcp_output --output. - Llamar a una herramienta MCP y destilar el resultado en un solo paso con
distill_mcp_output --server-command. - Localizar código antes de abrir muchos archivos con
search_code.
Plantillas adicionales listas para copiar viven aquí:
Dónde instalar el Skill
Instala SKILL.md a nivel de proyecto, nivel global, o ambos:
| Agente | Ruta a nivel de proyecto | Ruta global |
|---|---|---|
| Claude Code | .claude/skills/context-distill/SKILL.md | ~/.claude/skills/context-distill/SKILL.md |
| Codex | .codex/skills/context-distill/SKILL.md | ~/.codex/skills/context-distill/SKILL.md |
| OpenCode | .opencode/skills/context-distill/SKILL.md | ~/.opencode/skills/context-distill/SKILL.md |
| Cursor | .cursor/skills/context-distill/SKILL.md | ~/.cursor/skills/context-distill/SKILL.md |
A nivel de proyecto (recomendado para equipos): cada agente que trabaje en el repositorio lo recoge automáticamente.
Global (recomendado para uso personal): disponible en cada proyecto sin configuración por repositorio.
Ejemplo de instalación rápida (Claude Code, nivel de proyecto)
mkdir -p .claude/skills/context-distill
cp SKILL.md .claude/skills/context-distill/SKILL.md
Ejemplo de instalación rápida (todos los agentes, global)
for agent in .claude .codex .opencode .cursor; do
mkdir -p ~/"$agent"/skills/context-distill
cp SKILL.md ~/"$agent"/skills/context-distill/SKILL.md
done
Referencia de comandos CLI
Los comandos CLI proporcionan las mismas capacidades que las herramientas MCP (destilación + recuperación de código) pero se invocan directamente desde el shell. Úsalos en scripts locales, pipelines de CI, o con tiempos de ejecución de agentes que ejecutan comandos de shell en lugar de herramientas MCP.
Métodos de entrada
# 1. Pipe (preferred)
echo "data" | context-distill distill_batch --question "..."
# 2. Explicit flag
context-distill distill_batch --question "..." --input "data"
# 3. Explicit stdin marker
echo "data" | context-distill distill_batch --question "..." --input -
distill_batch
Destila un payload de salida crudo usando un contrato de pregunta explícito.
go test ./... 2>&1 | context-distill distill_batch --question "Did all tests pass? Return only PASS or FAIL."
Banderas:
| Bandera | Requerida | Descripción |
|---|---|---|
--question | sí | Pregunta exacta a responder a partir de la salida del comando. |
--input | no | Salida cruda del comando a destilar. Si se omite, lee desde stdin. |
distill_mcp_output
Destila resultados MCP en cualquiera de estos modos:
- Ya tienes un payload MCP crudo y lo pasas con
--output. - Quieres que
context-distillllame primero a una herramienta MCP y luego destile el resultado.
context-distill distill_mcp_output \
--tool-name "list_items" \
--question "Return only item names, one per line." \
--output '<mcp payload>'
context-distill distill_mcp_output \
--server-command "/absolute/path/to/mcp-server" \
--server-arg "--transport" \
--server-arg "stdio" \
--tool-name "get_status" \
--tool-arguments '{"scope":"production"}' \
--question "Return only status and version as JSON."
Banderas:
| Bandera | Requerida | Descripción |
|---|---|---|
--question | sí | Pregunta exacta a responder a partir del resultado MCP. |
--tool-name | no* | Contexto útil al usar --output; requerido al invocar un servidor. |
--output | no* | Payload MCP crudo a destilar directamente. |
--server-command | no* | Binario del servidor MCP a invocar cuando se omite --output. |
--server-arg | no | Argumento del servidor MCP. Repetir para múltiples valores. |
--tool-arguments | no | Objeto JSON pasado a la herramienta MCP objetivo. |
* Debes proporcionar ya sea --output o una invocación de servidor (--server-command + --tool-name).
distill_watch
Destila solo el delta relevante entre dos instantáneas.
context-distill distill_watch \
--question "Return only newly failing services, one per line." \
--previous-cycle "$(cat /tmp/health.prev)" \
--current-cycle "$(cat /tmp/health.curr)"
Banderas:
| Bandera | Requerida | Descripción |
|---|---|---|
--question | sí | Pregunta exacta a responder a partir de los cambios del ciclo. |
--previous-cycle | sí | Instantánea de salida del ciclo de vigilancia anterior. |
--current-cycle | sí | Instantánea de salida del ciclo de vigilancia actual. |
search_code
Busca código del repositorio localmente y destila coincidencias compactas según --question.
context-distill search_code \
--query "distill_watch" \
--mode symbol \
--question "Return definitions first, then usages, as file:line."
Importante:
- La sintaxis CLI usa banderas. Usa
--query,--mode,--question,--max-results,--context-lines. - No uses argumentos de shell como
search_code mode=text query="..." max_results=5(ese formato no es sintaxis CLI válida). - Para
--mode path, trata--querycomo un fragmento de ruta (por ejemplo,.go), y usa--scopepara filtros glob.
Banderas:
| Bandera | Requerida | Descripción |
|---|---|---|
--query | sí | Consulta de búsqueda para texto, regex, nombre de símbolo o fragmento de ruta. |
--mode | sí | Modo de búsqueda: text, regex, symbol o path. |
--question | sí | Contrato de salida para el resultado compacto final. |
--scope | no | Filtros glob opcionales (repetir bandera o separados por comas). |
--max-results | no | Límite máximo para candidatos devueltos (predeterminado 20). |
--context-lines | no | Líneas de contexto alrededor de cada coincidencia (predeterminado 2). |
Notas del CLI
- Los comandos CLI y las herramientas MCP comparten los mismos casos de uso subyacentes y reglas de validación.
- Entradas inválidas/faltantes devuelven un código de salida distinto de cero.
- La salida se escribe en la salida estándar exactamente como la produce el caso de uso seleccionado.
Modo servidor MCP
Ejecutar el servidor
context-distill --transport stdio
# or without building:
go run ./cmd/server --transport stdio
Versión
go run ./cmd/server version
Banderas del servidor
| Bandera | Descripción | Predeterminado |
|---|---|---|
--transport | Modo de transporte MCP (stdio) | service.transport |
--config-ui | Abrir interfaz de configuración y salir | false |
Registro de cliente MCP
Después de compilar o instalar el binario, regístralo en tu cliente MCP para usar la interfaz de herramientas.
Clientes basados en JSON (Claude Desktop, Cursor, etc.)
{
"mcpServers": {
"context-distill": {
"command": "/absolute/path/to/context-distill",
"args": ["--transport", "stdio"]
}
}
}
Codex — TOML manual (recomendado)
Agrega a ~/.codex/config.toml:
[mcp_servers.context-distill]
command = "/absolute/path/to/context-distill"
args = ["--transport", "stdio"]
startup_timeout_sec = 20.0
Si usaste make install:
[mcp_servers.context-distill]
command = "/home/<your-user>/.local/bin/context-distill"
args = ["--transport", "stdio"]
startup_timeout_sec = 20.0
Codex — registro CLI
codex mcp add context-distill -- /absolute/path/to/context-distill --transport stdio
Verifica:
codex mcp list
codex mcp get context-distill
Reinicia tu sesión de Codex para que detecte el nuevo servidor.
OpenCode — CLI interactivo
opencode mcp add
Sigue las indicaciones:
- Ubicación →
Current projectoGlobal. - Nombre →
context-distill. - Tipo →
local. - Comando →
/absolute/path/to/context-distill --transport stdio.
Verifica:
opencode mcp list
Si el servidor aún no está conectado, reinicia tu sesión de OpenCode.
OpenCode — configuración manual (opencode.json)
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context-distill": {
"type": "local",
"command": ["/absolute/path/to/context-distill", "--transport", "stdio"],
"enabled": true
}
}
}
Notas de registro
- Usa siempre una ruta absoluta del binario.
- Usa siempre transporte
stdio. - Si el servidor no aparece, ejecuta
codex mcp list --jsonpara inspeccionar la configuración resuelta.
Referencia de herramientas MCP
Las herramientas MCP exponen las mismas capacidades que los comandos CLI (destilación + recuperación de código), pero son consumidas por clientes compatibles con MCP a través del transporte stdio.
distill_batch
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
question | string | sí | Qué extraer de la entrada. Debe incluir un contrato de salida. |
input | string | sí | Salida cruda del comando a destilar. |
Devuelve una respuesta corta y enfocada a question.
distill_watch
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
question | string | sí | Qué delta informar. Debe incluir un contrato de salida. |
previous_cycle | string | sí | Instantánea del ciclo anterior. |
current_cycle | string | sí | Instantánea del ciclo actual. |
| Devuelve un resumen breve de los cambios relevantes, o un mensaje de sin cambios cuando no hay diferencias significativas. |
search_code
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
query | string | sí | Consulta de búsqueda para texto, regex, símbolo o ruta. |
mode | string | sí | Modo de búsqueda: text, regex, symbol, path. |
question | string | sí | Contrato de salida para la respuesta destilada. |
scope | array[string] | no | Filtros opcionales de ámbito glob. |
max_results | number | no | Límite estricto de coincidencias (predeterminado 20). |
context_lines | number | no | Líneas de contexto por coincidencia (predeterminado 2). |
Devuelve una salida compacta controlada por question, después de la recuperación local del repositorio.
Notas:
- Esta sección documenta los campos de carga útil de las herramientas MCP (
snake_case), no las opciones de shell. - Los equivalentes de CLI son
--query,--mode,--question,--scope,--max-results,--context-lines.
Configuración
Interfaz de terminal (recomendada para la primera configuración)
context-distill --config-ui
# or without building:
go run ./cmd/server --config-ui
Campos editables:
| Campo | Notas |
|---|---|
provider_name | Lista desplegable de proveedores compatibles. |
base_url | Obligatorio para proveedores compatibles con OpenAI. |
api_key | Entrada enmascarada. Obligatorio para openai, openrouter, jan. |
Reglas de validación:
- Los proveedores que requieren una clave de API bloquean el guardado hasta que se ingrese una.
- Los proveedores compatibles con OpenAI requieren un
base_url. - Los alias de proveedores se normalizan automáticamente (p. ej.
OpenAI Compatible→openai-compatible,dmr→docker-model-runner).
Ruta de configuración persistida: ~/.config/context-distill/config.yaml
El guardado conserva las secciones YAML existentes (service, openai, etc.) y actualiza solo los campos relevantes de distill.
Configuración manual de YAML
También puedes editar el archivo de configuración directamente.
Orden de búsqueda:
~/.config/<service>/config.yaml./config.yaml
Ejemplo de config.yaml:
service:
transport: stdio
openai:
provider_name: openai
api_key: sk-xxxx
base_url: https://api.openai.com/v1
model: gpt-4o-mini
timeout: 30s
max_retries: 3
supports_system_role: true
supports_json_mode: true
distill:
provider_name: ollama
base_url: http://127.0.0.1:11434
model: qwen3.5:2b
timeout: 90s
max_retries: 0
thinking: false
Nota:
service.versionse inyecta en tiempo de compilación desde los metadatos del binario y no es necesario configurarlo manualmente.
Matriz de proveedores
| Proveedor | Transporte | Clave de API obligatoria | URL base predeterminada |
|---|---|---|---|
ollama | ollama nativo | No | http://127.0.0.1:11434 |
openai | compatible con OpenAI | Sí | https://api.openai.com/v1 |
openrouter | compatible con OpenAI | Sí | https://openrouter.ai/api/v1 |
openai-compatible | compatible con OpenAI | No (depende del backend) | — |
lmstudio | compatible con OpenAI | No | http://127.0.0.1:1234/v1 |
jan | compatible con OpenAI | Sí | http://127.0.0.1:1337/v1 |
localai | compatible con OpenAI | No | http://127.0.0.1:8080/v1 |
vllm | compatible con OpenAI | No | http://127.0.0.1:8000/v1 |
sglang | compatible con OpenAI | No | — |
llama.cpp | compatible con OpenAI | No | — |
mlx-lm | compatible con OpenAI | No | — |
docker-model-runner | compatible con OpenAI | No | http://127.0.0.1:12434/engines/v1 |
Cómo escribir buenas preguntas
La calidad de la salida de destilación/búsqueda depende del contrato question — ya sea que se invoque mediante Skill, CLI o MCP. Sé explícito sobre qué quieres y en qué formato.
Malas preguntas
"What happened?""Summarize this"
Buenas preguntas
"Did tests pass? Return only PASS or FAIL. If FAIL, list failing test names, one per line.""List only changed file paths, one per line.""Return valid JSON only with keys: severity, file, message."
Ejemplos de distill_batch
| Fuente | Pregunta |
|---|---|
go test ./... | "Did tests pass? Return only PASS or FAIL." |
git diff | "List changed files and one short reason per file. Max 10 lines." |
| Registros de CI | "Return only blocking errors with file and line if available." |
Ejemplos de distill_watch
| Instantáneas | Pregunta |
|---|---|
| Salida del observador de pruebas en T−1 / T | "What changed in failure count? Return one short sentence." |
| Estado de implementación en T−1 / T | "Return only newly failing services, one per line." |
Ejemplos de search_code
| Modo | Pregunta |
|---|---|
text | "Return only file:line, one per line." |
symbol | "Return likely definitions first, then usages, as file:line." |
path | "Return matching file paths only, one per line." |
Plantillas de AGENTS.md
Si prefieres incrustar instrucciones directamente en el AGENTS.md de tu proyecto, usa los archivos independientes en lugar de copiar bloques grandes de este README:
Política sugerida en una línea
Incluye esto en la documentación de tu proyecto para una referencia rápida:
Default policy: use `context-distill` (via Skill, CLI, or MCP) to distill command output and run `search_code` for repository localization before sending data to an LLM, unless raw output is explicitly required.
Estructura del proyecto
context-distill/
├── cmd/
│ └── server/
│ ├── main.go
│ ├── bootstrap.go
│ └── openai_distill_config.go
├── distill/
│ ├── application/
│ │ └── distillation/
│ └── domain/
├── mcp/
│ ├── application/
│ └── domain/
├── platform/
│ ├── config/
│ ├── configui/
│ ├── di/
│ ├── mcp/
│ │ ├── commands/
│ │ ├── server/
│ │ └── tools/
│ ├── ollama/
│ └── openai/
├── shared/
│ ├── ai/domain/
│ └── config/domain/
├── SKILL.md
├── config.sample.yaml
├── config.yaml
├── Makefile
└── AGENTS.md
Arquitectura
Regla de dependencias:
platform → shared + distill/application + distill/domain
distill/application → distill/domain
cmd → platform + shared
Restricción: shared y distill/domain nunca deben importar platform.
Desarrollo
Pruebas y comprobaciones estáticas
go test ./...
go vet ./...
Flujo de trabajo local sugerido
go test ./...context-distill --config-ui- Verifica que la CLI funcione:
echo "hello world" | context-distill distill_batch --question "Return the input verbatim." context-distill search_code --query "provider_name" --mode text --question "Return only file:line, one per line." - (Opcional) Inicia el servidor MCP:
context-distill --transport stdio - Valida el comportamiento desde tu cliente MCP o mediante comandos de CLI.
Prueba en vivo opcional (proveedor real)
DISTILL_LIVE_TEST=1 OPENAI_BASE_URL=https://openrouter.ai/api/v1 \
go test -tags=live ./platform/di -run TestLiveDistillBatchWithOpenAICompatibleProvider -v
Solución de problemas
| Problema | Solución |
|---|---|
provider unauthorized | Verifica distill.api_key (o el respaldo openai.api_key, según el proveedor). |
requires base_url | Establece distill.base_url. La ruta más rápida es --config-ui. |
| El cliente MCP no detecta el servidor | Confirma que la ruta del binario sea absoluta, tenga permisos de ejecución y que el transporte sea stdio. |
| El servidor falla en la validación de configuración | Ejecuta --config-ui para la configuración inicial y luego inicia normalmente. |
| El comando de CLI devuelve un código de salida distinto de cero | Verifica que las opciones obligatorias estén presentes y no vacías (distill_batch: --question; distill_mcp_output: --question más --output o --server-command + --tool-name; distill_watch: --question, --previous-cycle, --current-cycle; search_code: --query, --mode, --question). |
distill_mcp_output falla antes de la ejecución de la herramienta | Verifica que --tool-arguments sea JSON válido y que la ruta del comando del servidor MCP sea absoluta y ejecutable. |
search_code falla con query is required a pesar de pasar valores | Probablemente usaste argumentos de estilo MCP (mode=text query=...) en el shell. Usa opciones de CLI: context-distill search_code --mode text --query "..." --question "...". |
El agente ignora SKILL.md | Asegúrate de que el archivo esté dentro del directorio de habilidades del agente correcto (p. ej. .claude/skills/context-distill/SKILL.md). Consulta la tabla de Configuración de Skill para todas las rutas. |
Seguridad
- Nunca confirmes claves de API reales en repositorios públicos.
- Prefiere secretos basados en variables de entorno en entornos compartidos o de CI.
Licencia
Copyright © 2026 jcastilloa. Todos los derechos reservados.
Se permite la redistribución y el uso en formas de código fuente y binarias, con o sin modificación, siempre que se cumplan las siguientes condiciones:
- Las redistribuciones del código fuente deben conservar el aviso de copyright anterior, esta lista de condiciones y el siguiente descargo de responsabilidad.
- Las redistribuciones en forma binaria deben reproducir el aviso de copyright anterior, esta lista de condiciones y el siguiente descargo de responsabilidad en la documentación y/u otros materiales proporcionados con la distribución.
- Ni el nombre del titular de los derechos de autor ni los nombres de sus contribuyentes pueden usarse para respaldar o promocionar productos derivados de este software sin permiso previo por escrito específico.
ESTE SOFTWARE SE PROPORCIONA POR LOS TITULARES DE LOS DERECHOS DE AUTOR Y LOS CONTRIBUYENTES "TAL CUAL" Y SE RECHAZA CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD E IDONEIDAD PARA UN PROPÓSITO PARTICULAR. EN NINGÚN CASO EL TITULAR DE LOS DERECHOS DE AUTOR O LOS CONTRIBUYENTES SERÁN RESPONSABLES DE CUALQUIER DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENTE (INCLUIDOS, ENTRE OTROS, LA ADQUISICIÓN DE BIENES O SERVICIOS SUSTITUTOS; LA PÉRDIDA DE USO, DATOS O BENEFICIOS; O LA INTERRUPCIÓN COMERCIAL) CUALQUIERA QUE SEA LA CAUSA Y SOBRE CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA POR CONTRATO, RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUIDA LA NEGLIGENCIA U OTRA) QUE SURJA DE CUALQUIER MANERA DEL USO DE ESTE SOFTWARE, INCLUSO SI SE ADVIERTE DE LA POSIBILIDAD DE DICHOS DAÑOS.