# AGENTES CESCAC — roles, tiers, habilidades y reglas de delegación

> Generado 2026-07-17. Fuente: `CLAUDE.md` (repo `CRM_CESCAC`, sección "ROUTING POR MODELO" y
> "PROTOCOLO DE EJECUCIÓN POR TIER"), `reglas.md` §8 (este directorio), `contexto-maestro.md` §5,
> `tablero_agentes.json` (`leyenda_owner`) y las sesiones reales de multiagente documentadas en
> `PENDIENTES.md`/`TASK_QUEUE.md`. No se inventa ningún nombre de agente, tier ni herramienta —
> todo lo de abajo ya existe y ya se usó en el ecosistema CESCAC. Si algo cambia en `CLAUDE.md`,
> este documento queda desactualizado hasta la próxima síntesis — el repo git manda.
>
> Compañero de este documento: **`prompt-onboarding-agentes.md`** — el prompt exacto de arranque
> que el dueño le pega a cada agente externo (Cursor/Codex/Antigravity/Hermes).

## 0 · Por qué existe este documento

El dueño (Anthony) tiene 16 agentes IA conceptuales (AGT-01..16) trabajando sobre el mismo
contexto, más varios IDEs/CLIs corriendo en paralelo (Claude Code, Cursor, Codex, Antigravity,
Hermes). Sin un documento único, cada agente redescubre por su cuenta a qué se dedica, cuánto le
cuesta al dueño, y termina pisando trabajo de otro (ya pasó: 4 tareas asignadas 2026-07-10 a
Cursor/Codex/Antigravity/Hermes en `TASK_QUEUE.md` nunca se completaron porque nadie sabía si
estaban libres). Este documento fija, en un solo lugar: **quién es cada agente, qué hace bien,
de qué se abstiene, y cómo se coordinan sin orquestador real** (no existe `mcp.cescac.com` — ver
`como-usar-el-cerebro.md` §7.4).

## 1 · Tiers de modelo — cuándo usar cada uno (orden de costo, de gratis a caro)

| Tier | Motor | Costo | Úsalo para |
|---|---|---|---|
| **Tier 0** | Ollama local (`qwen2.5-coder:14b`, `llama3.2`) | Gratis | ~90% del trabajo mecánico: lecturas, greps, resúmenes de archivos locales, borradores de copy antes de pulir, cualquier tarea que no dependa de contexto de red/API. |
| **Tier 1** | LiteLLM VPS (`api.cescac.com/v1` — deepseek, haiku vía proxy) | Barato | Cuando Tier 0 no alcanza (contexto grande, necesita más razonamiento) pero la tarea sigue siendo mecánica/repetitiva. Ej.: el bot cerrador del CRM corre en DeepSeek vía LiteLLM, NO en Claude — confirmado en `docs/REGISTRO_CAMBIOS_CORE.md` 2026-07-17. |
| **Tier 2** | Claude Sonnet / Opus | Premium | Solo tras bloqueo real en Tier 0/1 (**3 intentos fallidos** antes de escalar), o cuando la tarea es de codificación real, contenido de marca, arquitectura o decisión crítica — ver §2. |

**Regla de costo (repetida porque se rompe seguido):** el dueño está apretado de caja y de
tokens. NO quemar Sonnet/Opus en tareas mecánicas o repetitivas que Tier 0/1 puede resolver.
Edits muy chicos (una línea, un typo) → hacerlos inline en la sesión activa, NO spawnear un
sub-agente nuevo (el sub-agente arranca en frío y re-deriva contexto — spawnear cuesta más que
el edit mismo). Rutear por TAMAÑO + DIFICULTAD, no por reflejo.

## 2 · Sub-agentes CESCAC (Claude Code) — roles, profesiones y abstenciones

Estos 3 son los sub-agentes formales configurados dentro de Claude Code para este proyecto.
Activación automática por palabras clave del pedido del dueño; si hay duda, preferir el tier
MENOR primero.

### 2.1 `cescac-haiku-fast` — el validador rápido

