CommunityProgramación y desarrollogithub.com

Already Told You: automatizar un trabajo

Selecciona un trabajo repetitivo de la sección D de tu informe Already Told You y configura su automatización contigo: una skill, una skill con conexión a una aplicación (MCP), o una ejecución programada, siempre con un paso de aprobación humana antes de enviar, publicar, pagar o eliminar algo.

¿Qué es Already Told You: automatizar un trabajo?

Esta skill guía al usuario paso a paso para automatizar un trabajo repetitivo identificado en el informe 'Already Told You', evitando cambios no autorizados fuera del directorio `~/already-told-you/`. Comienza leyendo el archivo `findings.json` más reciente y mostrando la sección D como una lista numerada; si no existe, indica al usuario ejecutar primero `/already-told-you:run`. Luego, acuerda con el usuario la forma de automatización adecuada: skill, skill + MCP, schedule (desktop/routine/cron), siempre preguntando solo lo necesario y terminando con un paso de aprobación humano para cualquier acción que envíe, publique, pague o elimine. La skill puede partir de un borrador en la sección C del informe o crearse desde cero, instalándose mediante un instalador empaquetado sin escribir directamente en la carpeta de skills. Finalmente, según el tipo elegido, conecta la aplicación (MCP), programa la ejecución (desktop, routine o cron en macOS/Linux), prueba la skill una vez si el usuario acepta, y resume lo configurado, los ahorros de tiempo y cómo desactivarlo. Soporta Claude Code, Claude Code Desktop, rutinas en la nube de Anthropic y cron/launchd, utilizando solo las opciones documentadas en code.claude.com/docs.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jsahani/already-told-you/tree/HEAD/skills/automate

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Already Told You: automatizar un trabajo?

Trabaja un trabajo a la vez, en lenguaje sencillo, y confirma cada paso con el usuario. Nada fuera de ~/already-told-you/ se crea o modifica sin un sí.

  1. Elige el trabajo. Lee el archivo ~/already-told-you/<YYYY-MM-DD>/findings.json más reciente (Glob). Si no hay ninguno → "Ejecuta /already-told-you:run primero" y detente. Muestra la sección D como una lista numerada: título, horas/semana actuales → minutos después, método (how) sugerido. Usa $ARGUMENTS si nombra uno; si no, pregunta cuál.
  2. Acuerda la forma. Reformula el trabajo como: disparador (cuándo / quién lo inicia) → qué hace Claude → qué sale → dónde aprueba el humano. Confirma el tipo de automatización usando las opciones siguientes; cámbialo si el usuario lo prefiere. Pregunta solo lo que falta (qué carpeta, qué aplicación, a qué hora, dónde debe ir la salida).
  3. Crea la skill. Toda automatización se ejecuta a través de una skill. Si la sección C redactó una para este trabajo, comienza desde <report>/skills/<name>/SKILL.md; de lo contrario, escribe un nuevo borrador allí con las mismas reglas (frontmatter name + description citando las palabras del usuario; pasos numerados; último paso = aprobación). Muéstralo, refínalo con el usuario, luego instálalo con el instalador empaquetado, nunca escribiendo directamente en una carpeta de skills: pregunta dónde (~/.claude/skills = todos los proyectos, ${CLAUDE_PROJECT_DIR}/.claude/skills = este proyecto), ejecuta python3 ${CLAUDE_PLUGIN_ROOT}/scripts/install_skill.py --check --src <report>/skills/<name> --dest <dest>, y tras un sí python3 ${CLAUDE_PLUGIN_ROOT}/scripts/install_skill.py --install --src <report>/skills/<name> --dest <dest> (pide permiso y nunca reemplaza una skill existente a menos que el usuario acepte --force). El paso de aprobación: si el trabajo envía, publica, publica contenido, paga o elimina, la skill prepara el resultado y se detiene. Las ejecuciones programadas no tienen a quién preguntar, así que en una ejecución programada la skill solo escribe un borrador en una carpeta (o un borrador en la aplicación, por ejemplo, un borrador de correo) y el usuario lo aprueba después. Nunca permitas que una ejecución programada envíe.
  4. Conéctalo / prográmalo - solo lo que necesita el tipo elegido:
    • skill + MCP: nombra la conexión de aplicación que el trabajo necesita. Si no está conectada, dile al usuario cómo (claude mcp add ... según la documentación de la aplicación, /mcp para verificar, o un conector de claude.ai). Nunca pegues secretos en archivos o en el chat; las claves API pertenecen al almacén secreto o entorno del usuario.
    • schedule (desktop): da los pasos detallados para la aplicación Claude Code Desktop → Rutinas → nueva tarea local, con el prompt exacto para pegar (/<skill-name> más cualquier detalle), la programación, la carpeta del proyecto y la elección de permisos. Recuerda: solo se ejecuta mientras la aplicación esté abierta y el ordenador encendido.
    • schedule (routine): da la línea exacta para escribir, por ejemplo, /schedule every Monday at 9am, run /<skill-name> ..., y di que se ejecuta en la nube sobre una copia fresca de un repositorio de GitHub con conectores, sin archivos locales.
    • schedule (cron) en macOS: completa la plantilla launchd a continuación. Encuentra la ruta de claude con command -v claude (pregunta antes de ejecutar). Escribe el plist completo en ~/already-told-you/automation/<label>.plist primero y muéstralo. Después de un sí, cópialo a ~/Library/LaunchAgents/ y cárgalo con launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/<label>.plist (cada comando pide permiso). --allowedTools debe listar solo lo que el trabajo necesita, nunca --dangerously-skip-permissions. En Linux, muestra la línea crontab equivalente para que el usuario la agregue con crontab -e.
  5. Pruébalo una vez si el usuario acepta: ejecuta la skill manualmente ahora y muestra el borrador que produce.
  6. Finaliza. Resume qué se configuró, dónde ocurre la aprobación, el tiempo que debería ahorrar (horas/semana actuales → minutos después, según el informe), y exactamente cómo desactivarlo.

