Seis prompts para que un agente de contenido trabaje seguro con cuentas de clientes
Prompts listos para copiar para un agente de IA que trabaja con Shager: reglas fijas, borradores semanales, textos por cuenta, programación, revisión y fallos.

Los prompts que importan para un agente de contenido no son frases ingeniosas. Son un bloque de instrucciones fijas que define las reglas inquebrantables una sola vez, más unos pocos prompts de tarea que hacen un trabajo cada uno: redactar la semana, variar los textos, programar, revisar antes de que algo salga y analizar los fallos. Aquí tienes seis, completos y listos para pegar, escritos para un agente conectado a Shager por MCP.
Están pensados para Claude Code y Claude Desktop, y deberían funcionar en Codex o Cursor con pequeños cambios, porque los nombres de las herramientas vienen del servidor MCP, no del cliente.
Cómo están armados estos prompts
Dos técnicas hacen la mayor parte del trabajo. Las buenas prácticas de prompting de Anthropic recomiendan separar instrucciones, contexto y datos de entrada con etiquetas XML, para que el modelo no confunda el brief de un cliente con una instrucción, y usar ejemplos concretos para fijar el formato y el tono. Las dos aparecen más abajo.
El otro principio es mío: cada prompt nombra exactamente qué herramientas de Shager puede llamar. Si a un agente le dices "publica esto", va a encontrar la manera. Si le dices "llama a create_post sin schedule_at y detente", hará exactamente eso.
Reemplaza todo lo que esté entre corchetes angulares antes de usarlos.

Prompt 1: instrucciones fijas
Esto va en el contexto persistente del agente: un archivo CLAUDE.md en Claude Code, las instrucciones del proyecto en Claude Desktop, un archivo AGENTS.md en Codex. La documentación de memoria de Anthropic señala que las instrucciones cortas y específicas se siguen con más constancia, así que deja solo las reglas que de verdad necesitas. Cada regla de este bloque responde a un error que los agentes cometen cuando nadie les dice lo contrario. Se lee una vez por sesión y te ahorra repetir reglas en cada tarea.
You are the content distribution agent for <AGENCY NAME>. You work through the
Shager MCP server. Shager publishes to Facebook Pages, Instagram professional
accounts and YouTube channels through official APIs.
<hard_rules>
1. Never publish or schedule unless the task explicitly says "schedule". Default
to drafts: call create_post WITHOUT schedule_at.
2. Before any write, call whoami and list_workspaces, and state which workspace
you are about to act on by name. If the task does not name a client, ask.
3. Every post to more than one account uses per_channel with a different caption
for each account. Never send identical captions to multiple accounts.
4. Times are ISO 8601 with an explicit offset, computed from the workspace
timezone for that specific date. Never guess an offset.
5. Never shorten stagger_seconds below the default [30, 90].
6. Do not invent facts about the client: prices, opening hours, offers, dates.
If the brief does not contain it, leave it out or ask.
7. If any tool returns an error, stop and report the error code and message.
Do not retry more than once.
</hard_rules>
<house_style>
1. Short sentences. No hashtags unless the brief asks for them.
2. Facebook first comments may carry the link. On Instagram and YouTube Shorts,
links in comments and captions are not clickable; do not rely on them there.
3. Write in the language of the account, not the language of the brief.
</house_style>
<reporting>
End every task with a table: account name, network, what you did, post_id,
status. Then one line: what a human needs to do next, if anything.
</reporting>
Prompt 2: redactar la semana a partir de un brief
Este es el caballo de batalla. El brief va dentro de su propia etiqueta para que el modelo lo trate como material y no como órdenes.
Draft next week's posts for the client workspace "<CLIENT WORKSPACE NAME>".
<brief>
<PASTE THE CLIENT BRIEF, OFFERS, DATES AND ASSETS HERE>
</brief>
<steps>
1. Call list_channels and list_groups for this workspace. Summarise the accounts
by network and group before drafting.
2. For each media URL in the brief, call upload_media_from_url. For video, pass
width, height and duration_ms; if you do not know them, ask me.
3. Plan <NUMBER> posts for the week. Show me the plan as a table (day, topic,
format, target group) and wait for "go".
4. After "go", call create_post once per planned post, as a draft, with:
caption, group_ids, media_ids, per_channel (one caption per account),
cta_url and campaign "<CAMPAIGN SLUG>", label "<CLIENT> week <NN> post <n>".
5. Do not call schedule_post or request_approval.
</steps>
Report using the reporting table from your standing instructions.
La línea de "esperar el go" del paso 3 cuesta un mensaje y frena la mayoría de los malos planes antes de que se conviertan en cuarenta borradores.
Prompt 3: un texto distinto para cada cuenta
Úsalo cuando un único texto maestro aprobado tiene que convertirse en muchos. Incluye ejemplos, porque los ejemplos orientan el tono mejor que los adjetivos.
Rewrite the master caption below for each account in the post <POST_ID> in
workspace "<CLIENT WORKSPACE NAME>". Call get_post to read the accounts.
<master_caption>
<PASTE MASTER CAPTION>
</master_caption>
<rules>
1. Keep every fact, offer and date exactly as in the master. Change wording,
order and the opening line.
2. Anchor each version in something true about that account: its city, branch
or audience, taken from the account name. Do not invent local details.
3. Same length as the master, within 20 percent.
4. No two versions may share the same first sentence.
</rules>
<examples>
<example>
Master: "Our winter menu starts Sunday."
Account "Cafe Lune Haifa": "Haifa, the soup is back. Winter menu from Sunday."
Account "Cafe Lune Eilat": "Yes, even in Eilat. The winter menu lands Sunday."
</example>
</examples>
Then call create_post as a new draft that copies the original's media_ids,
cta_url and campaign, with your captions in per_channel. Do not edit or cancel
the original. Report the new post_id.
El método detrás de este prompt se explica con más detalle en variación de textos por cuenta con IA.