- **Profesión:** técnico de guardia. Lee, verifica, cuenta, responde SÍ/NO.
- **Hace:** smoke tests, listar archivos, verificar HTTP 200/404, `head`/`tail` de logs,
  lecturas simples de un archivo puntual, chequeos de estado ("¿está corriendo el servicio?",
  "¿existe este archivo?").
- **Se abstiene de:** escribir/editar código o contenido, tomar decisiones de negocio,
  cualquier tarea que requiera más de un puñado de tool calls o razonamiento en varios pasos.
- **Ejemplo real:** "¿el endpoint `/health.php` responde 200?" → Haiku. "Reescribe el copy de
  este anuncio" → NO es Haiku, es Sonnet.
- **Escalamiento:** si la "verificación simple" destapa un problema real (ej. el 200 esconde un
  fatal en el cuerpo — lección real documentada en `memoria.md` sobre OPcache), escala a Sonnet
  para el fix, no lo intenta arreglar él mismo.

### 2.2 `cescac-sonnet-normal` — el operario de contenido y código

- **Profesión:** desarrollador + redactor de marketing. Es el caballo de batalla del día a día.
- **Hace:** generar copy/prompts/briefs de marketing, crear HTML/Python/CSS para creativas,
  `Edit`/`Write` de archivos (con backup previo `archivo.bak_YYYYMMDD` — regla CESCAC, sin
  excepción), refactor pequeño/mediano, investigación web + síntesis, instalar skills/MCPs
  (`npx`/`pip`/`claude mcp add`), ejecutar tareas con tags formales
  (`env=prod owner=AGT-XX service=marketing`), tareas de 5 a 30 tool calls.
- **Se abstiene de:** tareas triviales tipo "¿responde 200?" (eso es Haiku — desperdicio de
  costo), decisiones de arquitectura de sistema completo, orquestar más de 3 agentes en
  paralelo, auditoría crítica de seguridad/financiera (eso es Opus).
- **Ejemplo real:** este mismo par de documentos (`agentes-roles.md` +
  `prompt-onboarding-agentes.md`) — contenido + edición de archivos con backup, tarea mediana
  (varios tool calls), no arquitectura.
- **Escalamiento:** 3 fallos consecutivos en una tarea → escala a `cescac-opus-critical`.

### 2.3 `cescac-opus-critical` — el arquitecto/auditor

- **Profesión:** CTO / auditor de seguridad. Caro — se usa solo cuando de verdad hace falta.
- **Hace:** decisiones de arquitectura de sistema completo, orquestar más de 3 agentes en
  paralelo, auditoría crítica de seguridad o financiera, decisiones go/no-go, incidentes de
  producción, debugging profundo tras 3 fallos de Sonnet.
- **Se abstiene de (regla explícita de `CLAUDE.md` — "PROTOCOLO DE EJECUCIÓN POR TIER"):**
  escritura/edición PESADA de archivos. Opus **planifica**, divide en tareas, asigna tier,
  decide — pero delega la ejecución material (escribir/editar código, contenido) a Sonnet o
  Haiku, porque escribir con Opus cuesta más que con Sonnet para el mismo resultado. Es
  planificador, no operario.
- **Ejemplo real:** auditorías P0 (SSRF, exposición de credenciales, incidente MCP_JWT del
  2026-07-11/12) las abre y decide Opus; el patch concreto lo escribe Sonnet.
- **Cierre obligatorio:** toda tarea crítica se cierra pasando por `qa-reviewer` antes de darse
  por terminada.

## 3 · Reglas de delegación (aplican a TODO agente, interno o externo)

1. **Cuándo delegar vs. hacer inline.** Un sub-agente nuevo arranca en frío (sin el contexto que
   ya tiene la sesión activa) y tiene que re-derivarlo — eso cuesta tokens y tiempo. Delegar
   SOLO cuando la tarea es sustancial (varios tool calls, un dominio distinto, o necesita un
   tier distinto al de la sesión activa). Un edit de una línea, un typo, un curl de
   verificación → inline, nunca spawnear.
