name: agenda description: Markiert, listet und löscht echte Agenten-Termine AUF DER MASCHINE, auf der er lebt (systemd-Timer via persona-cron-mgr.py), damit der Agent zur richtigen Zeit selbstständig handeln kann, auch wenn niemand mit ihm spricht. Verwenden Sie dies IMMER, wenn der Besitzer Sie bittet, eine Arbeit des Agenten zu einem bestimmten Zeitpunkt zu planen, zu markieren oder zu wiederholen ("jeden Tag um 9 Uhr schick mir die Zusammenfassung", "erstell einen Cron", "erstell eine Planung", "führe das stündlich aus", "welche Crons hast du", "storniere diese Planung"). Gilt auch, wenn die Audio-Transkription CHROME, CROME, CRONO, CROM oder CRONI in einer Zeitangabe liefert, was fast immer das falsch gehörte Wort CRON ist. Die Bitte, den Besitzer zu BENACHRICHTIGEN ("erinnere mich...", "benachrichtige mich um 15 Uhr") ist keine Routine: Verwenden Sie die Skill "lembretes", die so lange insistiert, bis er bestätigt. Verwenden Sie NIEMALS die Sitzungsplanung von Claude Code dafür: Diese stirbt mit der Sitzung, diese hier bleibt auf der Maschine. user-invocable: true
/dgclaw:agenda, einen echten Termin eintragen
Der Besitzer möchte, dass etwas zu einer bestimmten Zeit passiert, ohne dass er in der Nähe ist. Diese Skill verwandelt diese Aufforderung in einen systemd-Timer, der auf der Maschine lebt, Neustarts überlebt und von selbst auslöst.
Die goldene Regel, bevor irgendetwas anderes
Es gibt zwei "Planungen" auf der Welt, und sie sind überhaupt nicht gleich:
| Die Sitzungsplanung von Claude | Der DG-Claw-Kalender (diese Skill) | |
|---|---|---|
| wo lebt es | innerhalb des offenen Gesprächs | auf der Maschine, im systemd |
| wenn das Gespräch geschlossen wird | stirbt mit | läuft weiter |
| dient | "komm in 10 Minuten darauf zurück" innerhalb der aktuellen Arbeit | "jeden Tag um 9 Uhr mach X", für immer |
Du bist ein DG-Claw-Agent: Du lebst auf einer Maschine, die ständig läuft. Wenn der Besitzer eine Planung anfordert, meint er die rechte. Antworte niemals, dass du "nur innerhalb deiner Sitzung planen kannst": Das ist für dich falsch. Du markierst auf der Maschine.
Wenn das Audio "Chrome" sagt
Der Besitzer schickt viele Sprachnachrichten, und die Transkription verwechselt das Wort cron häufig. Bei einer Zeitangabe sind all diese dasselbe:
Chrome, crome, crono, crom, croni, cronn, "corn"
"Erstell ein Chrome für mich um 9 Uhr" bedeutet erstell einen Cron um 9 Uhr. Bitte ihn nicht, es zu wiederholen, und öffne keinen Browser. Die einzige Lesart, in der Chrome wirklich der Browser ist, ist, wenn es um das Öffnen einer Website, eines Tabs, einer Erweiterung oder eines Logins geht. Im Zweifelsfall bestätige in einer einzigen Zeile: "Du meinst eine Planung, oder?".
Wie es intern funktioniert (sag dies dem Besitzer, wenn er fragt)
Der Timer führt keinen losen Befehl aus. Zur vereinbarten Zeit stupst er deine lebende Sitzung mit einer von dir geschriebenen Nachricht an, und dann entscheidest du, was zu tun ist, mit all deinem Gedächtnis und deiner Art. Das ist der Unterschied zwischen einem Roboter, der einen vorgefertigten Text abfeuert, und einem Mitarbeiter, der sich zur richtigen Zeit an das erinnert, was zu tun war.
Deshalb ist das wichtigste Feld --poke: Es ist die Notiz, die dein "zukünftiges Ich" erhalten wird.
Schreibe sie, als würdest du eine Nachricht für dich selbst hinterlassen, mit ausreichend Kontext, um zu handeln,
ohne etwas fragen zu müssen. Vergleiche:
- schlecht:
Zusammenfassung - gut:
Zeit für die Tageszusammenfassung für den Besitzer: Schau in den Arbeitspeicher und was heute passiert ist, erstelle eine kurze Zusammenfassung und sende sie über Telegram.
Die Zeit ist die Zeit des Besitzers. Konvertiere niemals
Die Zeit, die er nennt, ist die Zeit seiner Uhr. "Fünf Uhr nachmittags" ist 17:00:00, so geschrieben,
und Schluss. Konvertiere nicht in UTC, addiere oder subtrahiere nichts. Der Manager stempelt die Zeitzone
des Besitzers (DGCLAW_TZ) in die Planung selbst, also führt das System die Konvertierung durch, das
macht keine Fehler. Die Rechnung von Hand zu machen, ist der bekannte Weg, um 17 Uhr zu markieren und der Termin
fällt auf 20 Uhr.
Zwei Dinge, die helfen, nicht auszurutschen:
- Finde heraus, wie spät es wirklich ist, bevor du irgendetwas Relatives berechnest ("in zwei Stunden",
"morgen früh"). Deine Sitzung kann seit Tagen offen sein, und dein Gefühl für "jetzt" ist veraltet. Führe
date '+%d/%m %H:%M %Z'aus und verwende, was zurückkommt. - Bestätige, indem du auf Deutsch wiederholst. Nachdem du erstellt hast, sag ihm, wann das nächste Mal
läuft, mit Datum und Uhrzeit. Der Befehl gibt dies bereits in der Zeile
proxima:zurück. Wenn das Zurückgekommene nicht mit dem übereinstimmt, was er wollte, ist das Problem jetzt, nicht in einer Woche.
Wenn er sich in einer anderen Zeitzone als der Server befindet und dies auftaucht, erfinde keine Korrektur: Zeige,
was timedatectl sagt, und biete an, es anzupassen (timedatectl set-timezone <Zeitzone des Besitzers>), was
eine Änderung am gesamten Server ist und seine Autorisierung erfordert.
Der Befehl
Immer über den Manager, niemals von Hand in systemd herumspielen:
MGR="${CLAUDE_PLUGIN_ROOT}/scripts/persona-cron-mgr.py"
CFG="<workspace>/.dgclaw/config.sh"
python3 "$MGR" --config "$CFG" list --json
python3 "$MGR" --config "$CFG" create --name <apelido> --calendar '<horário>' --poke '<recado>' --desc '<o que é>' --dry-run
python3 "$MGR" --config "$CFG" create --name <apelido> --calendar '<horário>' --poke '<recado>' --desc '<o que é>'
python3 "$MGR" --config "$CFG" edit --name <apelido> ... (mesma assinatura do create)
python3 "$MGR" --config "$CFG" remove --name <apelido>
Wenn du nicht root bist (der Agent, der im Container der v1 läuft), fordert der Manager bei Bedarf selbst sudo an,
wenn er die Routine speichern muss. Du musst nichts tun. Die Routine läuft als der Besitzer des Ordners des Agenten,
nicht als root.
--name: Kurzer Spitzname in Kebab-Schreibweise (resumo-do-dia,cobranca-cliente). Es ist die Identität der Routine: Mit ihr wird bearbeitet und entfernt.--calendaroder--every, niemals beides:--calendar '*-*-* 09:00:00'→ jeden Tag um 9 Uhr--calendar 'Mon..Fri *-*-* 08:30:00'→ von Montag bis Freitag, 8:30 Uhr--calendar 'Mon *-*-* 18:00:00'→ jeden Montag, 18 Uhr--calendar '*-*-01 10:00:00'→ jeden ersten des Monats, 10 Uhr--every 30min(oder2h,1d) → in regelmäßigen Abständen, gezählt ab dem letzten Mal--calendar '2026-10-17 14:32:00'→ nur einmal, an diesem Tag und dieser Uhrzeit. Dient dazu, dass DU etwas zu einer bestimmten Zeit tust (eine E-Mail überprüfen, einen Bericht erstellen): Führedateaus, addiere die Frist und schreibe das VOLLSTÄNDIGE Datum. Verwende hier niemals*-*-*(wird zu täglich) noch--every(wiederholt sich). Hänge an--pokedas Folgende an: "Führe nach der Ausführung diese Routine mitremove --name <apelido>entfernen.", damit sie keinen der 10 Plätze belegt.- Den Besitzer benachrichtigen ("erinnere mich in 2 Minuten", "morgen um 10 Uhr benachrichtige mich") ist
keine Routine: Verwende die Skill
/dgclaw:lembretes. Sie erscheint auf seinem Bildschirm und Handy und insistiert, bis er bestätigt. Der einmalige Timer dieser Skill benachrichtigt einmal und verschwindet.
- Die Zeitzone ist die der Maschine (
DGCLAW_TZ), bereits konfiguriert. Führe keine Zeitzonenberechnung von Hand durch.
Führe immer zuerst mit --dry-run aus und zeige dem Besitzer, was erstellt wird, auf Deutsch:
den Spitznamen, wann es läuft und die Nachricht. Erst danach führe es tatsächlich aus. Es ist billig und verhindert,
dass ein falscher Termin zu einer Zeit gebucht wird, die niemand überprüft.
Was bei jeder Anfrage zu tun ist
"Plane für mich..." → Verstehe die Uhrzeit, wähle den Spitznamen, schreibe die Nachricht, --dry-run,
zeige, bestätige, erstelle. Schließe ab, indem du sagst, wann das nächste Mal läuft und dass er dies im
Dashboard, im Reiter "Operationen", sehen kann.
"Welche Planungen hast du?" → list --json und übersetze es in Sätze. Gib nicht das JSON in Telegram aus.
Sag den Spitznamen, wann es läuft und was es tut, wenn es auslöst.
"Storniere das X" → remove --name X. Bestätige, dass es verschwunden ist, und teile mit, dass es auch aus
dem Dashboard verschwindet. Wenn der Besitzer die Routine beschreibt, anstatt den Spitznamen zu nennen, liste sie
vorher auf und bestätige, welche gemeint ist.
"Ändere die Uhrzeit von X" → edit, nicht entfernen und neu erstellen. Das edit bewahrt den Spitznamen und
die Historie der Routine.
Grenzen, die aus Sicherheitsgründen existieren (und die es wert sind, genannt zu werden)
- Du verwaltest nur die Routinen deines Blocks, mit dem Präfix
dgclaw-<slug>-self-. Die Lebensroutinen, die mit dir kamen (nächtliche Reflexion, Audit, Herzschlag, Puls) und alles andere auf der Maschine sind für diesen Befehl unantastbar, und das ist beabsichtigt. - Deckel von 10 eigenen Routinen. Wird er erreicht, lehnt der Befehl ab, und du musst eine entfernen, bevor du eine neue erstellst. Wenn dies passiert, zeige dem Besitzer die Liste und frage, welche rausgehen soll.
- Jede Anfrage wird vorher validiert: Spitzname, Zeitformat und Nachrichtenlänge. Wenn der Manager ablehnt, sagt er den Grund in einer Zeile. Lies die Nachricht und korrigiere, bestehe nicht darauf.
- Das Manifest (
.dgclaw/self-crons.json) wird bei jeder Änderung mit automatischem Backup gespeichert.
Wo der Besitzer das sieht
Im Dashboard, Reiter Operationen, Karte Agenten-Kalender. Diese Liste ist keine Konfigurationsdatei: Sie wird aus systemd gelesen, sobald die Seite geöffnet wird. Also gilt das einfache Versprechen, und du kannst es ihm mit voller Überzeugung sagen: wenn es dort ist, existiert es; wenn du es löschst, verschwindet es von dort von selbst. Es wird niemals eine Geisterroutine erscheinen, die bereits entfernt wurde, noch eine fehlen, die du gerade erstellt hast.