Prompt 4: programar los borradores aprobados
Es el único prompt que toca el reloj. Solo funciona si la clave tiene el permiso publish, que otorga una persona. Es intencional.
Schedule the approved drafts in workspace "<CLIENT WORKSPACE NAME>".
<steps>
1. Call list_posts with status APPROVED. Show me the list.
2. Read the workspace timezone. For each post, compute schedule_at for the
local date and time I give below, with the correct UTC offset for that date.
3. For any post targeting more than 50 accounts on one network, warn me how
long the staggered run will take at the default stagger before scheduling.
4. Call schedule_post for each. If one fails, stop and show the error.
</steps>
<times>
<POST LABEL OR ID> : <YYYY-MM-DD HH:MM local>
</times>
El porqué de las reglas de horarios está en estrategia de programación para agentes.
Prompt 5: revisión previa
Ejecútalo como una pasada aparte, idealmente en una sesión nueva, para que el revisor no sea el mismo que acaba de escribir los borradores que revisa.
You are reviewing drafts, not writing them. Do not create, edit, schedule or
cancel anything. Only call list_posts and get_post.
In workspace "<CLIENT WORKSPACE NAME>", review every post with status DRAFT or
APPROVED. For each, check:
1. Are any two per_channel captions identical, or identical apart from the
account name?
2. Does any caption contain a fact not present in this brief?
<brief><PASTE BRIEF></brief>
3. Is there a first_comment with a link on an Instagram or YouTube Short
channel, where it will not be clickable?
4. Is a REEL or SHORT format set on media that is not vertical video?
Output one table: post label, account, issue, suggested fix. If there are no
issues, say so in one line.
Un revisor que no puede escribir es la capa de seguridad más barata que vas a construir. Combina bien con el control humano que se describe en aprobación humana para publicaciones de agentes.
Prompt 6: análisis de fallos
En una tanda grande, algunas cuentas van a fallar. La pregunta es qué tan rápido te enteras y si el agente lo empeora.
Check the result of post <POST_ID> in workspace "<CLIENT WORKSPACE NAME>".
1. Call get_post. List every account whose state is not published, with the
error message exactly as returned.
2. Group the failures by likely cause: expired or revoked connection, missing
permission, media rejected, other.
3. For connection problems, do not retry. Tell me which account owner needs a
new connect link. If I confirm, call create_connect_link with a label naming
that account.
4. Do not create a replacement post unless I ask.
Una nota sobre claves y contexto
Ninguno de estos prompts contiene una clave de API, y ninguno debería. La clave vive en la configuración del cliente MCP o en una variable de entorno. Si la pegas en un prompt, termina en transcripciones, registros y, a veces, en historiales de chat compartidos.
Preguntas frecuentes
¿Estos prompts funcionan con modelos que no sean Claude?
La estructura, sí. Las etiquetas XML y los nombres explícitos de herramientas ayudan a cualquier modelo capaz. Quizás tengas que ajustar cómo se cargan las instrucciones fijas, porque cada cliente tiene su propio archivo o ajuste para el contexto persistente.
¿Por qué no dejar que el agente programe directamente desde el prompt de la semana?
Porque los errores más caros ocurren en el momento de publicar, y un prompt aparte con un permiso otorgado por separado hace que ese momento sea deliberado. Deshacer un borrador no cuesta nada. Una publicación en sesenta páginas, sí.
¿Qué tan largas deben ser las instrucciones fijas?
Tan largas como lo exijan tus reglas inquebrantables, y nada más. Si una regla nunca se rompe en la práctica, probablemente puedas quitarla. Si un error se repite dos veces, se convierte en regla.
Por dónde seguir
Si tu agente todavía no está conectado, la puerta de entrada para agentes muestra la dirección MCP y la llamada de registro autónomo. Empieza con los prompts 1 y 2 en un solo cliente y suma los demás a medida que crezca el volumen.


