CommunityCodierung & Entwicklunggithub.com

jsahani/already-told-you

Wählt einen wiederholten Job aus Abschnitt D Ihres Already-Told-You-Berichts aus und richtet dessen Automatisierung mit Ihnen ein – sei es ein Skill, ein Skill plus App-Verbindung (MCP) oder ein planmäßiger Lauf – immer mit einem abschließenden menschlichen Genehmigungsschritt, bevor etwas gesendet, veröffentlicht, bezahlt oder gelöscht wird.

Was ist already-told-you?

Diese Fähigkeit automatisiert repetitive Aufgaben aus dem „Already Told You“-Report, indem sie einen Job aus Abschnitt D auswählt und Schritt für Schritt eine Automatisierungslösung erstellt. Sie unterstützt verschiedene Automatisierungstypen: einen reinen Skill (für manuelles Starten), Skill + MCP (für App-Integrationen wie E-Mail oder Kalender) sowie geplante Läufe (Desktop, Routine in der Cloud oder Cron). Dabei werden keine Dateien außerhalb des `~/already-told-you/`-Verzeichnisses ohne ausdrückliche Zustimmung des Benutzers erstellt oder geändert. Jeder Automatisierungstyp endet mit einem menschlichen Genehmigungsschritt, bevor Aktionen wie Senden, Veröffentlichen, Bezahlen oder Löschen ausgeführt werden – bei geplanten Läufen wird nur ein Entwurf erstellt, der später manuell freigegeben werden muss. Die Fähigkeit ist für Claude Code entwickelt und nutzt das `install_skill.py`-Skript aus dem Plugin-Ordner zur Installation.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Already Told You: einen Job automatisieren

Arbeiten Sie einen Job nach dem anderen durch, in einfachem Deutsch, und bestätigen Sie jeden Schritt mit dem Benutzer. Nichts außerhalb von ~/already-told-you/ wird ohne ein „Ja“ erstellt oder geändert.

  1. Den Job auswählen. Lesen Sie die neueste ~/already-told-you/<YYYY-MM-DD>/findings.json (Glob). Keine vorhanden → „Führen Sie zuerst /already-told-you:run aus“ und anhalten. Zeigen Sie Abschnitt D als nummerierte Liste an: Titel, Stunden/Woche jetzt → Minuten danach, vorgeschlagenes how. Verwenden Sie $ARGUMENTS, falls es einen benennt; andernfalls fragen Sie, welcher.
  2. Die Form vereinbaren. Formulieren Sie den Job neu als: Auslöser (wann/wer startet) → was Claude tut → was herauskommt → wo der Mensch genehmigt. Bestätigen Sie den Automatisierungstyp mit den untenstehenden Optionen; ändern Sie ihn, wenn der Benutzer einen anderen bevorzugt. Fragen Sie nur, was fehlt (welcher Ordner, welche App, welche Uhrzeit, wohin die Ausgabe soll).
  3. Den Skill erstellen. Jede Automatisierung läuft über einen Skill. Falls Abschnitt C einen für diesen Job entworfen hat, beginnen Sie mit <report>/skills/<name>/SKILL.md; andernfalls schreiben Sie dort einen neuen Entwurf mit denselben Regeln (Frontmatter: name + description mit den Worten des Benutzers; nummerierte Schritte; letzter Schritt = Genehmigung). Zeigen Sie ihn, verfeinern Sie ihn mit dem Benutzer, installieren Sie ihn dann mit dem gebündelten Installer, niemals indem Sie selbst in einen Skills-Ordner schreiben: Fragen Sie nach dem Ziel (~/.claude/skills = alle Projekte, ${CLAUDE_PROJECT_DIR}/.claude/skills = dieses Projekt), führen Sie python3 ${CLAUDE_PLUGIN_ROOT}/scripts/install_skill.py --check --src <report>/skills/<name> --dest <dest> aus, und nach einem Ja python3 ${CLAUDE_PLUGIN_ROOT}/scripts/install_skill.py --install --src <report>/skills/<name> --dest <dest> (es fragt nach Erlaubnis und ersetzt einen vorhandenen Skill nur, wenn der Benutzer --force zustimmt). Der Genehmigungsschritt: Wenn der Job sendet, veröffentlicht, postet, bezahlt oder löscht, bereitet der Skill das Ergebnis vor und stoppt. Geplante Läufe haben niemanden, der fragt, daher schreibt der Skill bei einem geplanten Lauf nur einen Entwurf in einen Ordner (oder einen Entwurf in der App, z.B. einen E-Mail-Entwurf) und der Benutzer genehmigt ihn später. Lassen Sie niemals zu, dass ein geplanter Lauf sendet.
  4. Verbinden / planen – nur was der gewählte Typ benötigt:
    • skill + MCP: Nennen Sie die App-Verbindung, die der Job braucht. Wenn sie nicht verbunden ist, sagen Sie dem Benutzer, wie (claude mcp add ... aus der App-Dokumentation, /mcp zum Überprüfen oder ein claude.ai-Connector). Fügen Sie niemals Geheimnisse in Dateien oder Chat ein; API-Schlüssel gehören in den eigenen Secret-Store oder die Umgebung des Benutzers.
    • planmäßig (Desktop): Geben Sie Schritt-für-Schritt-Klicks für die Claude Code Desktop-App → Routinen → neue lokale Aufgabe, mit dem genauen Prompt zum Einfügen (/<skill-name> plus Details), dem Zeitplan, dem Projektordner und der Berechtigungswahl. Erinnern Sie: Es läuft nur, während die App geöffnet und der Computer wach ist.
    • planmäßig (Routine): Geben Sie die genaue Zeile zum Tippen, z.B. /schedule jeden Montag um 9 Uhr, führe /<skill-name> ... aus, und sagen Sie, dass es in der Cloud auf einer frischen Kopie eines GitHub-Repos mit Connectors läuft – keine lokalen Dateien.
    • planmäßig (Cron) auf macOS: Füllen Sie die untenstehende launchd-Vorlage aus. Finden Sie den claude-Pfad mit command -v claude (vor dem Ausführen fragen). Schreiben Sie die gefüllte plist zuerst nach ~/already-told-you/automation/<label>.plist und zeigen Sie sie. Nach einem Ja kopieren Sie sie nach ~/Library/LaunchAgents/ und laden Sie sie mit launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/<label>.plist (jeder Befehl fragt nach Erlaubnis). --allowedTools darin muss nur das auflisten, was der Job braucht – niemals --dangerously-skip-permissions. Auf Linux zeigen Sie die entsprechende crontab-Zeile, die der Benutzer mit crontab -e hinzufügen kann.
  5. Einmal ausführen, wenn der Benutzer zustimmt: Führen Sie den Skill jetzt von Hand aus und zeigen Sie den erstellten Entwurf.
  6. Abschließen. Fassen Sie zusammen, was eingerichtet wurde, wo die Genehmigung stattfindet, die Zeitersparnis (Stunden/Woche jetzt → Minuten danach, aus dem Bericht) und genau, wie man es ausschaltet.