Opciones de automatización (verificadas con code.claude.com/docs, octubre 2026 - usa solo estas)

Elige la opción más ligera que realice completamente el trabajo. El campo how toma uno de: skill, skill + MCP, schedule (desktop), schedule (routine), schedule (cron).

  1. skill - el trabajo es la misma receta cada vez, iniciada por el usuario. Una skill en ~/.claude/skills/<name>/ (todos los proyectos) o <project>/.claude/skills/<name>/ (un proyecto) convierte un explicar-y-dirigir de 15 minutos en un comando /<name>. Generalmente también redactada en la sección C.
  2. skill + MCP - la receta necesita otra aplicación (correo, calendario, Notion, Slack, una base de datos...). La skill llama a esa aplicación a través de un servidor MCP. El usuario la conecta con claude mcp add ... o /mcp, o usa un conector de claude.ai. Solo nombra una aplicación específica si el historial muestra que la usa.
  3. schedule (desktop) - debe ocurrir en un ritmo y necesita archivos locales. Las tareas programadas de escritorio en la aplicación Claude Code Desktop (página Rutinas → nueva tarea local) inician una nueva sesión a la hora y frecuencia elegidas. Se ejecuta en la máquina del usuario, solo mientras la aplicación esté abierta y el ordenador encendido; los permisos se configuran por tarea.
  4. schedule (routine) - debe ocurrir en un ritmo y no necesita archivos locales (funciona sobre un repositorio de GitHub o a través de conectores). Las rutinas (Routines) se ejecutan en la nube de Anthropic incluso cuando el portátil está cerrado; crea una con /schedule en Claude Code (por ejemplo, /schedule every Monday at 9am, ...) o en claude.ai/code/routines. Vista previa de investigación, planes Pro/Max/Team/Enterprise, intervalo mínimo una hora.
  5. schedule (cron) - alternativa sin la aplicación de escritorio: launchd de macOS (o cron) ejecuta claude -p "/<skill-name>" sin interfaz gráfica a una hora fija, con --allowedTools listando solo lo que el trabajo necesita.

No es una opción para un trabajo recurrente: /loop y las tareas cron de sesión solo se ejecutan mientras una sesión de Claude Code está abierta, y caducan después de siete días.

Regla de aprobación para toda automatización: cualquier cosa que envíe, publique, pague o elimine se detiene para un paso de aprobación humana (la ejecución prepara un borrador o una vista previa; el usuario dice sí antes de que salga).


Plantilla launchd (schedule (cron) en macOS)

Completa cada {{...}} y guárdalo como <label>.plist:

  • {{label}} - por ejemplo, com.already-told-you.weekly-client-update
  • {{claude}} - ruta absoluta impresa por command -v claude
  • {{skill}} - el nombre de la skill instalada
  • {{tools}} - solo lo que el trabajo necesita, por ejemplo, Read,Write(~/drafts/**),Bash(git log *)
  • {{project}} - carpeta absoluta del proyecto donde trabaja el trabajo
  • {{weekday}} / {{hour}} / {{minute}} - 0 = domingo; hora 0-23
  • {{home}} - la carpeta personal del usuario escrita completa (launchd no expande ~)

La primera línea del archivo debe ser la declaración XML, seguida de la línea DOCTYPE de plist de Apple (PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"), luego:

<plist version="1.0">
<dict>
  <key>Label</key><string>{{label}}</string>
  <key>WorkingDirectory</key><string>{{project}}</string>
  <key>ProgramArguments</key>
  <array>
    <string>{{claude}}</string>
    <string>-p</string>
    <string>/{{skill}} (ejecución programada: preparar solo borradores, nunca enviar, publicar, pagar o eliminar)</string>
    <string>--allowedTools</string>
    <string>{{tools}}</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Weekday</key><integer>{{weekday}}</integer>
    <key>Hour</key><integer>{{hour}}</integer>
    <key>Minute</key><integer>{{minute}}</integer>
  </dict>
  <key>StandardOutPath</key><string>{{home}}/already-told-you/automation/{{label}}.log</string>
  <key>StandardErrorPath</key><string>{{home}}/already-told-you/automation/{{label}}.log</string>
</dict>
</plist>

Verifica el archivo terminado con plutil -lint <file> antes de mostrarlo al usuario.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados