fabricioIA

Agentes 17 de ago de 2026 · 14 min de lectura

Un agente de marketing digital desde cero: los archivos, el árbol y el paso a paso

Cinco archivos de texto en una carpeta. Copia los cinco de aquí, ejecútalo, y tienes un agente que hace tareas de marketing — no uno que conversa sobre marketing.

Cartel de FabricioIA para el artículo "Un agente de marketing digital desde cero: los archivos, el árbol y el paso a paso" — el árbol de directorios de un agente dibujado dentro de una terminal, cada archivo un nodo encendido, y un cable verde que sale del último nodo hasta la pieza terminada
Cartel de FabricioIA para el artículo "Un agente de marketing digital desde cero: los archivos, el árbol y el paso a paso" — el árbol de directorios de un agente dibujado dentro de una terminal, cada archivo un nodo encendido, y un cable verde que sale del último nodo hasta la pieza terminada

El agente que conversa y el agente que entrega

Casi todo el que me muestra "el agente que armé" me muestra lo mismo: un prompt enorme pegado en una caja de texto, que responde muy bien sobre el tema y no produce nada. Le preguntas por un calendario editorial y te explica qué es un calendario editorial. Precioso. Inútil.

La diferencia entre eso y un agente que trabaja no está en el modelo ni en el tamaño del prompt. Está en la estructura de archivos. Un agente de verdad es una carpeta con cuatro o cinco archivos de texto, cada uno con un papel distinto, leídos en momentos distintos.

En este texto armo uno desde cero, delante de ti. Es un agente de marketing digital: educado, enfocado en ejecutar tareas — calendario, correo, anuncio, página — y no en dar cátedra sobre marketing.

Todos los archivos están aquí, completos. Si copias los cinco a una carpeta y abres Claude Code dentro de ella, el agente funciona. No hay paso escondido.

Las cuatro piezas de un agente

Antes del árbol, el modelo mental. Un agente se compone de cuatro cosas, y cada una se convierte en un tipo de archivo:

  • Identidad — quién es, cómo decide, qué rechaza. Es su system prompt. Se vuelve el archivo del agente.
  • Contexto — lo que sabe de tu mundo: producto, público, tono, historial. Se vuelve el CLAUDE.md.
  • Procedimiento — cómo se hace una tarea concreta, con su regla y sus límites. Se vuelve una skill, cargada solo cuando el tema aparece.
  • Disparador — cómo lo pide la persona. Se vuelve un slash command.

Si vienes del desarrollo, la analogía más cercana es esta: el agente es la clase, la skill es el módulo que importa bajo demanda, el comando es la CLI, y el CLAUDE.md es la configuración de entorno que todos leen al arrancar.

El error más común es apilar las cuatro cosas en un solo prompt. Funciona una semana. Después el prompt tiene 400 líneas, el modelo empieza a ignorar la mitad del medio, y ya no puedes cambiar una regla sin romper otra.

El árbol

Esta es la estructura completa de nuestro ejemplo — una tienda ficticia de herramientas de carpintería:

ferro-e-cia/
├── CLAUDE.md                          # contexto del proyecto, siempre cargado
├── marketing/
│   ├── publicado/                     # lo que ya salió al aire
│   └── salida/                        # donde escribe el agente
└── .claude/
    ├── agents/
    │   └── marketing.md               # QUIÉN: identidad, método, límites
    ├── skills/
    │   └── campana-de-lanzamiento/
    │       ├── SKILL.md               # CÓMO: el procedimiento, bajo demanda
    │       └── referencias/
    │           └── canales.md         # límites de formato por canal
    └── commands/
        └── campana.md                 # ATAJO: /campana, para la persona

Tres cosas para notar antes de escribir una línea:

La carpeta .claude/ es la máquina; la carpeta marketing/ es el producto. El agente lee la primera y escribe en la segunda. Mantenerlas separadas es lo que te deja versionar la máquina en Git sin mezclarla con su salida.

Cada archivo se carga en un momento distinto. El CLAUDE.md siempre. El archivo del agente cuando se lo llama. La skill cuando aparece el tema. El comando cuando la persona lo escribe. Esto no es prolijidad decorativa: es lo que mantiene la ventana de contexto libre para el trabajo real.

Nada de esto es código. Son cinco archivos de texto. Lo difícil es decidir qué escribir en ellos, no la sintaxis.

Paso 1 — el contexto del proyecto (CLAUDE.md)

Este archivo vive en la raíz y se lee en cada sesión, por cualquier agente. Responde una sola pregunta: ¿en qué mundo estamos?

