1. Qué es Claude Code y por qué le sirve a una agencia
Según su documentación, Claude Code «lee tu código, edita archivos, corre comandos y se integra con tus herramientas», y está disponible en la terminal, en extensiones de IDE, en una app de escritorio y en el navegador; los mismos archivos CLAUDE.md, settings y servidores MCP del repositorio funcionan en todas las superficies (Claude Code · Overview, verificado el 11-09-2026). Que esté pensado para programadores no lo descalifica: una agencia también tiene procesos repetibles, datos por cliente y reglas que hoy viven en la cabeza de dos personas. Un repositorio es la forma más barata y auditable de escribirlos.
Cuatro piezas hacen el trabajo, y todas son archivos de texto versionados:
CLAUDE.md: las instrucciones que se leen en cada sesión. Vive en./CLAUDE.mdo./.claude/CLAUDE.md; se carga al inicio de toda sesión; la doc recomienda menos de 200 líneas y mover lo específico a reglas por ruta en.claude/rules/o a skills (Claude Code · CLAUDE.md y memoria, 11-09-2026). Para una agencia: qué es el repo, qué no hace nunca el agente, dónde está cada cosa.- Skills: playbooks versionados. Un skill es un archivo
SKILL.mdcon frontmatter en.claude/skills/<nombre>/; se invoca con/nombreo lo carga el modelo cuando sudescriptionencaja con la conversación; condisable-model-invocation: truesolo lo dispara una persona (Claude Code · Skills, 11-09-2026). Es el reemplazo del «documento de proceso» que nadie abre: el proceso se ejecuta. - Subagentes: ayudantes con contexto y permisos propios. Archivos Markdown en
.claude/agents/con las herramientas que pueden usar y el modelo que corren (Claude Code · Subagentes, 11-09-2026). Sección 3. - Permisos y hooks: lo que el modelo no decide. Reglas
allow/denyensettings.jsony comandos que corren antes o después de cada herramienta (Claude Code · Permisos; Claude Code · Hooks, 11-09-2026). Es la capa que convierte una lista de buenas intenciones en un harness.
La propia documentación marca la diferencia que ordena esta guía: CLAUDE.md y la memoria automática son «contexto, no configuración aplicada»; para bloquear una acción sin importar lo que decida el modelo hay que usar un hook PreToolUse o una regla de permisos (Claude Code · CLAUDE.md y memoria, 11-09-2026). Todo lo que en esta guía dice «no se automatiza» va en esa segunda capa.
2. Estructura de repo recomendada para una agencia
Es la que usamos, con los nombres cambiados: un directorio de estado por cliente, un skill por proceso, y políticas en Markdown que el agente lee antes de actuar.
agencia/
├── CLAUDE.md # qué es este repo, qué NUNCA hace el agente, dónde está cada cosa
├── .claude/
│ ├── settings.json # permisos allow/deny compartidos por el equipo (se commitea)
│ ├── rules/ # reglas por ruta: clientes/**, pauta/**, reportes/**
│ ├── skills/ # un playbook por proceso, versionado
│ │ ├── reporte-mensual/SKILL.md
│ │ ├── auditoria-seo/SKILL.md
│ │ └── brief-de-pauta/SKILL.md
│ └── agents/ # subagentes con permisos acotados
│ ├── analista-gsc.md
│ ├── redactor-cliente.md
│ └── verificador-cifras.md
├── .mcp.json # conectores del proyecto (GA4, Meta Ads); secretos por ${VAR}
├── ops/
│ ├── policies.md # el contrato: qué hace la máquina sola y qué aprueba una persona
│ ├── ingest-gsc.mjs # ingesta diaria por API (Search Console no tiene MCP oficial)
│ └── state/ # la memoria operativa, un directorio por cliente
│ ├── acme/
│ │ ├── log.md # qué se hizo, qué falló, qué decidió el humano
│ │ ├── gsc/2026-09-11.json
│ │ ├── ga4/2026-09-11.json
│ │ └── reporte-2026-08.md
│ └── globex/
└── clientes/
├── acme/CLAUDE.md # tono, métricas que importan, palabras prohibidas, revisor
└── globex/CLAUDE.md Tres decisiones explican el árbol:
ops/policies.mdes el contrato. Qué puede hacer la máquina sola (leer datos, redactar borradores, actualizar el log) y qué necesita aprobación (enviar, publicar, gastar, cambiar el contrato mismo). Cada skill empieza con «leéops/policies.md». En nuestro portafolio ese archivo lo edita solo un humano, y cambiar una línea cambia el comportamiento de todas las sesiones siguientes: es la palanca de control más barata que existe.ops/state/<cliente>/es la memoria. Cada ingesta deja un archivo fechado que no se borra (gsc/2026-09-11.json), y cada sesión escribe enlog.mdqué hizo, qué falló y qué decidió el humano. Como cada sesión de Claude Code empieza con el contexto vacío (Claude Code · CLAUDE.md y memoria, 11-09-2026), la continuidad no está en el chat: está en esos archivos. Un agente que lee el log de los últimos treinta días antes de tocar la cuenta de un cliente se comporta distinto que uno que empieza de cero.clientes/<cliente>/CLAUDE.mdes la configuración por cliente. Tono, métricas que le importan, palabras que no quiere leer, quién revisa. La doc carga losCLAUDE.mdde subdirectorios cuando el agente trabaja con archivos de esa carpeta (Claude Code · CLAUDE.md y memoria, 11-09-2026), así que las reglas de Acme no contaminan el trabajo para Globex.
Los permisos compartidos van en .claude/settings.json, que se commitea para que todo el equipo tenga las mismas reglas; cada persona puede ampliar las suyas en .claude/settings.local.json, que no se comparte (Claude Code · Settings, 11-09-2026). Un ejemplo mínimo para una agencia:
{
"permissions": {
"allow": [
"Bash(pnpm test *)",
"Bash(node ops/ingest-gsc.mjs *)",
"Bash(git commit *)",
"mcp__ga4__run_report",
"mcp__ga4__get_account_summaries"
],
"deny": [
"Bash(git push *)",
"Read(./.env)",
"Read(./secrets/**)",
"WebFetch(domain:mail.google.com)",
"mcp__meta-ads__*"
]
}
} La sintaxis es Herramienta(patrón): Bash(git push *) bloquea cualquier push, Read(./.env) impide leer el archivo de secretos, WebFetch(domain:host) acota dominios y mcp__servidor__herramienta nombra herramientas MCP; una regla deny gana sobre cualquier allow, y un deny con el nombre pelado de la herramienta la saca del contexto del modelo por completo (Claude Code · Permisos, 11-09-2026). El deny de mcp__meta-ads__* de arriba es deliberado y lo explicamos en la sección 4.
3. Subagentes por cliente y por tarea, con permisos acotados
Un subagente es «un asistente especializado con su propia ventana de contexto, su propio system prompt, restricciones de herramientas y permisos independientes»; hace el trabajo largo (leer veinte archivos, correr pruebas) y devuelve un resumen, así el hilo principal no se llena (Claude Code · Subagentes, 11-09-2026). Para una agencia hay dos usos:
- Por tarea: un analista que solo lee snapshots, un redactor que solo escribe borradores, un verificador que solo compara cifras. La separación no es estética: un redactor que no tiene la herramienta de escribir archivos no puede «publicar sin querer».
- Por cliente, en paralelo: el día 1 del mes, un orquestador lanza el mismo flujo de reporte para doce clientes, cada uno en su contexto, con su
CLAUDE.md. La doc fija un límite por defecto de 20 subagentes concurrentes (CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) y hasta 3 niveles de anidamiento (Claude Code · Subagentes, 11-09-2026). Doce clientes entran; cincuenta, no de una vez.
Un subagente genérico de análisis de Search Console, tal como iría en .claude/agents/analista-gsc.md:
---
name: analista-gsc
description: Lee los snapshots de Search Console de un cliente y devuelve hallazgos con cifras citadas. Úsalo para el reporte mensual y la auditoría SEO.
tools: Read, Grep, Glob
model: sonnet
maxTurns: 25
---
Sos analista SEO. Trabajás SOLO sobre los archivos de ops/state/<cliente>/gsc/.
Cada hallazgo lleva la cifra exacta y el archivo del que salió.
No inventes datos que no estén en los snapshots. Si falta un dato, decilo.
Devolvé: 5 hallazgos máximo, ordenados por impacto, con la query o URL afectada. Los campos que importan: tools es una lista blanca (sin Write ni Edit, este agente no puede tocar archivos); model: sonnet baja el costo para una tarea de lectura, y la propia doc de costos recomienda haiku para subagentes simples (Claude Code · Costos, 11-09-2026); maxTurns corta un agente que se pierde. También existe disallowedTools para el caso inverso (hereda todo menos lo que se prohíbe) y permissionMode por subagente (Claude Code · Subagentes, 11-09-2026).
Una advertencia de casa: los subagentes consumen el uso de la cuenta como cualquier sesión. El 10-09-2026, una corrida de investigación de nuestro portafolio lanzó once subagentes; los últimos cuatro fallaron por el límite de uso de la cuenta y el trabajo se terminó en la sesión principal. La lección quedó en el log: para lotes grandes, por tandas y con model: sonnet o haiku en los que solo leen.
4. MCP: conectar Search Console, GA4 y Meta Ads
El Model Context Protocol (MCP) es un estándar abierto para conectar modelos de IA con datos y herramientas externas (Search Console, analytics, CRMs) mediante servidores reutilizables (Model Context Protocol, documentación oficial). En Claude Code, un servidor se agrega con claude mcp add --transport http|stdio, y el alcance project lo guarda en un .mcp.json que se versiona con el repo; los secretos se escriben como ${VAR} y se expanden desde el entorno, de modo que ninguna clave queda en el archivo (Claude Code · MCP, 11-09-2026). Lo que existe hoy para las tres plataformas que toda agencia necesita:
| Plataforma | Servidor MCP oficial | Qué permite | Cómo lo conectamos |
|---|---|---|---|
| Google Analytics 4 | Sí. googleanalytics/google-analytics-mcp, publicado por el equipo de Google Analytics, Apache-2.0, etiquetado Experimental (11-09-2026). | Solo lectura (scope analytics.readonly): run_report, run_realtime_report, run_funnel_report, get_account_summaries. | Servidor local (stdio) con pipx run analytics-mcp; credenciales por Application Default Credentials de gcloud, con una cuenta de servicio de la agencia agregada a cada propiedad del cliente. |
| Meta Ads | Sí. Servidor alojado por Meta en https://mcp.facebook.com/ads (Meta for Developers · Ads MCP Server, 11-09-2026). | Reportes y también creación y edición de campañas, conjuntos y anuncios, catálogos, pruebas A/B. | Servidor remoto (http); la autenticación sigue la guía «Get started» de Meta. Como trae herramientas de escritura, en settings.json se permiten por nombre solo las de lectura y se niega el resto (sección 6). |
| Search Console | No encontramos uno oficial al 11-09-2026: la referencia de la API no menciona MCP y Google no publica un servidor propio. Existen servidores de la comunidad; no los recomendamos para datos de clientes sin auditar el código. | La API oficial expone searchanalytics.query, sitemaps, sites y urlInspection. | Script propio contra la API oficial que corre una vez al día y deja un snapshot fechado en ops/state/<cliente>/gsc/. El agente lee el archivo, no la API. Es lo que hace nuestro portafolio (abajo). |
Un .mcp.json de proyecto con los dos servidores que sí existen:
{
"mcpServers": {
"ga4": {
"type": "stdio",
"command": "pipx",
"args": ["run", "analytics-mcp"],
"env": { "GOOGLE_APPLICATION_CREDENTIALS": "${GA4_CREDENCIALES}" }
},
"meta-ads": {
"type": "http",
"url": "https://mcp.facebook.com/ads"
}
}
} Por qué preferimos snapshots a llamadas en vivo, incluso donde hay MCP. Tres razones operativas. Primera: un archivo fechado es reproducible; una llamada a la API devuelve algo distinto mañana, y el reporte que aprobó el cliente tiene que poder regenerarse igual. Segunda: la doc de Claude Code avisa cuando una herramienta MCP devuelve más de 10.000 tokens y corta en 25.000 (Claude Code · MCP, 11-09-2026); un año de datos de GA4 por MCP no entra, y un script que agrega en código sí. Tercera: la misma doc de costos dice que las herramientas de línea de comandos «siguen siendo más eficientes en contexto que los servidores MCP» (Claude Code · Costos, 11-09-2026). MCP queda para lo exploratorio («¿qué pasó ayer con el tráfico de Acme?»); el flujo mensual se alimenta de archivos.
ops/ingest-gsc.mjs, que se autentica con una cuenta de servicio de Google (JWT firmado, scope webmasters), consulta searchanalytics.query y sitemaps para cada dominio y escribe ops/state/<iniciativa>/gsc/AAAA-MM-DD.json con totales de 7 y 28 días, serie diaria, top de consultas y páginas, y una señal de indexación (páginas enviadas por sitemap contra páginas con impresiones). La sesión diaria de Claude Code lee ese archivo y aplica la política: si el ratio de indexación está bajo, el trabajo del día es descubrimiento, no volumen. El detalle está en el caso Aurora.
5. Crons y routines: qué corre a diario, por semana y por mes
La cadencia que usamos, traducida a una agencia. Cada fila es un skill distinto, con distinto poder de decisión, y ninguno puede saltar de nivel:
| Cadencia | Qué hace la máquina | Qué queda para una persona |
|---|---|---|
| Diaria (antes del horario de oficina) | Verifica que las ingestas del día llegaron (GA4, Search Console, pauta); si una falló, la repara antes de cualquier otra cosa. Detecta anomalías contra el histórico (un CPA que salta, un canal en cero, una caída de indexación) y las deja marcadas en el log del cliente. Avanza la cola de contenido aprobada, una a tres piezas, como borradores. | Leer las anomalías marcadas y decidir si se le avisa al cliente. Aprobar o rechazar borradores. |
| Semanal (lunes) | Scorecard por cliente contra los objetivos del trimestre; análisis de consultas de Search Console (qué asoma, qué tiene impresiones y CTR bajo); borrador del resumen semanal de pauta con anomalías; propuesta de 1 a 3 experimentos como pull request con hipótesis y métrica. | Elegir qué experimento entra. Enviar el resumen al cliente, con su nombre. |
| Mensual (día 1) | Borrador del reporte de cada cliente con la compuerta de cifras (guía); auditoría SEO de fondo; propuesta de decisiones (reasignar presupuesto, congelar un canal, renegociar alcance) con la evidencia. | Todas las decisiones. El reporte se envía firmado por el account manager. |
Un skill genérico de reporte mensual, tal como iría en .claude/skills/reporte-mensual/SKILL.md. Fijate en tres cosas: solo lo dispara una persona (disable-model-invocation: true), las únicas órdenes de shell que puede correr son los scripts del reporte (allowed-tools), y nunca calcula ni envía:
---
name: reporte-mensual
description: Arma el borrador del reporte mensual de un cliente a partir de los snapshots de GA4, Search Console y pauta. Nunca lo envía.
disable-model-invocation: true
allowed-tools: Read Grep Glob Bash(node ops/reporte/*)
---
# Reporte mensual — $ARGUMENTS
1. Leé `clientes/$ARGUMENTS/CLAUDE.md` (tono, métricas, palabras prohibidas) y
`ops/policies.md` (qué no se promete a un cliente).
2. Corré `node ops/reporte/consolidar.mjs --cliente $ARGUMENTS --mes anterior`:
deja la tabla de cifras en `ops/state/$ARGUMENTS/reporte-<mes>.json`.
Vos NO calculás números; redactás sobre esa tabla.
3. Redactá el borrador en español (resumen ejecutivo, por canal, próximos pasos)
citando SOLO cifras de la tabla. Guardalo en `ops/state/$ARGUMENTS/reporte-<mes>.md`.
4. Corré `node ops/reporte/verificar-cifras.mjs --cliente $ARGUMENTS --mes anterior`.
Si rechaza una cifra, corregí el párrafo señalado y volvé a correrlo. A la
segunda falla, parás y anotás el problema en `ops/state/$ARGUMENTS/log.md`.
5. Anotá en el log: fecha, tabla usada, rechazos de la compuerta, y que el
borrador ESPERA revisión del account manager. No lo envíes ni lo publiques. Para que corra sola, hay tres opciones documentadas y elegís por dónde querés que viva la infraestructura:
- Routines (research preview): un prompt, uno o más repositorios y conectores guardados en tu cuenta que corren en la nube de Anthropic con disparador por horario, por API o por evento de GitHub; disponibles en Pro, Max, Team y Enterprise; se crean en
claude.ai/code/routineso con/schedule; intervalo mínimo de una hora; consumen el uso de la suscripción y tienen un tope diario de corridas (Claude Code · Routines, 11-09-2026). Dos detalles que a una agencia le importan: corren sin prompts de permiso, así que el alcance lo dan el repo, el entorno y los conectores que incluyas; y los servidores que agregaste conclaude mcp adden tu máquina no aparecen como conectores, hay que declararlos en el.mcp.jsondel repo o como conector de claude.ai. Es lo que usamos para nuestros tres loops. - GitHub Actions:
anthropics/claude-code-action@v1con unpromptcorre en modo automatización sobre cualquier evento, incluido unschedulecon cron; se autentica con el secretoANTHROPIC_API_KEYo con un token de suscripción generado conclaude setup-token;claude_argsadmite--max-turnsy--allowedTools(Claude Code · GitHub Actions, 11-09-2026). La misma doc aclara que el token OAuth queda atado a la suscripción de la persona que lo generó: para un secreto compartido de la organización, conviene la clave de API. Así queda el cron mensual:
name: Reportes mensuales
on:
schedule:
- cron: "0 12 1 * *" # día 1 de cada mes, 12:00 UTC
workflow_dispatch:
jobs:
reportes:
runs-on: ubuntu-latest
permissions: { contents: write, pull-requests: write, id-token: write }
steps:
- uses: actions/checkout@v6
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "/reporte-mensual acme"
claude_args: "--max-turns 40" - Tu propio cron con
claude -p: el modo no interactivo acepta el prompt por argumento,--allowedToolspara pre-aprobar herramientas,--permission-mode dontAskpara negar todo lo no aprobado,--barepara no cargar hooks ni MCP de la máquina, y--output-format jsondevuelvetotal_cost_usdpor corrida (Claude Code · Ejecución programática (claude -p), 11-09-2026). Es la opción cuando ya tenés un servidor y querés el costo por cliente en tu propia base de datos. Existen además las tareas programadas de la app de escritorio, que corren en tu máquina con acceso a archivos locales (Claude Code · Tareas programadas del escritorio, 11-09-2026); sirven para una persona, no para una operación.
Separá siempre ingesta de sesión de agente. Bajar datos por API es código determinista y no necesita un modelo: en nuestro portafolio corre como GitHub Actions a las 05:20 UTC, horas antes de la sesión diaria, y cuesta cero tokens. La sesión de Claude Code arranca con los datos ya en el repo. Mezclar las dos cosas duplica el costo y hace que un error de API parezca un error del agente.
6. Qué NO automatizar, y por qué
La lista es corta y no negociable. Cada fila tiene el porqué operativo o legal y cómo se hace cumplir, porque «le dijimos al agente que no lo haga» no es un control:
| Nunca solo | Por qué | Cómo se hace cumplir |
|---|---|---|
| Enviar mensajes a clientes o prospectos (email, WhatsApp, LinkedIn) | Un mensaje con una cifra equivocada o un tono fuera de lugar es la relación con el cliente, no un borrador. En LinkedIn además: el acuerdo de usuario de LinkedIn prohíbe usar bots u otros métodos automatizados no autorizados para enviar o redirigir mensajes, y el centro de ayuda prevé restringir o cerrar las cuentas que usan software de automatización (LinkedIn, User Agreement §8.2 y Help Center, 2025-11-03). La cuenta del dueño es el activo. | No hay herramienta de envío en el repo. Los borradores quedan en ops/state/<cliente>/outbound/ y una persona los pega y manda. En nuestro portafolio la regla se llama «el agente redacta, el humano envía». |
| Publicar sin aprobación (posts, páginas, respuestas en redes) | Lo publicado bajo la marca del cliente lo firma la agencia; el costo de una corrección pública supera el ahorro del trimestre. Para contenido web, además, la compuerta editorial es lo que separa un pipeline de un generador masivo. | deny sobre las herramientas de publicación del CMS o de la red social (por nombre mcp__servidor__…). El agente escribe en una carpeta borradores/; la publicación es un paso humano. |
| Tocar cuentas de pauta con presupuesto (crear, editar, pausar, cambiar pujas) | Es dinero del cliente en tiempo real. El servidor MCP oficial de Meta Ads incluye herramientas de creación y edición de campañas (Meta for Developers · Ads MCP Server, 11-09-2026): la comodidad de conectarlo es exactamente el riesgo. | En settings.json, allow solo de las herramientas de lectura del servidor, nombradas una por una, y deny del resto (mcp__meta-ads__*); la doc admite allow con patrón solo tras el prefijo mcp__servidor__, por ejemplo mcp__servidor__get_* (Claude Code · Permisos, 11-09-2026). Las recomendaciones de presupuesto van al reporte como opción marcada por el account manager. |
| Credenciales en el chat | Todo lo que entra a una conversación queda en el transcript de la sesión; una clave pegada «un segundo» hay que rotarla. Nos pasó con la clave de API de un registrador de dominios y la rotación quedó anotada como pendiente en nuestro propio registro. | Secretos en el entorno (${VAR} en .mcp.json, secretos de GitHub Actions o el entorno de la Routine) y deny de Read(./.env) y Read(./secrets/**). Si una clave pasó por el chat, se rota ese día. |
Cambiar las políticas (ops/policies.md, settings.json, este mismo listado) | Si el agente puede editar el archivo que lo limita, no hay límite. Es la regla que hace válidas a todas las demás. | Esos archivos solo cambian por pull request revisado por una persona. La doc de settings señala que los modos bypassPermissions y auto no toman efecto desde los settings del proyecto (Claude Code · Settings, 11-09-2026): la escalada de permisos no se puede commitear al repo. |
Y una regla más que no es de seguridad sino de diseño: el modelo no hace aritmética de cliente. Los cálculos viven en scripts con pruebas; el modelo redacta sobre una tabla ya calculada y una compuerta verifica que cada cifra del texto exista en la tabla. Es el corazón de la guía de reportes y la razón por la que el skill de arriba llama a consolidar.mjs y a verificar-cifras.mjs en vez de «analizar el CSV».
7. Costos y límites, con fecha
Dos formas de pagar, y la elección depende de quién opera. Con suscripción, el uso está incluido dentro de límites por ventana; las Routines consumen ese mismo uso (Claude Code · Routines, 11-09-2026). Con API, se paga por token y el costo se ve por corrida.
| Plan de suscripción | Precio por mes | Incluye Claude Code | Nota |
|---|---|---|---|
| Pro | USD 20 (17 con pago anual) | Sí | Un usuario. Incluye Routines. |
| Max | desde USD 100 | Sí | Dos niveles: 5× y 20× el uso de Pro. Solo facturación mensual. |
| Team · Standard | USD 25 por asiento (20 anual) | Sí | Por asiento; pago mensual o anual. |
| Team · Premium | USD 125 por asiento (100 anual) | Sí | Más uso por asiento para quien opera Claude Code todo el día. |
| Enterprise | Asiento + uso a tarifa de API | Sí | Facturación anual; controles de administración. |
Fuente: Claude · Planes y precios, verificado el 11-09-2026. Precios en USD antes de impuestos; los límites de uso por ventana no están cuantificados en la página pública y varían por plan.
| Modelo (API) | Entrada, USD por millón de tokens | Salida, USD por millón de tokens |
|---|---|---|
| Claude Opus 5 | 5 | 25 |
| Claude Sonnet 5 | 2 | 10 |
| Claude Haiku 4.5 | 1 | 5 |
Fuente: Claude API · Pricing, verificado el 11-09-2026. Lecturas de caché al 0,1× del precio de entrada; Batch API con 50% de descuento. La misma página señala que los modelos desde la generación 4.7 usan un tokenizador que produce alrededor de 30% más tokens para el mismo texto.
Para dimensionar: Anthropic publica que en despliegues empresariales de Claude Code el costo promedio es de unos USD 13 por desarrollador por día activo y USD 150-250 por mes, con el 90% de los usuarios por debajo de USD 30 por día activo (Claude Code · Costos, 11-09-2026). Un «desarrollador» ahí es una persona operando de forma interactiva todo el día; una Routine que corre veinte minutos por cliente por mes consume bastante menos, y se mide con /usage, que atribuye el uso por skill, subagente y servidor MCP.
Los límites que condicionan el diseño, todos de la documentación verificada el 11-09-2026:
- Contexto por sesión: cada sesión y cada subagente empiezan vacíos;
CLAUDE.mdentra completo en cada sesión (por eso la recomendación de menos de 200 líneas) y lo específico va a skills, que cargan solo cuando se invocan (Claude Code · CLAUDE.md y memoria; Claude Code · Costos). - Subagentes: 20 concurrentes por defecto y 3 niveles de anidamiento (Claude Code · Subagentes). Cada uno consume uso propio: la doc de costos recomienda modelos más chicos para tareas simples y equipos pequeños.
- MCP: aviso a 10.000 tokens y tope de 25.000 por salida de herramienta (Claude Code · MCP). Los datos grandes se agregan en código antes de llegar al modelo.
- Routines: intervalo mínimo de una hora, tope diario de corridas por cuenta, y corridas que pertenecen a una persona (los commits y mensajes salen con su identidad) (Claude Code · Routines). Para una agencia, eso quiere decir que la cuenta que opera las Routines es una decisión de la dirección, no de quien las configuró.
- Corridas sin humano:
--max-turnsen GitHub Actions ymaxTurnspor subagente evitan un agente que gira en círculos;--output-format jsondeja el costo por corrida entotal_cost_usd(Claude Code · GitHub Actions; Claude Code · Ejecución programática (claude -p)).
8. Checklist de arranque en una semana
- Día 1, el contrato. Escribir
ops/policies.mdcon la lista de la sección 6 y una regla más: qué puede hacer la máquina sin preguntar. Crear el repo,CLAUDE.mdde menos de 100 líneas y.claude/settings.jsoncon losdeny. Sin esto, no seguir. - Día 2, un cliente, sus datos. Elegir el cliente con más horas de reporte. Cuenta de servicio de Google agregada a su propiedad de GA4 y a Search Console; script de ingesta que deje el primer snapshot fechado en
ops/state/<cliente>/. Conectar GA4 por MCP solo si alguien va a explorar a mano. - Día 3, el cálculo y la compuerta. Script que consolide la tabla del reporte (variaciones, costo por resultado) con pruebas, y script que verifique que cada cifra de un texto exista en la tabla. Ninguno de los dos usa un modelo.
- Día 4, el skill y el subagente.
/reporte-mensualcomo el de la sección 5, condisable-model-invocation: true. Un subagenteanalista-gscde solo lectura. Correrlo a mano sobre el mes pasado y comparar con el reporte que ya se envió: ahí aparecen las palabras prohibidas y las métricas que faltan en elCLAUDE.mddel cliente. - Día 5, programarlo y medirlo. Routine mensual o GitHub Action con cron; la ingesta, como Action aparte y horas antes. Cronometrar cuánto tarda el account manager en revisar el borrador: ese número, contra las horas de antes, es lo único que justifica seguir. Después, el segundo cliente, no el segundo flujo.
Fuentes verificadas
Cada característica del producto citada en esta página se verificó abriendo la documentación oficial el 11-09-2026. Lo que no está en esta lista no se afirma.
- Claude Code · Overview · verificado el 11-09-2026. Disponible en terminal, extensiones de IDE (VS Code, JetBrains), app de escritorio y navegador; los mismos CLAUDE.md, settings y servidores MCP del repo funcionan en todas las superficies.
- Claude Code · CLAUDE.md y memoria · verificado el 11-09-2026. CLAUDE.md en ./CLAUDE.md o ./.claude/CLAUDE.md, se lee al inicio de cada sesión; reglas por ruta en .claude/rules/; recomendación de menos de 200 líneas; imports con @ruta.
- Claude Code · Skills · verificado el 11-09-2026. Un skill es un SKILL.md con frontmatter en .claude/skills/<nombre>/; se invoca con /nombre o lo carga Claude por su description; campos disable-model-invocation, allowed-tools, context: fork, agent.
- Claude Code · Subagentes · verificado el 11-09-2026. Archivos Markdown en .claude/agents/ con name, description, tools, disallowedTools, model, permissionMode, maxTurns; contexto propio; hasta 3 niveles de anidamiento; límite de 20 subagentes concurrentes por defecto (CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS).
- Claude Code · MCP · verificado el 11-09-2026. claude mcp add --transport http|stdio; alcances local, project (.mcp.json versionado) y user; secretos por ${VAR} en .mcp.json; OAuth para servidores remotos; aviso a 10.000 tokens y tope de 25.000 tokens por salida de herramienta MCP.
- Claude Code · Permisos · verificado el 11-09-2026. Reglas allow/ask/deny con sintaxis Tool(patrón): Bash(git push *), Read(./.env), WebFetch(domain:host), mcp__servidor__get_*; una regla deny gana sobre allow; modos default, acceptEdits, plan, auto, dontAsk, bypassPermissions.
- Claude Code · Hooks · verificado el 11-09-2026. Comandos que corren en eventos del ciclo de vida (PreToolUse, PostToolUse, Stop, SessionStart, etc.); un PreToolUse bloquea la herramienta con exit 2 o permissionDecision: deny. Se configuran en settings.json.
- Claude Code · Settings · verificado el 11-09-2026. Precedencia: managed > línea de comandos > .claude/settings.local.json > .claude/settings.json (compartido, se commitea) > ~/.claude/settings.json; las listas permissions.allow se combinan entre archivos.
- Claude Code · Routines · verificado el 11-09-2026. Research preview. Prompt + repos + conectores que corren en la nube de Anthropic con disparadores por horario, API o eventos de GitHub; planes Pro, Max, Team y Enterprise; se crean en claude.ai/code/routines o con /schedule; intervalo mínimo 1 hora; consumen el uso de la suscripción y tienen un tope diario de corridas; corren sin prompts de permiso.
- Claude Code · Tareas programadas del escritorio · verificado el 11-09-2026. Alternativa local a Routines: tareas programadas que corren en la máquina propia, con acceso a archivos y herramientas locales.
- Claude Code · GitHub Actions · verificado el 11-09-2026. anthropics/claude-code-action@v1; con un prompt corre en modo automatización sobre cualquier evento, incluido schedule/cron; secreto ANTHROPIC_API_KEY o CLAUDE_CODE_OAUTH_TOKEN (claude setup-token); claude_args admite --max-turns, --model y --allowedTools.
- Claude Code · Ejecución programática (claude -p) · verificado el 11-09-2026. claude -p corre sin interfaz; --bare evita cargar hooks, skills, MCP y CLAUDE.md del host; --allowedTools y --permission-mode dontAsk para corridas cerradas; --output-format json devuelve total_cost_usd.
- Claude Code · Costos · verificado el 11-09-2026. Costo promedio en despliegues empresariales: unos USD 13 por desarrollador por día activo y USD 150-250 por desarrollador por mes; el 90% queda por debajo de USD 30 por día activo. /usage muestra la atribución por skill, subagente y servidor MCP.
- Claude Agent SDK · Overview · verificado el 11-09-2026. Las mismas herramientas, loop de agente y gestión de contexto de Claude Code, como biblioteca de Python y TypeScript, para construir agentes propios.
- Claude · Planes y precios · verificado el 11-09-2026. Pro: USD 20/mes (USD 17/mes con pago anual). Max: desde USD 100/mes, con niveles de 5× y 20× el uso de Pro. Team: asiento Standard USD 25/mes (20 anual) y Premium USD 125/mes (100 anual). Enterprise: asiento + uso a tarifa de API, facturación anual. Claude Code incluido en Pro, Max y Team.
- Claude API · Pricing · verificado el 11-09-2026. Precios por millón de tokens (entrada / salida): Opus 5 USD 5 / 25; Sonnet 5 USD 2 / 10; Haiku 4.5 USD 1 / 5. Lectura de caché al 0,1× del precio de entrada; Batch API con 50% de descuento.
- Google Analytics MCP Server (Experimental) · GitHub googleanalytics · verificado el 11-09-2026. Servidor MCP local publicado por el equipo de Google Analytics, licencia Apache-2.0, etiquetado Experimental, solo lectura (scope analytics.readonly); herramientas run_report, run_realtime_report, run_funnel_report, get_account_summaries; autenticación por Application Default Credentials de gcloud; se corre con pipx run analytics-mcp.
- Meta for Developers · Ads MCP Server · verificado el 11-09-2026. Servidor MCP alojado por Meta en https://mcp.facebook.com/ads que permite gestionar anuncios desde un agente de IA; herramientas con permisos acotados para reportes, creación y edición de campañas, conjuntos y anuncios, catálogos, señales, pruebas A/B y registro de actividad.
- Google Search Console API · Referencia · verificado el 11-09-2026. API oficial con searchanalytics.query, sitemaps (list/get/submit/delete), sites y urlInspection.index.inspect. La referencia no menciona ningún servidor MCP: al 11-09-2026 no encontramos un servidor MCP oficial de Google para Search Console.
- Model Context Protocol, documentación oficial · 2025.
- LinkedIn, User Agreement §8.2 y Help Center · 2025-11-03.