CommunityCoding & Developmentgithub.com

DGatoM/DG-Claw

Marca, lista e desmarca compromissos de verdade do agente NA MAQUINA onde ele mora (timers do systemd, via persona-cron-mgr.py), pra ele agir sozinho na hora certa mesmo com ninguem falando com ele. Use SEMPRE que o dono pedir pra agendar, marcar ou repetir um trabalho DO AGENTE num horario ("todo dia as 9h me manda o resumo", "cria um cron", "cria um agendamento", "roda isso de hora em hora", "quais crons voce tem", "cancela aquele agendamento"). Vale tambem quando a transcricao de audio trouxer CHROME, CROME, CRONO, CROM ou CRONI num pedido de horario, que e quase sempre a palavra CRON mal ouvida. Pedido para AVISAR o dono ("me lembra...", "me avisa as 15h") nao e rotina: use a skill lembretes, que insiste ate ele confirmar. NUNCA use o agendamento da sessao do Claude Code pra isso: aquilo morre com a sessao, isto fica na maquina.

What is DG-Claw?

DG-Claw is a Claude Code agent skill that marca, lista e desmarca compromissos de verdade do agente NA MAQUINA onde ele mora (timers do systemd, via persona-cron-mgr.py), pra ele agir sozinho na hora certa mesmo com ninguem falando com ele. Use SEMPRE que o dono pedir pra agendar, marcar ou repetir um trabalho DO AGENTE num horario ("todo dia as 9h me manda o resumo", "cria um cron", "cria um agendamento", "roda isso de hora em hora", "quais crons voce tem", "cancela aquele agendamento"). Vale tambem quando a transcricao de audio trouxer CHROME, CROME, CRONO, CROM ou CRONI num pedido de horario, que e quase sempre a palavra CRON mal ouvida. Pedido para AVISAR o dono ("me lembra...", "me avisa as 15h") nao e rotina: use a skill lembretes, que insiste ate ele confirmar. NUNCA use o agendamento da sessao do Claude Code pra isso: aquilo morre com a sessao, isto fica na maquina.

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

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

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation


name: agenda description: Marca, lista e desmarca compromissos de verdade do agente NA MAQUINA onde ele mora (timers do systemd, via persona-cron-mgr.py), pra ele agir sozinho na hora certa mesmo com ninguem falando com ele. Use SEMPRE que o dono pedir pra agendar, marcar ou repetir um trabalho DO AGENTE num horario ("todo dia as 9h me manda o resumo", "cria um cron", "cria um agendamento", "roda isso de hora em hora", "quais crons voce tem", "cancela aquele agendamento"). Vale tambem quando a transcricao de audio trouxer CHROME, CROME, CRONO, CROM ou CRONI num pedido de horario, que e quase sempre a palavra CRON mal ouvida. Pedido para AVISAR o dono ("me lembra...", "me avisa as 15h") nao e rotina: use a skill lembretes, que insiste ate ele confirmar. NUNCA use o agendamento da sessao do Claude Code pra isso: aquilo morre com a sessao, isto fica na maquina. user-invocable: true

/dgclaw:agenda, marcar compromisso de verdade

O dono quer que alguma coisa aconteça num horário, sem ele estar por perto. Esta skill transforma esse pedido num timer do systemd, que vive na máquina, sobrevive a reinício e dispara sozinho.

A regra de ouro, antes de qualquer coisa

Existem dois "agendamentos" no mundo, e eles não se parecem em nada:

O agendamento da sessão do ClaudeA agenda do DG Claw (esta skill)
onde vivedentro da conversa abertana máquina, no systemd
quando a conversa fechamorre juntocontinua
serve pra"daqui a 10 minutos volte nisso" dentro do trabalho de agora"todo dia às 9h faça X", pra sempre

Você é um agente DG Claw: você mora numa máquina que fica ligada. Quando o dono pede um agendamento, ele está pedindo o da direita. Nunca responda que "só consigo agendar dentro da minha sessão": isso é falso pra você. Você marca na máquina.

Quando o áudio disser "Chrome"

O dono manda muita mensagem de voz, e a transcrição erra a palavra cron com frequência. Num pedido de horário, todas estas são a mesma coisa:

Chrome, crome, crono, crom, croni, cronn, "corn"

"Cria um Chrome pra mim das 9h" é cria um cron das 9h. Não peça pra ele repetir e não vá abrir navegador. A única leitura em que Chrome é navegador mesmo é quando o assunto é abrir site, aba, extensão ou login. Na dúvida entre as duas, confirme numa linha só: "você quer dizer um agendamento, certo?".

Como funciona por dentro (diga isso ao dono se ele perguntar)

O timer não executa comando solto. Na hora marcada, ele cutuca a sua sessão viva com um recado escrito por você, e aí você decide o que fazer, com toda a sua memória e o seu jeito. É a diferença entre um robô que dispara texto pronto e um funcionário que na hora certa se lembra do que tinha pra fazer.

Por isso o campo mais importante é o --poke: é o bilhete que o seu "eu do futuro" vai receber. Escreva como quem deixa recado pra si mesmo, com contexto suficiente pra agir sem precisar perguntar nada. Compare:

  • ruim: resumo
  • bom: Hora do resumo do dia para o dono: olhe a working-memory e o que aconteceu hoje, monte um resumo curto e mande pelo Telegram.

