# Delegacion Local

> Regla y catálogo para delegar pasos mecánicos (resumir, clasificar, extraer, boilerplate, mensaje de commit desde un diff, traducir texto o archivo, resumir salida de lint/tests/CI, explicar código, describir una imagen, verificar si el backend local está disponible) a modelos locales vía las tools local_* del MCP local-delegate, para conservar cuota de la suscripción. Consúltala cuando vayas a resumir/clasificar/extraer de archivos o texto largos, generar boilerplate de código, describir/leer una imagen, o hacer una primera pasada mecánica — antes de generarlo tú mismo.

- Skill: `zahirinatzuke/delegacion-local` (Agent Skill)
- Install (CLI): `npx skillmds@latest add zahirinatzuke/delegacion-local`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zahirinatzuke/delegacion-local/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Design & Media
- Author: ZahiriNatZuke (https://skillmd.com/u/zahirinatzuke)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/zahirinatzuke/delegacion-local

---


# Delegación a modelos locales (MCP `local-delegate`)

Tienes un servidor MCP (`local-delegate`) que expone modelos corriendo en una GPU propia
(vía llama-swap, Ollama, LM Studio o vLLM) como herramientas **texto/imagen→texto**. Delegar
a ellas **conserva cuota de la suscripción**: la generación verbosa y los inputs grandes (o
una imagen entera) se quedan fuera de tu contexto.

## Regla de oro

> **¿Puedo describir el paso en UNA frase con un formato de salida explícito?**
> → **sí** → usa una tool `local_*`.
> → **no** (necesita razonamiento, arquitectura, criterio, multi-fuente) → **hazlo tú**.

## El mayor ahorro: `path` en vez de `text`

Para archivos/documentos grandes, pasa **`path`** (no leas el archivo tú primero). Las
tools que aceptan `path` **leen el archivo del lado del servidor**, así el contenido
completo **nunca entra a tu contexto** — solo recibes el resultado corto.

## El coste de no delegar

Leer un archivo de 100 KB con `Read` cuesta ≈ 25 000 tokens de tu contexto. La misma
tarea con `local_summarize(path=…)` cuesta ≈ 200 tokens (solo el resumen que vuelve).
Esa diferencia es la que se pierde cada vez que se lee un archivo grande a mano en vez
de delegarlo.

## Catálogo de tools

| Tool | Cuándo | Args clave | Devuelve |
|---|---|---|---|
| `local_summarize` | Resumir texto o archivo largo | `path` **o** `text`, `max_words` | Resumen (prosa) |
| `local_classify` | Etiquetar en categorías fijas | `text`, `labels[]` | Una etiqueta |
| `local_extract` | Sacar campos estructurados | `fields[]`, `path` **o** `text` | JSON |
| `local_boilerplate` | Generar código repetitivo | `spec`, `language`, `target` (ruta absoluta), `overwrite?` | Recibo: ruta y tamaño (el código va al archivo, no a tu contexto) |
| `local_delegate` | Escape genérico texto→texto | `task`, `input`, `output_format`, `model?`, `chunk?` | Texto |
| `local_lint_summary` | Resumir salida de lint/tests/CI | `path` **o** `text`, `max_words` | Resumen agrupado por archivo |
| `local_commit_msg` | Mensaje de commit desde un diff | `diff` **o** `path`, `style?` | Mensaje (revísalo siempre) |
| `local_translate` | Traducir texto o archivo | `target_lang`, `text` **o** `path` | Traducción |
| `local_explain_code` | Explicar qué hace un código | `code` **o** `path`, `question?` | Explicación (prosa) |
| `local_describe_image` | Describir una imagen o responder una pregunta sobre ella | `path`, `question?` | Descripción (prosa) |
| `local_status` | Diagnóstico de solo lectura | — | Backend/catálogo/log/VRAM |

Los ids de modelos del catálogo (mecánico/largo/código/rápido/visión) son configurables por
env y pueden cambiar entre máquinas: consulta `local_status` para ver el catálogo
activo en vez de asumir nombres fijos. `local_describe_image` es **solo imagen→texto**
(describir, leer texto visible, responder una pregunta puntual) — nunca genera ni edita
imágenes.

## Documentos largos

`local_translate` (y `local_delegate` con entradas largas) parten el texto por límites
naturales —headers Markdown, párrafos— y procesan cada trozo en su propia llamada,
concatenando las salidas en orden. Un documento de 20 000+ caracteres vuelve **completo**,
sin el aviso `[salida truncada]`. Esa estrategia sirve para transformar todo el texto
(traducir, reescribir, reformatear); para tareas de reducción sobre el conjunto (contar,
elegir el máximo, un único resumen global) usa `local_summarize` o `chunk='off'`.

## Cuándo SÍ delegar (ejemplos)
- Resumir un log/archivo grande para saber qué contiene → `local_summarize(path=…)`.
- Clasificar un issue/mensaje en bug/feature/pregunta → `local_classify`.
- Extraer `{nombre, error, endpoint}` de un texto → `local_extract`.
- Generar el esqueleto de un CLI/argparse, un dataclass, un parser → `local_boilerplate(target=…)`,
  que lo deja escrito en el archivo en vez de devolverte el código.
- Resumir la salida de un lint/test/build largo volcada a fichero → `local_lint_summary(path=…)`.
- Redactar el mensaje de commit a partir de un `git diff` → `local_commit_msg`.
- Traducir un texto o archivo → `local_translate`.
- Explicar qué hace un archivo de código antes de tocarlo → `local_explain_code(path=…)`.
- Describir una captura de pantalla o leer texto de una imagen → `local_describe_image(path=…)`.
- Verificar que el backend local está vivo antes de delegar en masa, o diagnosticar un
  fallo → `local_status`.
- Primera pasada mecánica antes de tu revisión fina.

## Cuándo NO delegar
- Diseño/arquitectura, decisiones de trade-offs, refactors amplios.
- Research multi-fuente o razonamiento encadenado.
- Cualquier cosa donde la calidad del resultado dependa de criterio, no de formato.
- Código crítico o sutil: úsalo como borrador y **revísalo siempre**.

## Notas
- Las tools devuelven **solo texto**; el modelo local no usa tool-calling.
- Si una tool devuelve `[local-delegate error] …`, es que el backend no respondió;
  cae de vuelta a hacerlo tú y avisa. Usa `local_status` para diagnosticar por qué.
- La primera llamada a un modelo puede tardar unos segundos (cold-load del swap).
- El dashboard (`http://127.0.0.1:9393`) muestra el ahorro acumulado, las delegaciones en
  curso y si el cómputo corrió en el backend local o en uno remoto.