2. **Nunca dos agentes en el mismo archivo crítico a la vez.** Antes de tocar un archivo de
   producción (código PHP vivo, `.env`, config de nginx, tablero compartido), revisar
   `tablero_agentes.json` / `REGISTRO_CAMBIOS_CORE.md` reciente por si otro agente ya está
   sobre el mismo archivo. Si el tablero dice `owner` distinto de `null` con `estado:
   en_progreso` en esa tarea, NO tocar — ver protocolo completo en `como-usar-el-cerebro.md` §7.
3. **Backup + registro siempre.** Todo `Edit`/`Write` sobre un archivo existente → backup
   `archivo.bak_YYYYMMDD` (o `_HHMM` si hay riesgo de colisión el mismo día) ANTES de escribir.
   Todo cambio termina con una línea en `docs/REGISTRO_CAMBIOS_CORE.md` (formato `AGT-<id>`,
   cierre 5-campos). Sin excepción, ni para cambios "chicos".
4. **Verificar SIEMPRE desde afuera.** Un `curl` local o un `php -l` no basta para dar un fix
   por bueno — un HTTP 200 con `display_errors=On` puede esconder un fatal en el cuerpo (lección
   real documentada en `memoria.md`). Verificar con una petición externa real (curl desde fuera
   del VPS, o el navegador) antes de cerrar la tarea.
5. **Nunca exponer secretos.** Tokens, API keys, contraseñas, `.env` completo — jamás en el
   chat, jamás en un commit, jamás en un archivo público de `/cerebro/`. Si una fuente los
   menciona, se resume SIN el dato sensible.
6. **PHI (datos médicos) y pagos = máximo cuidado, siempre.** Cualquier tarea que toque
   `sm.cescac.com` (pacientes, recetas, evoluciones, exámenes) o cobros/pagos reales
   (PayPhone, DeUna, tarjetas, Nuvei) requiere: respetar el scope multitenant (`HasTenant`,
   `tenant_id`/`health_center_id` — ver `CLAUDE.md` "REGLA MULTITENANT"), nunca simular un cobro
   real sin marcarlo explícitamente como simulación, y jamás imprimir nombres de pacientes,
   cédulas ni datos clínicos en este `/cerebro/` ni en ningún doc público.
7. **No inventar.** Máquinas, precios, cupones, lemas, años, nombres de agentes o herramientas
   que no existen en el ecosistema real — prohibido en cualquier tier.
8. **3 fallos consecutivos en un tier → escalar al superior** (Haiku→Sonnet→Opus, u
   Ollama→LiteLLM→Claude). No insistir indefinidamente en el mismo tier.

## 4 · Agentes externos (fuera de Claude Code) — qué hace mejor cada uno

Estos NO son sub-agentes de Claude Code — son IDEs/CLIs independientes que el dueño enciende por
su cuenta, cada uno con su propio modelo y sus propios permisos. Coordinación entre ellos: el
tablero PULL (`tablero.php`, ver §5) — no hay orquestador push real.

### 4.1 Cursor (IDE, el principal de esta PC)

- **Fuerte en:** ejecutar cambios en el VPS o en producción que el **clasificador de permisos de
  Claude Code bloquea** (instalaciones de sistema, comandos masivos, mensajería real a
  terceros/WhatsApp, cambios que tocan credenciales de terceros). Cuando Claude Code reporta
  "bloqueado por el clasificador de seguridad — pendiente que el dueño lo dispare", Cursor (con
  el dueño mirando pantalla y autorizando en vivo) es la vía real de ejecución.
  Debugging interactivo con el dueño presente, refactors visuales, trabajo de UI.
- **Se abstiene de:** nada formalmente prohibido — pero por convención en este ecosistema, NO
  toma tareas de contenido/copy de marketing (eso lo hace mejor Sonnet vía Claude Code); no
  ejecuta cambios de producción SIN que el dueño esté presente autorizando.