Automatisierungsoptionen (geprüft gegen code.claude.com/docs, Oktober 2026 – nur diese verwenden)

Wählen Sie die leichteste Option, die den Job vollständig erledigt. Das Feld how akzeptiert einen der Werte: skill, skill + MCP, planmäßig (Desktop), planmäßig (Routine), planmäßig (Cron).

  1. skill – der Job ist jedes Mal das gleiche Rezept, vom Benutzer gestartet. Ein Skill in ~/.claude/skills/<name>/ (alle Projekte) oder <project>/.claude/skills/<name>/ (ein Projekt) verwandelt eine 15-minütige Erklärung-und-Steuerung in einen einzigen /<name>-Befehl. Normalerweise auch in Abschnitt C entworfen.
  2. skill + MCP – das Rezept benötigt eine andere App (E-Mail, Kalender, Notion, Slack, eine Datenbank…). Der Skill ruft diese App über einen MCP-Server auf. Der Benutzer verbindet sie mit claude mcp add ... oder /mcp oder verwendet einen claude.ai-Connector. Nennen Sie nur eine bestimmte App, wenn der Verlauf zeigt, dass der Benutzer sie verwendet.
  3. planmäßig (Desktop) – es soll nach einem Rhythmus stattfinden und benötigt lokale Dateien. Desktop-Planungsaufgaben in der Claude Code Desktop-App (Routinen-Seite → neue lokale Aufgabe) starten eine neue Sitzung zur gewählten Zeit und Häufigkeit. Läuft auf dem Rechner des Benutzers, nur während die App geöffnet und der Computer wach ist; Berechtigungen werden pro Aufgabe festgelegt.
  4. planmäßig (Routine) – es soll nach einem Rhythmus stattfinden und benötigt keine lokalen Dateien (es arbeitet auf einem GitHub-Repo oder über Connectors). Routinen laufen in der Anthropic-Cloud, auch wenn der Laptop zugeklappt ist; eine wird mit /schedule in Claude Code erstellt (z.B. /schedule jeden Montag um 9 Uhr, ...) oder unter claude.ai/code/routines. Research Preview, Pro/Max/Team/Enterprise-Pläne, Mindestintervall eine Stunde.
  5. planmäßig (Cron) – Fallback ohne Desktop-App: macOS launchd (oder cron) führt claude -p "/<skill-name>" headless zu einer festgelegten Zeit aus, mit --allowedTools, das nur das auflistet, was der Job braucht.

Keine Option für einen wiederkehrenden Job: /loop und Sitzungs-Cron-Aufgaben laufen nur, während eine Claude-Code-Sitzung geöffnet ist, und verfallen nach sieben Tagen.

Genehmigungsregel für jede Automatisierung: Alles, was sendet, veröffentlicht, bezahlt oder löscht, stoppt für einen menschlichen Genehmigungsschritt (der Lauf erstellt einen Entwurf oder eine Vorschau; der Benutzer sagt Ja, bevor es rausgeht).


launchd-Vorlage (planmäßig (Cron) auf macOS)

Füllen Sie jedes {{...}} aus und speichern Sie es als <label>.plist:

  • {{label}} – z.B. com.already-told-you.wöchentliches-kundenupdate
  • {{claude}} – absoluter Pfad, ausgegeben von command -v claude
  • {{skill}} – der installierte Skill-Name
  • {{tools}} – nur was der Job braucht, z.B. Read,Write(~/drafts/**),Bash(git log *)
  • {{project}} – absoluter Projektordner, in dem der Job arbeitet
  • {{weekday}} / {{hour}} / {{minute}} – 0 = Sonntag; Stunde 0–23
  • {{home}} – das Benutzerverzeichnis voll ausgeschrieben (launchd expandiert ~ nicht)

Die erste Zeile der Datei muss die XML-Deklaration sein, gefolgt von der Apple-Plist-DOCTYPE-Zeile (PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"), dann:

<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}} (geplanter Lauf: nur Entwürfe vorbereiten, niemals senden, veröffentlichen, bezahlen oder löschen)</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>

Überprüfen Sie die fertige Datei mit plutil -lint <datei>, bevor Sie sie dem Benutzer zeigen.

Individual skills in this repo

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

Verwandte Skills