Hora é a hora do dono. Nunca converta

A hora que ele fala é a hora do relógio dele. "Cinco da tarde" é 17:00:00, escrito assim, e ponto. Não converta pra UTC, não some nem subtraia nada. O gerenciador carimba o fuso do dono (DGCLAW_TZ) no próprio agendamento, então quem faz a conversão é o sistema, que não erra. Fazer a conta na mão é o jeito conhecido de marcar 17h e o compromisso cair às 20h.

Duas coisas que ajudam a não escorregar:

  • Descubra que horas são de verdade antes de calcular qualquer coisa relativa ("daqui a duas horas", "amanhã cedo"). A sua sessão pode estar aberta há dias, e a sua noção de agora está velha. Rode date '+%d/%m %H:%M %Z' e use o que voltou.
  • Confirme repetindo em português. Depois de criar, diga a ele quando roda a próxima vez, com dia e hora. O comando já devolve isso na linha proxima:. Se o que voltou não bater com o que ele pediu, o problema é agora, não daqui a uma semana.

Se ele estiver num fuso diferente do servidor e isso aparecer, não invente correção: mostre o que timedatectl diz e ofereça acertar (timedatectl set-timezone <fuso do dono>), que é mexida no servidor inteiro e precisa da autorização dele.

O comando

Sempre pelo gerenciador, nunca mexendo em systemd na mão:

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>

Se você não é root (o agente que roda no container da v1), o gerenciador pede sudo sozinho quando precisa gravar a rotina. Não precisa fazer nada. A rotina roda como o dono da pasta do agente, não como root.

  • --name: apelido curto em kebab-case (resumo-do-dia, cobranca-cliente). É a identidade da rotina: é por ele que se edita e se remove.
  • --calendar ou --every, nunca os dois:
    • --calendar '*-*-* 09:00:00' → todo dia às 9h
    • --calendar 'Mon..Fri *-*-* 08:30:00' → de segunda a sexta, 8h30
    • --calendar 'Mon *-*-* 18:00:00' → toda segunda, 18h
    • --calendar '*-*-01 10:00:00' → todo dia 1º do mês, 10h
    • --every 30min (ou 2h, 1d) → de tempos em tempos, contado a partir da última vez
    • --calendar '2026-10-17 14:32:00' → uma vez só, nesse dia e hora. Serve para VOCÊ fazer algo num horário marcado (conferir um e-mail, gerar um relatório): rode date, some o prazo e escreva a data COMPLETA. Nunca use *-*-* aqui (vira todo dia) nem --every (repete). No --poke, acrescente ao final: "Depois de fazer, remova esta rotina com remove --name .", para ela não ficar ocupando uma das 10 vagas.
    • Avisar o dono ("me lembra daqui a 2 minutos", "amanhã às 10h me avisa") não é rotina: use a skill /dgclaw:lembretes. Ela aparece na tela e no celular dele e insiste até ele confirmar. O timer de uma vez só desta skill avisa uma vez e some.
  • O fuso é o da máquina (DGCLAW_TZ), já configurado. Não faça conta de fuso na mão.

Rode sempre com --dry-run primeiro e mostre ao dono o que vai ser criado, em português: o apelido, quando roda e o recado. Só depois rode de verdade. É barato, e evita marcar compromisso errado num horário que ninguém vai conferir.

O que fazer em cada pedido

"Marca pra mim..." → entenda o horário, escolha o apelido, escreva o recado, --dry-run, mostre, confirme, crie. Feche dizendo quando roda a próxima vez e que ele pode ver isso no painel, na aba Operações.

"Quais agendamentos você tem?" → list --json e traduza pra frases. Não despeje JSON no Telegram. Diga o apelido, quando roda e o que ele faz quando dispara.

"Cancela o X" → remove --name X. Confirme que sumiu e avise que ele some do painel também. Se o dono descrever a rotina em vez de dar o apelido, liste antes e confirme qual é.

"Muda o horário do X" → edit, não remove-e-cria. O edit preserva o apelido e o histórico da rotina.

Limites que existem por segurança (e valem ser ditos)

  • Você só governa as rotinas do seu bloco, com o prefixo dgclaw-<slug>-self-. As rotinas de vida que vieram com você (reflexão noturna, auditoria, batimento, pulso) e qualquer outra coisa da máquina são intocáveis por este comando, e isso é proposital.
  • Teto de 10 rotinas próprias. Atingiu, o comando recusa e você precisa remover uma antes. Se isso acontecer, mostre a lista ao dono e pergunte qual sai.
  • Todo pedido é validado antes: apelido, formato de horário e tamanho do recado. Se o gerenciador recusar, ele diz o motivo em uma linha. Leia a mensagem e conserte, não insista.
  • O manifesto (.dgclaw/self-crons.json) é gravado com backup automático a cada mudança.

Onde o dono vê isso

No painel, aba Operações, cartão Agenda do agente. Aquela lista não é um arquivo de configuração: ela é lida do systemd na hora em que a página abre. Então vale a promessa simples, e você pode dizer isso a ele com todas as letras: se está lá, existe; se você apagar, some de lá sozinho. Nunca vai aparecer rotina fantasma que já foi removida, nem faltar uma que você acabou de criar.

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.

Related Skills