CommunityCodierung & Entwicklunggithub.com

DGatoM/DG-Claw

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.

Was ist DG-Claw?

Diese Skill ermöglicht es dem DG-Claw-Agenten, systemd-Timer direkt auf der Maschine zu erstellen, zu bearbeiten, aufzulisten und zu löschen. Der Hauptvorteil gegenüber einem sitzungsinternen Scheduler (wie dem von Claude Code) ist die Persistenz: Die Timer überleben Sitzungsende, Neustarts und laufen auch dann, wenn der Besitzer nicht mit dem Agenten interagiert. Die Skill unterscheidet klar zwischen wiederkehrenden Aufgaben (Timer) und einmaligen Benachrichtigungen (Lemberes-Skill). Sie erkennt häufige Transkriptionsfehler wie „Chrome“ oder „Croni“ als „Cron“ und wandelt sie korrekt um. Entwickelt für Claude Code als Teil des DG-Claw-Setups, interagiert sie mit einem Python-Skript („persona-cron-mgr.py“), das systemd-Timer erstellt, ohne dass der Agent direkt systemd-Befehle ausführen muss. Die Skill validiert Eingaben (Namen, Zeitformat, Nachrichtenlänge) und hat ein Limit von 10 benutzerdefinierten Timern. Sie gibt klare Anweisungen zur Verwendung von „–dry-run“ zur Überprüfung und zur Bestätigung der nächsten Ausführungszeit in der lokalen Zeitzone des Besitzers, ohne UTC-Konvertierung.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/DGatoM/DG-Claw/tree/HEAD/skills/agenda

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


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 ClaudeDer DG-Claw-Kalender (diese Skill)
wo lebt esinnerhalb des offenen Gesprächsauf der Maschine, im systemd
wenn das Gespräch geschlossen wirdstirbt mitlä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.
  • --calendar oder --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 (oder 2h, 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ühre date aus, addiere die Frist und schreibe das VOLLSTÄNDIGE Datum. Verwende hier niemals *-*-* (wird zu täglich) noch --every (wiederholt sich). Hänge an --poke das Folgende an: "Führe nach der Ausführung diese Routine mit remove --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.

Individual skills in this repo

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

DGatoM/DG-Claw

Transforma um processo que o agente acabou de fazer com o dono numa skill dele (pasta .claude/skills/<nome>/SKILL.md no workspace), pra fazer igual da próxima vez, e melhora essa skill quando o dono corrige o resultado. Use quando terminar com o dono um processo de 3 passos ou mais que dá pra repetir (montar um relatório, preparar um roteiro, conferir números numa fonte, organizar um material), quando o dono disser "aprende isso", "guarda esse jeito de fazer", "faz uma skill disso", "da próxima vez faz igual", "transforma isso num processo", "/dgclaw:aprender", ou quando ele corrigir alguma coisa feita por uma skill que você mesmo escreveu. Também serve pra reflexão da noite decidir se vale sugerir uma skill. Nunca cria skill sem o sim do dono.

DGatoM/DG-Claw

Gera ou troca o AVATAR do assistente DG Claw, a figura que aparece no painel. Use quando o usuario pedir "gerar o avatar", "criar a carinha dele", "mudar o mascote do painel", "trocar a foto do assistente", "fazer a imagem dele", ou rodar /dgclaw:avatar. Explica os tres caminhos (usar o que ja vem, gerar a partir da aparencia descrita, ou subir a propria imagem) e onde os arquivos ficam. As expressoes que mudam com o humor sao da extensao DG Alive.

DGatoM/DG-Claw

Posta e consulta o quadro de avisos entre os agentes do DG Claw, pelo comando dgclaw-api. Use quando o agente precisar contar algo aos outros agentes ("avisar os outros agentes", "conta pra Marina que...", "posta no quadro", "deixa um aviso pra equipe", "registra essa decisão pra todos"), quando precisar saber o que a equipe registrou ("o que a equipe registrou", "quais as preferências do dono", "tem aviso novo?"), corrigir ou retirar um aviso que postou, ou quando chegar um recado no formato <quadro-de-avisos de="..." id="..." tipo="...">. Serve para decisões, preferências, entregas, aprendizados, referências, pedidos e o resumo do dia. Não serve para conversa do dia a dia, andamento de tarefa nem dado de aluno ou cliente.

DGatoM/DG-Claw

Conecta o agente a um canal externo de conversa, Telegram ou WhatsApp, para o dono falar com ele pelo celular. Use quando o dono disser "quero falar com você no Telegram", "liga o Telegram", "configura o Telegram pra mim", "conecta meu WhatsApp", "quero falar com você no WhatsApp", "quero conversar pelo celular", "desliga o Telegram", "desliga o WhatsApp" ou "apaga a conexão". Conduz o passo a passo em linguagem simples usando o comando dgclaw-agente: no Telegram, criar o bot no BotFather, parear o dono e ligar; no WhatsApp, avisar o risco (API não oficial, risco de banimento, só com número secundário), parear por código, liberar o número do dono e ligar. Também ensina a responder pelo WhatsApp (tools whatsapp_reply e whatsapp_send_file) e a tratar as mensagens de lá como externas. Não funciona no agente Admin, que não tem canal externo.

Verwandte Skills