Visão Geral das Rotinas
Rotinas são workflows automatizados (ADWs — AI Developer Workflows) que rodam em uma agenda. Existem dois tipos:- Rotinas de IA — invocam o Claude Code CLI com um agente para tarefas de raciocínio (relatórios, análise, decisões). Custam tokens por execução.
- Rotinas sistemáticas — scripts Python puros que executam operações determinísticas (chamadas de API, operações em arquivo, transformações de dados). Sem IA, sem tokens, sem custo, rodam em segundos.
Core vs Custom
scheduler.py — elas NÃO vêm de config/routines.yaml. Veja Rotinas Core para uma explicação detalhada de cada uma.
Descoberta dinâmica: as rotinas são descobertas dinamicamente varrendo os arquivos de script. O agente é extraído do docstring de cada script (padrãovia AgentName). Sem mapeamentos hardcoded — adicione um script novo e ele fica automaticamente disponível no dashboard, na API e nomake run.
Nota: a manutenção de memória segue o padrão LLM Wiki. A rotinaRotinas de exemplo ficam emmemory_sync(diária) cuida do ingest com propagação de referências cruzadas (atualizando arquivos de memória relacionados quando um deles muda). A rotinamemory_lint(semanal) faz health checks: detecta contradições, dados desatualizados, arquivos órfãos e gaps de cobertura. As duas rotinas atualizammemory/index.md(catálogo) ememory/log.md(log de operações).
ADWs/routines/examples/ e são versionadas com o repo. São implementações de referência para integrações comuns (Discord, Stripe, YouTube, etc).
Rotinas custom ficam em ADWs/routines/custom/ e são gitignored. Copie dos exemplos ou crie as suas. Apenas rotinas custom vão em config/routines.yaml. A skill create-routine ajuda a gerá-las.
ADW Runner
Todas as rotinas usamADWs/runner.py, que oferece:
run_skill(skill, log_name, timeout, agent)— executa uma skill via Claude Code CLI (rotina de IA)run_claude(prompt, log_name, timeout, agent)— executa um prompt cru (rotina de IA)run_script(func, log_name, timeout)— executa uma função Python pura (rotina sistemática, sem IA)banner(title, subtitle)— imprime um header estilizadosummary(results, title)— imprime resumo de execução com stats de custo/tokens
- Invocar
claude --print --dangerously-skip-permissions --output-format json(rotinas de IA) - Executar funções Python diretamente com proteção de timeout (rotinas sistemáticas)
- Logar em arquivos JSONL (
ADWs/logs/YYYY-MM-DD.jsonl) - Salvar logs detalhados (
ADWs/logs/detail/) - Acumular métricas por rotina (
ADWs/logs/metrics.json) - Output rico no terminal com indicadores de progresso
Como um Script de Rotina Funciona
Toda rotina segue o mesmo padrão:- Importe o runner de
ADWs/runner.py - Imprima um banner com o nome da rotina
- Chame
run_skill()com nome da skill, log name, timeout e agente - Imprima um resumo
config/routines.yaml
Este arquivo define a agenda das rotinas custom apenas. Rotinas core (good_morning, end_of_day, memory_sync, weekly_review) estão hardcoded emscheduler.py e não precisam de entrada aqui.
name: nome de exibiçãoscript: arquivo Python emADWs/routines/custom/(ouADWs/routines/examples/)time: horário de execução (formato 24h, fuso local)interval: roda a cada N minutos (em vez de horário fixo)day: dia da semana (weekly) ou dia do mês (monthly)days: array para agendas semanais multi-diaenabled: ativa/desativa sem deletar
Scheduler
Inicie o scheduler com:scheduler.py, que tem rotinas core hardcoded e também lê config/routines.yaml para rotinas custom. O scheduler roda em primeiro plano e mostra progresso em tempo real.
O dashboard também inicia/para o scheduler pela página Services.
Criando Rotinas Custom
Usando a skill
create-routine conduz por:
- O que a rotina faz
- Qual agente roda
- Qual skill invoca
- A agenda (daily/weekly/monthly)
config/routines.yaml. Sem mudanças no Makefile — rotinas são descobertas dinamicamente.
Manualmente
- Crie
ADWs/routines/custom/my_routine.pyseguindo o padrão acima - Adicione uma entrada em
config/routines.yaml
Execução Manual
Rotinas core têm targets dedicados no make. Todas as rotinas (core e custom) podem ser executadas pelo runner dinâmico:Scheduled Tasks (Pontuais)
Para ações que devem rodar uma vez em horário específico (não recorrentes), use Scheduled Tasks em vez de rotinas. Veja Scheduled Tasks para detalhes.Agent Teams (Experimental, Opt-in)
Versões multi-agente paralelas de rotinas de consolidação. Em vez de um agente coletando dados sequencialmente, Agent Teams spawnam teammates específicos de domínio que trabalham em paralelo — cada um na sua janela de contexto. Trade-off: ~3-5x mais tokens, mas execução mais rápida e cada agente usa expertise do próprio domínio.
Scripts ficam em
ADWs/routines/teams/. Estes nunca são agendados — execute manualmente quando quiser velocidade ou análise cruzada de domínios mais rica.
Requer a flag experimental (já habilitada em .claude/settings.json):
- O agente líder (ex., @sage) cria um time de agentes
- Cada teammate é spawnado usando o tipo de agente correspondente (ex.,
atlas-project) - Teammates coletam dados de domínio em paralelo
- O líder espera todos os teammates e depois sintetiza os achados na saída final
team-strategy-digest, team-dashboard, etc. em metrics.json, separadas das execuções normais — facilitando comparação de custo e velocidade.
Logs e Métricas
Arquivos de log
Visualizando logs
Formato de métricas
metrics.json acompanha por rotina:
- Total de execuções, sucessos, falhas, taxa de sucesso
- Duração média
- Custo total e médio (USD)
- Tokens de entrada/saída totais
- Timestamp da última execução