¿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í.
- Elige el trabajo. Lee el archivo
~/already-told-you/<YYYY-MM-DD>/findings.jsonmá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$ARGUMENTSsi nombra uno; si no, pregunta cuál. - 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).
- 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 (frontmattername+descriptioncitando 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), ejecutapython3 ${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. - 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,/mcppara 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 concommand -v claude(pregunta antes de ejecutar). Escribe el plist completo en~/already-told-you/automation/<label>.plistprimero y muéstralo. Después de un sí, cópialo a~/Library/LaunchAgents/y cárgalo conlaunchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/<label>.plist(cada comando pide permiso).--allowedToolsdebe 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 concrontab -e.
- Pruébalo una vez si el usuario acepta: ejecuta la skill manualmente ahora y muestra el borrador que produce.
- 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).
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.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 conclaude 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.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.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/scheduleen 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.schedule (cron)- alternativa sin la aplicación de escritorio:launchdde macOS (ocron) ejecutaclaude -p "/<skill-name>"sin interfaz gráfica a una hora fija, con--allowedToolslistando 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 porcommand -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.