# Contexto del proyecto

Somos **Ferro & Cia**, tienda en línea de herramientas manuales para carpintería aficionada.

- **Público:** adultos de 30 a 55 años que trabajan en el garaje, los fines de semana.
- **Oferta principal:** kit inicial de tallado, 95 dólares, envío gratis arriba de 60.
- **Tono:** de taller — directo, sin jerga de startup, sin promesa de resultado.
- **Canales:** correo (lista de 4.200 personas), Instagram, Google Search.
- **Lo que no hacemos:** descuento relámpago, cuenta regresiva falsa, nombrar competidores.

## Dónde vive cada cosa

- `marketing/salida/` — piezas nuevas, aún sin publicar.
- `marketing/publicado/` — lo que ya salió. Revísalo antes de escribir para no repetir el gancho.

Dos reglas que aprendí a los golpes aquí:

Sé específico o no escribas. "Tono profesional y moderno" no cambia ni una coma en la salida del modelo. "Sin jerga de startup, sin promesa de resultado" lo cambia todo, porque es una instrucción verificable.

Escribe lo que ustedes no hacen. La lista de límites es la parte de este archivo que más retrabajo evita. Es lo que impide que el agente escriba "¡solo por 24 horas!" en una tienda que no usa urgencia falsa.

Paso 2 — el agente (.claude/agents/marketing.md)

Aquí vive la identidad. El archivo tiene dos partes: un encabezado en YAML entre ---, y un cuerpo en Markdown que es, literalmente, el system prompt del agente.

---
name: marketing
description: >
  Ejecuta tareas de marketing digital: calendario editorial, texto de anuncio,
  asunto y cuerpo de correo, página de captura, guion de video corto,
  descripción de producto e informe simple de campaña.
  Úsalo siempre que el pedido sea producir una pieza de marketing lista para publicar,
  o revisar una pieza existente contra su objetivo.
tools: Read, Write, Edit, Glob, Grep, WebFetch, WebSearch
model: sonnet
---

# Marketing digital

Soy el agente de marketing digital de este proyecto. Recibo un objetivo y devuelvo pieza
terminada — archivo guardado, con título, cuerpo y llamada a la acción. No devuelvo lista
de sugerencias sobre lo que se podría hacer.

## Cómo trabajo

1. **Leo el contexto antes de escribir.** `CLAUDE.md` en la raíz y los archivos de
   `marketing/publicado/` del mismo canal — para no repetir gancho.
2. **Pregunto una sola vez.** Cuando falta objetivo, público o plazo, pregunto los tres
   juntos y sigo. Sin respuesta, tomo la hipótesis más conservadora, escribo la pieza y
   dejo la hipótesis anotada al pie del archivo.
3. **Termino con artefacto.** Cada tarea genera archivo en
   `marketing/salida/<AAAA-MM-DD>-<asunto>.md`. Trabajo sin archivo guardado no está hecho.
4. **Doy variaciones donde el canal prueba.** Anuncio y asunto de correo salen en tres
   versiones numeradas, cada una con una línea que dice qué hipótesis prueba.
5. **Cierro con el próximo paso.** Una frase: qué publicar, dónde y qué mirar después.

## Cómo hablo con la persona

Educado y directo. Uso "tú", trato por el nombre cuando aparece en el contexto, explico
la jerga de marketing la primera vez que aparece y rechazo el adjetivo vacío.

Cuando el pedido va contra el objetivo declarado, digo por qué en dos líneas — y entrego
igual lo que se pidió, con la alternativa al lado. La decisión es de la persona.

## Cómo escribo las piezas

Frase corta. Verbo al inicio. Un beneficio concreto por párrafo. Número solo cuando el
número existe y vino del contexto o de una fuente que abrí en esta sesión.

## Mis límites

- Nada de promesa de resultado, urgencia falsa o testimonio que no me dieron.
- Yo escribo el archivo; publica la persona. No envío correo ni publico nada.
- Sin dato de mercado sin fuente. A falta de ella, escribo "sin dato" y sigo.

Ahora lo que importa en cada campo del encabezado — aquí es donde falla la mayoría:

name es como llamas al agente. Minúsculas, sin espacios.

description es ruteo, no biografía. Este es el campo que el agente principal lee para decidir si delega la tarea a este agente. Tiene que decir cuándo usarlo, con las palabras que la persona va a usar en el pedido. "Especialista sénior en marketing digital con foco en growth" es una biografía y no rutea nada. La lista de tareas concretas de arriba sí rutea. Si tu agente "nunca es llamado", el problema casi siempre está en esta línea.

tools es mínimo privilegio. Listas solo lo que necesita. El nuestro lee, escribe, busca archivos y consulta la web — y no recibe Bash, porque un agente que escribe texto no tiene por qué ejecutar comandos en tu máquina. Omitir el campo da acceso a todo; es el default cómodo y es el default equivocado.

model elige el motor. Tarea de redacción con regla clara anda bien en un modelo intermedio; deja el caro para cuando midas que lo necesitas.

¿Y el cuerpo? Fíjate que no tiene una línea sobre qué es el marketing digital. El modelo ya lo sabe. El cuerpo del agente sirve para lo que el modelo no puede adivinar: tu método, tu formato de salida, tu manera de hablar y lo que debe rechazar. Toda línea que le enseña al modelo su propio oficio es línea desperdiciada.

Un detalle que cambia el resultado más de lo que parece: el punto 3. "Termino con artefacto" es lo que convierte un conversador en un ejecutor. Sin una regla explícita de que la tarea termina en archivo guardado, el comportamiento por defecto es volcar texto en la pantalla y esperar que tú hagas el resto.

Paso 3 — la skill (.claude/skills/campana-de-lanzamiento/SKILL.md)

Una skill es un procedimiento guardado en un cajón. Tiene un encabezado pequeño, siempre visible, y un cuerpo que entra al contexto solo cuando el tema aparece de verdad.

Eso resuelve un problema real: tienes 15 procedimientos escritos y mantener los 15 dentro del agente todo el tiempo ni cabe ni conviene.

---
name: campana-de-lanzamiento
description: Arma una campaña de lanzamiento completa — calendario editorial, correos,
  anuncios y página de captura — a partir de un producto, una fecha y un público.
  Úsala cuando el pedido implique lanzar, relanzar o difundir algo con fecha marcada.
---

# Campaña de lanzamiento

Una campaña es un calendario con piezas colgadas de él. El calendario va primero; ninguna
pieza se escribe antes de que existan las fechas.

## El orden

1. **Fija las tres fechas:** apertura, cierre y el envío de mayor peso (víspera del cierre).
2. **Arma el calendario** en `marketing/salida/<AAAA-MM-DD>-campana-<producto>.md`, una línea
   por pieza: fecha, canal, formato, objetivo de la pieza, estado.
3. **Escribe las piezas** en el orden del calendario, cada una en su propio archivo.
4. **Cierra con la lista de publicación:** qué sube cada día, quién lo sube y qué revisar antes.

## La regla de cada pieza

- **Correo** — 120 a 220 palabras, una idea, un enlace, asunto de hasta 45 caracteres.
- **Anuncio** — tres variaciones, gancho en la primera línea, beneficio, llamada.
- **Post de red** — 80 a 150 palabras, abre por el problema, cierra por la acción.
- **Página de captura** — una pantalla, una promesa, tres pruebas, un formulario.

Los límites de formato por canal están en `referencias/canales.md`. Léelo antes de la primera pieza.

Y el archivo de referencia que cita, en .claude/skills/campana-de-lanzamiento/referencias/canales.md:

# Canales — límites y formatos

- **Correo:** asunto hasta 45 caracteres, preencabezado hasta 90. Un enlace por correo.
- **Instagram:** descripción hasta 2.200 caracteres; los primeros 125 aparecen antes del "más".
  Carrusel de 5 a 8 tarjetas.
- **LinkedIn:** hasta 3.000 caracteres; el feed corta en la tercera línea. Sin pila de hashtags.
- **Reels / Shorts:** guion de 30 a 45 segundos, gancho en los 2 primeros.
- **Google Search:** título hasta 30 caracteres por campo (3 campos), descripción hasta 90 (2 campos).
- **Página de captura:** un objetivo por página, un formulario, sin menú de navegación.

La regla de oro de la skill es la misma que la description del agente: el encabezado es el índice, el cuerpo es el contenido. Escribe la description con los verbos que la persona va a usar ("lanzar", "difundir", "relanzar"), o el cajón nunca se abre.

Y fíjate que el cuerpo tiene procedimiento, no teoría. Dice en qué orden hacer, dónde guardar y con qué regla — cosas que solo existen en tu casa. Nada allí explica qué es una campaña.

Paso 4 — el comando (.claude/commands/campana.md)

El comando es ergonomía humana. Existe para que no tengas que reescribir el mismo pedido de tres párrafos cada vez.

---
description: Arma una campaña de lanzamiento con el agente de marketing
argument-hint: <producto> - <fecha de lanzamiento> - <público>
---

Usa el agente `marketing` para armar la campaña de lanzamiento descrita abajo.

PEDIDO: $ARGUMENTS

Antes de escribir cualquier pieza:

1. Lee `CLAUDE.md` y lo que haya en `marketing/publicado/` del mismo canal.
2. Confirma producto, fecha y público. Si falta alguno, pregunta los tres de una vez y sigue.
3. Arma el calendario editorial primero. Ninguna pieza antes de que exista el calendario.

Entrega los archivos en `marketing/salida/` y termina con la lista de qué publicar cada día.

$ARGUMENTS se reemplaza por lo que escribas después del comando. argument-hint es el texto que aparece en la sugerencia mientras escribes — cortesía con tu yo de dentro de tres meses.

Piensa en el comando como un script de shell: no agrega inteligencia nueva, fija una secuencia que ya sabes que funciona.

Paso 5 — ejecutar

Arma la carpeta, entra y llama:

mkdir -p ferro-e-cia/marketing/salida ferro-e-cia/marketing/publicado
cd ferro-e-cia
# copia aquí los cinco archivos de este post, respetando el árbol
claude

Entonces, dentro de la sesión, las dos formas de accionarlo:

/campana kit inicial de tallado - lanzamiento el 15/09 - carpinteros de fin de semana

o, en lenguaje natural, sin comando alguno:

Usa el agente marketing para escribir tres variaciones de anuncio del kit de tallado
para Google Search.

El primer pedido dispara la skill (tiene "lanzamiento" y fecha). El segundo no la necesita: es pieza suelta.

Cómo saber si funcionó. No por la respuesta linda en pantalla — por el disco:

ls marketing/salida/
# 2026-08-17-campana-kit-tallado.md
# 2026-08-17-correo-apertura.md
# 2026-08-17-anuncio-search.md

Si aparecieron archivos, el agente ejecutó. Si no aparecieron, conversó — y la regla de "termino con artefacto" necesita quedar más explícita en su archivo.

Qué se rompe en la práctica

Cinco cosas que vi salir mal, en orden de frecuencia:

El agente nunca es llamado. Siempre es la description. Reescríbela empezando por "Úsalo cuando…" y mete adentro las palabras del pedido real.

La skill nunca se abre. Misma causa, mismo remedio, en el encabezado de la skill.

Responde en vez de entregar. Falta la regla del artefacto, o está enterrada a mitad de un párrafo. Una regla de salida merece punto numerado y verbo en imperativo.

Inventa números. "El 78% de los consumidores prefiere…" sale precioso y es ficción. Por eso el límite explícito en el archivo del agente. Aun así, revisa cada número antes de publicar — esa parte sigue siendo tuya.

Se vuelve genérico. Casi siempre es un CLAUDE.md vago. Basura entra, basura sale: el agente no conoce a tu público, repite con fluidez lo que tú escribiste sobre él.

Lo que este agente no hace

Siendo honesto, porque internet anda llena de promesas: este agente escribe piezas, y escribir piezas es la parte barata del marketing.

No sabe si tu oferta es buena. No mide resultados — el tablero lo lees tú. No sabe qué respondió tu cliente por WhatsApp la semana pasada, a menos que se lo cuentes. Y no reemplaza la decisión de a quién vender y por cuánto, que es donde las campañas realmente se ganan o se pierden.

Lo que hace es quitarte las cuatro horas de tecleo que separan la decisión de la publicación. En mi semana, eso es bastante.

El lunes por la mañana

  1. Crea la carpeta y copia los cinco archivos. Veinte minutos, sin escribir una línea de código.
  2. Reescribe el CLAUDE.md con tu negocio real — sobre todo la lista de lo que ustedes no hacen.
  3. Pide la cosa más aburrida que haces cada semana. No el lanzamiento del año; la pieza repetitiva.
  4. Mira el archivo que salió y corrige al agente, no a la pieza. Cada corrección que harías dos veces se vuelve una línea en .claude/agents/marketing.md. Así se vuelve tuyo.

Un agente no nace terminado: se pone bueno en el tercer ajuste, y el ajuste vive en un archivo de texto que versionas como cualquier otro. Esa es toda la buena noticia — no es magia, es repositorio.

Recibe los próximos artículos

Sin spam. Un mensaje cuando sale un artículo nuevo, con enlace para salir en cada uno.

Sigue leyendo