Esta lección construye desde cero una automatización real y completa: la tarea diaria de un oficial de escritorio de revisar una página web gubernamental o ministerial en busca de acuerdos nuevos, redactar la correspondencia de seguimiento, y mantener un solo documento de Word, en constante crecimiento, actualizado con cada acuerdo, respuesta y nota personal. Al final, esa tarea diaria es un plugin — un conjunto empaquetado de tres skills encadenados — que activas con un solo comando en lugar de hacer cinco cosas a mano.
La tarea en sí no es complicada. Es repetitiva: el mismo sitio web, el mismo filtro, el mismo patrón de correo, el mismo documento, todos los días. Esa repetición es exactamente para lo que sirve un plugin de Claude Code. Describes el trabajo una vez, Claude Code construye la estructura, y cada ejecución futura es un comando en lugar de una explicación nueva.
Si Relaciones Internacionales no es tu rol, el mecanismo del Paso 0 y los Pasos 3 a 6 son en lo que debes enfocarte — las versiones para Legal, Marketing, RR. HH. e Ingeniería Industrial de esta misma forma aparecen en las Lecciones 4.5 a 4.7.
0Cómo Funcionan Realmente un Skill y un Plugin
Antes de que empiece la historia de Relaciones Internacionales, aquí está el mecanismo que hay debajo, explicado sin rodeos y sin el ejemplo de ningún rol en particular — las mismas dos ideas que reutiliza cada lección posterior de este módulo.
Un skill es una capacidad empaquetada: un conjunto de instrucciones, escritas para Claude en lugar de para un lector humano, guardadas en un archivo llamado SKILL.md, que Claude sigue cada vez que lo activas — normalmente con un comando /nombre. Un skill hace bien un solo trabajo: revisar una página web, redactar un correo, construir un documento.
Un plugin es varios skills relacionados empaquetados juntos bajo un solo nombre, para que puedan compartir reglas y ser instalados, actualizados o eliminados como una sola unidad. Un plugin es el contenedor correcto exactamente cuando dos o más skills necesitan coincidir en los mismos datos — la misma lista de prioridades, el mismo formato de archivo, el mismo tono — y no quieres mantener ese acuerdo a mano en tres lugares separados.
| Si tu trabajo es... | Recurre a... |
|---|---|
| Una sola tarea independiente y bien definida | Un solo skill (ve la Lección 4.5 para un ejemplo que se queda en exactamente un skill) |
| Varios pasos que comparten reglas, datos o un formato de archivo | Un plugin que agrupa varios skills (esta lección construye uno con tres) |
Todo lo demás en esta lección — el árbol de archivos, los comandos, el marketplace — es esta misma idea, hecha concreta para un trabajo específico: revisar acuerdos para el escritorio de un ministerio de relaciones exteriores.
1Crea el Proyecto de Claude Code
Cada plugin de Claude Code necesita una carpeta base. Este paso la crea y confirma que Claude Code está corriendo dentro de ella antes de describir nada.
- Crea una carpeta nueva, por ejemplo ir-agreements-tracker, en cualquier lugar donde guardes tus archivos de trabajo (no dentro de una carpeta con material confidencial sin relación — ve la advertencia de confidencialidad del Módulo 3).
- Abre esa carpeta en VS Code (File → Open Folder, o clic derecho en la carpeta → Open with Code).
- Abre la terminal integrada (Ctrl + `).
- Escribe claude y presiona Enter para iniciar Claude Code dentro de esta carpeta.
ir-agreements-tracker/ ← vacía, recién creada El prompt de Claude Code está activo en la terminal, limitado a esta carpeta únicamente.
Todavía no estás construyendo nada a mano. El Paso 2 le entrega a Claude Code una descripción completa y deja que construya la estructura.
Claude Code solo puede ver los archivos dentro de la carpeta que abres. Mantén esta carpeta dedicada a este único flujo de trabajo — no abras una carpeta superior que también contenga material sensible sin relación.
2Dicta el Flujo de Trabajo Completo
Esta es la parte inusual de esta lección: en lugar de escribir una instrucción corta e iterar, describes todo el flujo de trabajo en un solo mensaje largo, como si estuvieras orientando a un nuevo colaborador en su primer día. Puedes escribir esto, o decirlo usando el dictado integrado de tu sistema operativo (Windows: presiona Win + H para empezar a dictar en cualquier cuadro de texto, incluido el prompt de Claude Code. Mac: abre System Settings → Keyboard → Dictation para activarlo, y luego presiona Fn dos veces para empezar a dictar) — de cualquier forma, las palabras llegan al prompt como texto plano y Claude Code las trata exactamente igual.
- Lee el ejemplo de dictado de abajo. Está escrito para decirse en voz alta — oraciones simples, sin sintaxis especial.
- Adáptalo con tu sitio web real, tus temas prioritarios reales, y tus áreas responsables reales.
- Pega o dicta todo como un solo mensaje a Claude Code.
- Deja que Claude Code haga preguntas aclaratorias si las tiene, y respóndelas.
- Revisa lo que propone antes de aprobarlo — Claude Code debería describir una estructura de carpetas, un README.md y un CLAUDE.md para tu aprobación, no escribir archivos en silencio.
Ejemplo de Dictado (Adáptalo y Léelo en Voz Alta, o Pégalo Tal Cual)
Quiero configurar un proyecto que automatice algo que hago todos los días a mano. Cada mañana entro a la página pública de acuerdos del Ministerio de Comercio y reviso si se publicaron acuerdos nuevos desde ayer. Solo me interesan los acuerdos que tocan cooperación comercial, seguridad regional, o intercambio cultural — esos son los temas que sigue de cerca el canciller y el jefe de gabinete. Todo lo demás en esa página lo ignoro. Cuando encuentro un acuerdo nuevo que importa, necesito que pasen tres cosas. Primero, necesito un resumen corto del acuerdo, incluyendo su título, la contraparte, la fecha, y por qué importa para nuestros temas prioritarios. Segundo, necesito un correo de seguimiento redactado para enviar al área aquí responsable de ese tema — para acuerdos comerciales es nuestra Dirección de Comercio, para seguridad es nuestra Oficina de Cooperación en Seguridad, y para intercambio cultural es nuestra área de Asuntos Culturales. Tercero, una vez que envié ese seguimiento y recibí una respuesta del área responsable, necesito que todo eso — el resumen del acuerdo, el correo de seguimiento, su respuesta, y cualquier nota que yo agregue — quede capturado en un solo documento de Word que siga creciendo con el tiempo, con cada acuerdo nuevo agregado en un formato consistente arriba de todo, sin sobrescribir nunca lo que ya está ahí. Quiero que esto se configure como una estructura de carpetas apropiada con un README que explique qué hace y un CLAUDE.md con nuestras reglas permanentes — nuestros temas prioritarios, nuestro mapeo de áreas responsables, y nuestro tono para los correos de seguimiento. Voy a construir los pasos reales como un plugin después de que esto esté listo. Por ahora, solo deja la carpeta, el README, y el CLAUDE.md en su lugar, y pregúntame lo que necesites saber primero.
Lo Que Claude Code Debería Producir
ir-agreements-tracker/
├── README.md Explica el flujo de trabajo en lenguaje simple
├── CLAUDE.md Reglas permanentes: temas prioritarios, áreas
│ responsables, tono de correo, formato de documento
├── data/
│ └── agreements-log.md Registro continuo de cada acuerdo visto hasta ahora
├── drafts/ Los correos de seguimiento llegan aquí antes de enviarse
└── output/
└── agreements-record.docx El documento de Word en constante crecimiento (se crea en el Paso 3)
Un CLAUDE.md de muestra que Claude Code podría redactar:
# IR Agreements Tracker — Reglas Permanentes ## Temas Prioritarios Solo están dentro del alcance los acuerdos que tocan estos temas: - Cooperación comercial - Seguridad regional - Intercambio cultural ## Áreas Responsables - Cooperación comercial → Dirección de Comercio - Seguridad regional → Oficina de Cooperación en Seguridad - Intercambio cultural → Área de Asuntos Culturales ## Tono del Correo de Seguimiento Profesional, conciso y cordial. Siempre confirma la recepción y nombra el siguiente paso o documento específico que se solicita. ## Formato del Documento El acuerdo más nuevo siempre va arriba de todo en agreements-record.docx. Nunca sobrescribas ni elimines una entrada anterior.
Claude Code toma mejores decisiones estructurales con todo el contexto por adelantado que con cinco instrucciones cortas y desconectadas. Este es el mismo principio de "adelantar el contexto" de la Lección 1.2, aplicado a la configuración de un proyecto en lugar de a un solo prompt.
Claude Code debería describir este plan y preguntar antes de crear archivos (este es el comportamiento del Modo de Planificación del Módulo 3). Lee el CLAUDE.md propuesto con cuidado — se convierte en la regla permanente para cada ejecución futura.
3Construye los Tres Skills del Plugin
Con la carpeta, el README y el CLAUDE.md en su lugar, el siguiente paso empaqueta el flujo de trabajo real — la idea del plugin del Paso 0, hecha concreta.
Por Qué un Plugin, No Tres Comandos Sueltos
Tres comandos independientes y aislados — uno para revisar el sitio web, uno para redactar un correo, uno para construir el documento — podrían funcionar cada uno por su cuenta. Pero comparten la misma lista de temas prioritarios, el mismo mapeo de áreas responsables, y el mismo formato de documento. Tres comandos sueltos significan escribir (y luego corregir) esa lógica compartida tres veces, y nada impide que un cuarto comando, sin relación, se apropie de un nombre parecido después. Un plugin agrupa los tres bajo un solo nombre, con las reglas compartidas escritas una vez y referenciadas por los tres — exactamente la regla de la tabla del Paso 0.
Los tres skills de un plugin viven bajo un solo nombre de plugin y todos pueden leer el mismo archivo de reglas. Corrige una regla una vez — el mapeo de áreas responsables, por ejemplo — y cada skill que depende de ella queda corregido al mismo tiempo.
La Estructura de Archivos Objetivo
ir-agreements-tracker/
├── .claude-plugin/
│ └── marketplace.json Entrada de catálogo que apunta al plugin de abajo
├── plugins/
│ └── agreements-tracker/
│ ├── .claude-plugin/
│ │ └── plugin.json Manifiesto del plugin: nombre, versión, descripción
│ ├── skills/
│ │ ├── check-agreements/
│ │ │ └── SKILL.md /check-agreements
│ │ ├── draft-followup/
│ │ │ └── SKILL.md /draft-followup
│ │ └── build-agreement-doc/
│ │ └── SKILL.md /build-agreement-doc
│ ├── rules/
│ │ └── priority-topics.md Compartido: temas + áreas responsables
│ └── references/
│ └── document-template.md Compartido: el formato requerido del documento de Word
├── data/
│ └── agreements-log.md
├── drafts/
└── output/
└── agreements-record.docx
Skill 1 — /check-agreements
Qué decirle a Claude Code que construya:
Construye un skill llamado check-agreements. Su trabajo: obtener la página de acuerdos del Ministerio de Comercio que te doy, comparar lo que aparece contra data/agreements-log.md (el archivo de hoy, si ya existe alguno, es el historial), e identificar solo los acuerdos que todavía no están en ese registro. De esos acuerdos nuevos, quédate solo con los que coincidan con nuestros temas prioritarios en rules/priority-topics.md. Para cada uno que califique, agrégalo a data/agreements-log.md con su título, contraparte, fecha, y qué tema prioritario coincide. Repórtame una lista corta de lo nuevo y dentro del alcance — no necesita pasar nada más todavía.
Lo que esto produce (skills/check-agreements/SKILL.md, resumido):
--- name: check-agreements description: Fetch the Ministry of Trade agreements page, compare against the existing log, and append any new agreement matching a priority topic. Use when the user says "check for new agreements" or "/check-agreements." --- # check-agreements 1. Fetch the agreements page at the URL on file in CLAUDE.md. 2. Read data/agreements-log.md. If it doesn't exist, treat every agreement on the page as new — this is the first run. 3. Compare the page's list of agreements against the log. Identify only titles not already present. 4. For each new agreement, check it against rules/priority-topics.md. Discard any that match no priority topic. 5. Append each qualifying agreement to data/agreements-log.md: title, counterpart, date, matched topic, and a status of "new." 6. Report the list of newly logged agreements to the user.
Skill 2 — /draft-followup
Qué decirle a Claude Code que construya:
Construye un skill llamado draft-followup. Su trabajo: revisar data/agreements-log.md en busca de cualquier acuerdo todavía marcado como "new," y para cada uno, redactar un correo de seguimiento al área responsable listada en rules/priority-topics.md para el tema de ese acuerdo. Guardar cada borrador como un archivo en drafts/, nombrado según el acuerdo. Usar el tono descrito en CLAUDE.md. Una vez que se guarde un borrador, actualizar el estado de ese acuerdo en el registro a "follow-up drafted."
Lo que esto produce (skills/draft-followup/SKILL.md, resumido):
--- name: draft-followup description: Draft a follow-up email to the accountable department for every agreement in the log still marked "new." Use when the user says "draft follow-ups" or "/draft-followup." --- # draft-followup 1. Read data/agreements-log.md. Find every entry marked "new." 2. For each one, look up its topic's accountable department in rules/priority-topics.md. 3. Draft a short email to that department: confirm receipt of the agreement, summarize it in two sentences, and request their position or next-step input. Use the tone rule in CLAUDE.md. 4. Save the draft to drafts/<agreement-title>-followup.md. 5. Update that agreement's status in the log to "follow-up drafted." 6. Report which drafts were created and where to find them.
Skill 3 — /build-agreement-doc
Qué decirle a Claude Code que construya:
Construye un skill llamado build-agreement-doc. Su trabajo: usar el skill de docx para crear output/agreements-record.docx si todavía no existe, o actualizarlo si ya existe. Para cada acuerdo en data/agreements-log.md marcado como "follow-up drafted" o más adelante, agregar una entrada arriba de TODO el documento — nunca sobrescribir entradas anteriores — siguiendo el formato en references/document-template.md. Cada entrada debe combinar: el resumen del acuerdo, el texto del correo de seguimiento desde drafts/, la respuesta del área (yo la pegaré cuando la tenga), y cualquier nota que agregue. Si todavía no existe respuesta ni notas para un acuerdo, dejar esas secciones marcadas como "pending" en lugar de omitir la entrada.
Lo que esto produce (skills/build-agreement-doc/SKILL.md, resumido):
---
name: build-agreement-doc
description: Create or update output/agreements-record.docx, adding
each ready agreement at the top in the standard format. Use when the
user says "update the agreement doc," "add this response," or
"/build-agreement-doc."
---
# build-agreement-doc
1. If output/agreements-record.docx doesn't exist, create it using the
docx skill, following references/document-template.md.
2. For every agreement in data/agreements-log.md marked "follow-up
drafted" or later, check whether it already has an entry in the
document.
3. For any agreement missing an entry, insert one at the very top of
the document (never remove or reorder existing entries):
- Agreement summary (title, counterpart, date, topic)
- The follow-up email sent (from drafts/)
- The department's response, if the user has provided it — else
"Response: pending"
- The user's own notes, if any — else omit that section
4. Save the document and confirm it still opens correctly.
5. Report which entries were added or updated.
Pídele a Claude Code un SKILL.md, revísalo, y luego pide el siguiente. Construir los tres en una sola instrucción hace que los errores sean más difíciles de detectar y corregir.
Dentro de un skill, las referencias a archivos de rules/ o references/ usan la variable ${CLAUDE_PLUGIN_ROOT} en lugar de una ruta fija, para que el plugin siga funcionando si alguna vez se mueve o se comparte. Claude Code maneja esto automáticamente cuando escribe los archivos del skill — no necesitas escribir esa sintaxis tú mismo.
4Instala y Ejecuta tu Plugin
Un plugin sentado en una carpeta todavía no está activo. Este paso lo registra ante Claude Code como un marketplace local y lo instala, para que los tres comandos estén disponibles en cada sesión futura.
- Registra el marketplace local, apuntando a la carpeta de tu proyecto.
- Instala el plugin desde ese marketplace.
- Reinicia Claude Code.
- Corre los tres comandos en orden.
/plugin marketplace add /path/to/ir-agreements-tracker /plugin install agreements-tracker@ir-agreements-tracker
Luego, después de reiniciar Claude Code dentro de la carpeta del proyecto:
/check-agreements /draft-followup /build-agreement-doc
Lo que deberías ver:
/check-agreements → "1 acuerdo nuevo dentro del alcance: Acuerdo Marco
de Cooperación Logística Transfronteriza
(Cooperación comercial). Registrado."
/draft-followup → "1 correo de seguimiento redactado:
drafts/framework-agreement-on-cross-border-
logistics-cooperation-followup.md, dirigido a
la Dirección de Comercio."
/build-agreement-doc → "1 entrada agregada a output/agreements-record.docx.
Respuesta: pendiente — pégala cuando llegue y
vuelve a correr este skill para completarla."
Cuando el área responsable responda, pega su respuesta en tu siguiente mensaje y pídele a Claude Code que vuelva a correr /build-agreement-doc — actualiza la línea "Respuesta: pendiente" de esa entrada en lugar de crear un duplicado.
Una sola instrucción — /check-agreements — reemplaza abrir un navegador, revisar una página web a simple vista, y recordar qué ya viste ayer. Tres comandos reemplazan toda una rutina matutina.
5Opcional — Ejecútalo Automáticamente Todos los Días
Todo lo de arriba todavía requiere que escribas tres comandos cada mañana. Este paso es completamente opcional: hace que /check-agreements se ejecute solo, en un horario, sin nadie frente al teclado.
Windows
- Antes de continuar, revisa de nuevo la Lección 4.1, Paso 4 — este paso asume que ya corriste /check-agreements a mano varias veces y confías en su resultado.
- Abre Windows Task Scheduler (Programador de tareas) (búscalo en el menú de Inicio).
- Crea una tarea básica nueva, configurada para correr a diario a la hora que elijas.
- Configura la acción para correr un programa, apuntando al comando claude con el skill check-agreements como instrucción.
- Guarda la tarea.
claude -p "/check-agreements" --cwd "C:\path\to\ir-agreements-tracker"
Mac
- Antes de continuar, revisa de nuevo la Lección 4.1, Paso 4 — este paso asume que ya corriste /check-agreements a mano varias veces y confías en su resultado.
- Abre Terminal y corre crontab -e para abrir tu horario personal (se abre en el editor nano por defecto).
- Agrega una línea para una ejecución diaria a las 8am, y guarda (Ctrl+O, Enter, Ctrl+X en nano):
0 8 * * * claude -p "/check-agreements" --cwd "$HOME/ir-agreements-tracker"
Las tareas de cron en macOS suelen fallar en silencio a menos que la app de terminal que las corre tenga Full Disk Access (Acceso completo al disco). Ve a System Settings → Privacy & Security → Full Disk Access y actívalo para Terminal (o tu app de terminal) — esta es la razón más común por la que una tarea programada de Mac parece no hacer nada.
Todo en los Pasos 1 a 4 ya funciona escribiendo tú mismo tres comandos. Solo configura esto si específicamente quieres que la revisión corra sin supervisión, sin que nadie la esté viendo.
Programar solo automatiza el paso de revisión. Redactar un seguimiento y agregar una respuesta al documento todavía necesitan que una persona revise el resultado y pegue las respuestas reales — ese criterio sigue siendo tuyo, por diseño.
6Cómo Apagarlo
Todo lo que puedas encender en esta lección, deberías saber cómo apagarlo — la cuarta regla de la Lección 4.1, Paso 4.
- Para detener el horario diario en Windows: abre Windows Task Scheduler, busca la tarea por el nombre que le diste en el Paso 5, y ya sea Disable (la conserva, deja de correr) o Delete (la elimina por completo).
- Para detener el horario diario en Mac: corre crontab -e, elimina o comenta (agrega un # al inicio de) la línea que agregaste, y guarda.
- Para deshabilitar el plugin sin eliminar tus archivos: abre tu archivo de configuración de Claude Code y busca la entrada enabledPlugins de agreements-tracker; ponla en false. Los comandos del plugin dejan de aparecer, pero nada en la carpeta de tu proyecto se toca.
- Para eliminar el plugin por completo: pídele a Claude Code, "desinstala el plugin agreements-tracker," y revisa lo que propone antes de confirmar — debería eliminar el registro del plugin, no tus carpetas data/, drafts/ u output/.
agreements-log.md y agreements-record.docx son archivos normales en la carpeta de tu proyecto. Deshabilitar o eliminar el plugin no los borra — solo los comandos /check-agreements, /draft-followup y /build-agreement-doc dejan de funcionar hasta que lo reinstales.
Verificación
Si un comando no se reconoce, confirma que el plugin se instaló correctamente en el Paso 4 y que reiniciaste Claude Code después. Si el documento de Word no se construye, confirma que los skills de documentos de la Lección 4.2 están instalados.
Recursos Relacionados
- claude.ai — La plataforma de IA de Claude
- code.claude.com/docs — Documentación oficial
- support.claude.com — Centro de ayuda y solución de problemas
Lección completada
Construiste un flujo de trabajo automatizado real, de tres pasos, desde una descripción en lenguaje simple hasta un plugin funcionando, y sabes cómo apagarlo. Esta forma — revisar algo nuevo, redactar una respuesta, armar un documento — se reutiliza para cualquier rol: cambia el sitio web por un expediente judicial, la página de prensa de un competidor, o el portal de cumplimiento de un proveedor.