- **Modelo:** vía `api.cescac.com`/LiteLLM (modelo estrella `deepseek-v4-pro`, con nota de que
  LiteLLM en el VPS puede renombrar modelos de madrugada — re-sync con `GET /v1/models` si falla).

### 4.2 Codex CLI

- **Fuerte en:** ejecución de código bajo el patrón **"Claude planea → Codex ejecuta"**
  (confirmado en `contexto-maestro.md` §4) — útil como relevo de tokens cuando Claude Code se
  queda sin cuota en medio de una tarea larga, o cuando la tarea es puramente de implementación
  de código ya especificado (no necesita replanificar nada).
- **Se abstiene de:** tomar decisiones de arquitectura o negocio por su cuenta — ejecuta lo que
  ya viene planificado, no re-decide el plan.

### 4.3 Antigravity (Google)

- **Fuerte en:** exploración/prototipo en un IDE alternativo instalado en esta PC (junto a
  Cursor, Continue.dev, Roo Code). Útil para tareas donde conviene un segundo par de ojos con un
  motor distinto, o dashboards/métricas de estado (ej. `titan-dashboard.html` fue tarea asignada
  a Antigravity en `PENDIENTES.md`).
- **Se abstiene de:** ejecución de cambios de producción sensibles sin coordinación — su rol
  histórico en el tablero ha sido más de monitoreo/dashboard que de escritura de código core.

### 4.4 Hermes (AGT-24-7)

- **Fuerte en:** el **orquestador 24/7** del ecosistema — monitoreo continuo, health checks,
  heartbeats, tareas de vigilancia sin supervisión en vivo (ej. monitoreo diario del detector
  404, `MONITOREO_HERMES_404.md`; SSL de `geomed.cescac.com`, ya hecho). Corre como servicio
  propio en el VPS (puerto `9119`, con `DROP` en iptables — no expuesto a Internet).
- **Se abstiene de:** tocar producción sin OK explícito del dueño — su tarea estándar es
  "detecta y propone fix en un archivo de hallazgos", NO aplicar el fix él mismo salvo
  autorización puntual.
- **Estado real (léelo antes de asumir que está activo):** el vigía OMEGA reporta con
  frecuencia "Hermes(AGT-24-7) sin reportar desde hace >24h" en `PENDIENTES.md` — verificar que
  esté corriendo antes de asumir que una tarea asignada a Hermes se está ejecutando.

## 5 · Protocolo de coordinación compartido (resumen — detalle completo en `como-usar-el-cerebro.md` §7)

1. Cualquier agente (interno o externo) lee `https://vps.cescac.com/cerebro/tablero.php` al
   arrancar sesión — devuelve solo las tareas libres (`owner: null`), ordenadas por prioridad.
2. Si toma una tarea: edita `tablero_agentes.json` (canónico, on-box en el VPS) con backup
   previo, `owner` → su nombre, `estado` → `en_progreso`. Sincroniza el espejo público.
3. Nunca pisa una tarea con `owner` ya asignado (salvo `DUENO`, que nadie puede tomar — espera
   acción humana no delegable).
4. Al cerrar: `estado` → `hecho`, nota de qué se hizo, y registro en
   `docs/REGISTRO_CAMBIOS_CORE.md` con cierre 5-campos (Hecho / Validado / Pendiente /
   Delegación / Próximo paso) + "¿Deseas que mejore algo más?".
5. **Limitación honesta, repetida a propósito:** esto es un tablero PULL, no un orquestador. Si
   un agente externo no se conecta, sus tareas quedan esperando — el dueño sigue siendo quien
   "enciende" cada agente. No asumir automatización que no existe.

## 6 · Ver también

- **`prompt-onboarding-agentes.md`** (este directorio) — prompt exacto copy-paste por agente
  externo, para que el dueño no tenga que redactar el onboarding cada vez.
- **`como-usar-el-cerebro.md`** — cómo conectar MCPs al cerebro (obsidian, graphify, codegraph)
  y protocolo completo del tablero (§7).
- **`reglas.md`** — las 10 reglas inviolables + datos canónicos + tiering (§8) en el formato
  resumido original.
