Jobs | Rotinas Autônomas do Axios

axios governanca jobs

Definições declarativas das rotinas que o Axios executa automaticamente. Cada job tem: gatilho, input, processo, output, comunicação Slack, guardrails, memória. Nível de autonomia atual: full com auditoria diária (MEMORY-CONTRACT §3.1, atualizado 2026-04-22).


Como cada job é estruturado

Cada rotina vive em agentes-core/axios/jobs/<nome-job>.md (definição que o Axios lê como prompt) + <nome-job>.py (executor Python rodado pelo cron).

Arquivos auxiliares em jobs/lib/:

  • vault.py — leitura do vault (paths, frontmatter, arquivos modificados)
  • slack.py — cliente Slack (post, DM, thread, reactions)
  • llm.py — chamada ao modelo (Claude API) com system prompt + context
  • memory.py — gravação de sessões e feedback em memory/sessions/ e memory/feedback/

Jobs ativos

JobGatilhoArquivo de definiçãoAção
daily-briefCron diário 08:00 BRTjobs/daily-brief.mdPosta brief matinal no canal #projeto-colliers-costal
task-remindersCron diário 09:00 + 17:00 BRTjobs/task-reminders.mdDM Slack para owners com tarefas vencendo ou vencidas
meeting-signalsCron 15min (file-watch em **/meetings/)jobs/meeting-signals.mdDetecta ata nova, promove sinais, avisa Slack
weekly-consolidationCron sex 13:30 BRTjobs/weekly-consolidation.mdRefresh outputs semanais + governance audit

Contrato de job — seções obrigatórias no .md

Todo job segue este template (serve como prompt que Axios carrega ao executar):

---
title: Job — <nome-job>
updated: YYYY-MM-DD
audience: axios
trigger: cron YYYY-MM-DD HH:MM TZ  |  file-watch <glob>  |  manual
---
 
# Job | <nome-job>
 
## 1. Propósito
Uma frase. Se não cabe em uma frase, o job é amplo demais — quebrar.
 
## 2. Gatilho
- Cron: linha exata do crontab
- Janela operacional: horários permitidos
- Skip conditions: quando não rodar (ex: feriado, falha upstream)
 
## 3. Input (leitura)
- Arquivos do vault lidos (com paths)
- APIs acessadas (Slack, Calendar, etc.)
- Janela temporal considerada (ex: "últimas 24h")
 
## 4. Processo (para Axios executar)
Passos numerados que o Axios segue. Este texto é o prompt efetivo.
 
## 5. Output (escrita)
- Arquivos do vault que podem ser escritos (escopo)
- Mensagens Slack (canal, formato)
- Registro de sessão em memory/
 
## 6. Guardrails específicos
Além dos guardrails gerais (MEMORY-CONTRACT §3.1 + security-guardrails):
- O que NÃO fazer neste job específico
- Quando escalar para Pedro
- Limites de volume (ex: não mandar mais que X DMs por run)
 
## 7. Critério de sucesso
Sinais de execução boa:
- Output X foi gerado
- Slack recebeu mensagem Y
- Memory/sessions gravou registro
 
## 8. Falha e retry
- O que fazer se falha parcial
- Retry automático: sim/não
- Notificação a Pedro em caso de falha crítica
 
## 9. Memória
- Onde gravar o snapshot da execução (memory/sessions/YYYY-MM-DD_<job>.md)
- O que gravar: inputs, decisões tomadas, outputs, tempo, erros

Convenções

Idempotência

Todo job deve ser seguro para re-executar. Se rodar 2× seguidas não pode criar 2 posts Slack nem duplicar entradas canônicas. Estratégias:

  • Checagem por ID/hash antes de inserir (ex: decisão com mesmo título+data já existe? ignorar)
  • Dedup por memory/sessions/YYYY-MM-DD_<job>.md (se existe, não rodar de novo no mesmo dia)

Timezone

Todo horário em America/Sao_Paulo (BRT). Cron no VPS respeita TZ do sistema (garantir TZ=America/Sao_Paulo no ambiente).

Nomenclatura Slack

  • Canal principal do projeto: #projeto-colliers-costal (placeholder — ajustar ao canal real)
  • Bot user: @axios
  • Threads: briefings longos vão em thread a partir da mensagem de anúncio

Logging estruturado

Cada execução grava em memory/sessions/YYYY-MM-DD_<job>.md com:

  • Timestamp início/fim
  • Inputs lidos (paths + hashes)
  • Decisões tomadas (tipo fato/hipótese/premissa/gap quando aplicável)
  • Outputs gerados (paths + mensagens Slack)
  • Erros/avisos
  • Feedback humano recebido (se houver)

Autonomia e auditoria

O Axios opera em modo full autônomo com auditoria diária desde 2026-04-22.

  • Pode executar diretamente (sem aprovação por item):

    • Atualizar seus próprios outputs (agentes-core/axios/outputs/*)
    • Postar no Slack (briefs, reminders, alertas)
    • Propor entradas em camadas canônicas (com status: proposto no frontmatter, esperando aprovação do Pedro via reação Slack)
    • Abrir gaps/dependências com metadata created-by: axios
    • Rodar o linter e reportar violações
  • NÃO pode executar sem autorização explícita por item:

    • Fechar decisão, risco, gap ou dependência canônica (move para histórico)
    • Renomear ou apagar arquivos
    • Publicar conteúdo em wikis externas (client/board)
    • Enviar mensagens fora do canal #projeto-colliers-costal e DMs aos owners listados em 06-directory/pessoas/
    • Escalar incidente diretamente ao cliente (Igor, Marcos) sem Pedro ciente
  • Auditoria diária: governance-audit roda com weekly-consolidation. Pedro revisa nas segundas. Erros materiais → correção pelo Axios + entrada em decisoes.


Instalação no VPS

Ver jobs/crontab.txt para linhas prontas para crontab -e no VPS.

Variáveis de ambiente esperadas (em .env no home do usuário Axios):

VAULT_PATH=/home/axios/Colliers_Projeto
SLACK_BOT_TOKEN=xoxb-...
SLACK_CHANNEL_MAIN=C0123456789
SLACK_APP_TOKEN=xapp-...
ANTHROPIC_API_KEY=sk-ant-...
AXIOS_MODEL=claude-opus-4-6
TZ=America/Sao_Paulo

Ver também