Job | daily-brief

axios job

1. Propósito

Abrir o dia do time Anouk com um brief consolidado no canal principal do Slack: onde estamos, o que é esperado hoje, riscos ativos, reuniões do dia, decisões pendentes.


2. Gatilho

  • Cron: 0 8 * * 1-5 (seg–sex 08:00 BRT, TZ=America/Sao_Paulo)
  • Janela: 08:00–08:15. Se não rodar até 08:15, escalar falha.
  • Skip conditions:
    • Feriado nacional ou local (São Paulo) — consultar memory/context/calendar.md se existir
    • Falha de sync do vault (rclone) nas últimas 2h
    • Já executou hoje com sucesso (ver memory.has_run_today("daily-brief"))

3. Input (leitura)

FonteO que ler
TASKS.mdTarefas ativas desta semana + curto prazo
00-projeto/canonico/riscos.mdRiscos com status aberto ou em mitigação
00-projeto/canonico/gaps.mdGaps com status aberto ou em progresso
00-projeto/canonico/dependencias.mdDependências com status ativo ou bloqueado
MEETINGS.mdReuniões programadas para hoje
Slack #projeto-colliers-costalÚltimas 12h de mensagens (overnight)
agentes-core/axios/outputs/weekly-brief.mdContexto da semana
HOME-board.md (seção “Saúde geral”)Estado dos semáforos

4. Processo (para Axios executar)

Você é o Axios. Execute o job daily-brief seguindo estes passos:

Passo 1 — Montar contexto

  1. Leia os 8 arquivos listados em §3.
  2. Leia as últimas 12h do canal #projeto-colliers-costal (últimas ~50 mensagens).
  3. Identifique:
    • Data de hoje e dia da semana (América/São_Paulo)
    • Tarefas com prazo hoje, 2026-MM-DD == hoje, ou esta-semana cujo owner ainda não marcou conclusão
    • Reuniões agendadas para hoje em MEETINGS.md
    • Riscos que escalaram desde ontem (se governance-audit mencionar)
    • Decisões pedidas do board com prazo próximo (≤ 7 dias)

Passo 2 — Avaliar se há algo material

Se o dia não tem nada fora do comum (dia normal de trabalho), ainda assim posta o brief — essa consistência é parte do valor do Axios.

Passo 3 — Compor o brief

Formato do post no Slack (usar post_main com blocks):

🌅 *Bom dia, time Anouk.*  [DIA_SEMANA], [DATA_BR]. Semana [N] do assessment.

*📍 Hoje*
- [X reuniões agendadas] — [listar com horário e participantes]
- [Y tarefas com prazo hoje] — [listar por owner]

*🎯 Prioridades do dia (top 3)*
1. [Tarefa ou entregável mais crítico] — owner
2. ...
3. ...

*⚠️ Riscos em atenção*
- R-XXX [título curto] — [ação recomendada hoje, se houver]

*🟡 Gaps abertos que precisam de mexida*
- G-XXX — owner — prazo

*📅 Próximos 3 dias*
- [resumo ultra-curto]

*🙏 Pedidos do Axios*
- [Qualquer coisa onde precise input humano (ex: "Pedro, posso promover 2 sinais da ata de ontem?")]

_Fonte: vault canônico @ [hash-curto do commit ou timestamp]_

Passo 4 — Guardrails ao compor

  • Sempre marcar estado epistêmico quando a afirmação não for fato: [hipótese], [premissa], [gap]
  • Não inventar tarefas ou riscos. Se algo não está no vault, não mencionar.
  • Não citar conteúdo marcado #sensivel.
  • Não mandar >1 mensagem no canal por dia (1 brief + threads se necessário).
  • Se uma informação é importante mas o vault está desatualizado (ex: última atualização de riscos.md > 7 dias), incluir aviso ⚠️ vault pode estar defasado no brief.

Passo 5 — Publicar e registrar

  1. Chamar slack.post_main(text=..., blocks=...).
  2. Se o post gerar threads (ex: propostas de promoção), continuar em thread.
  3. Gravar sessão: memory.log_session("daily-brief", inputs=..., decisions=..., outputs=...).
  4. Atualizar agentes-core/axios/outputs/daily-status.md com o mesmo brief (formato markdown).

5. Output (escrita)

DestinoConteúdo
Slack #projeto-colliers-costalPost do brief (1 mensagem)
agentes-core/axios/outputs/daily-status.mdBrief em markdown (sobrescreve)
memory/sessions/YYYY-MM-DD_daily-brief.mdLog de execução

6. Guardrails específicos

  • Se o brief ficar >15 blocos Slack, quebrar em 1 mensagem principal + threads temáticas
  • Se detectar que hoje é sexta, incluir lembrete 🎯 Sessão de consolidação hoje 14:00–15:30
  • Se detectar que hoje é segunda, incluir lembrete 📋 Alinhamento semanal ~08:30
  • Se detectar risco crítico (R-XXX com impacto=Alto + prob=Alta + sem mitigação ativa), incluir em seção 🔴 ATENÇÃO CRÍTICA no topo e mencionar Pedro diretamente (<@U_PEDRO>)
  • Se o próprio Axios não conseguir resolver o brief (API down, vault inacessível), enviar DM de erro ao Pedro e abortar

7. Critério de sucesso

  • Post apareceu no canal antes das 08:15 BRT
  • Todos os 4 blocos principais presentes (hoje, prioridades, riscos, próximos dias)
  • daily-status.md atualizado
  • memory/sessions/YYYY-MM-DD_daily-brief.md gravado
  • Nenhuma informação inventada (cada item rastreável a arquivo do vault)

8. Falha e retry

  • API error (Slack ou Claude): retry em 2 min, depois 5 min, depois desistir e DM ao Pedro
  • Vault desatualizado (rclone falhou): postar brief parcial com aviso ⚠️ vault pode estar defasado
  • Falha crítica: criar entrada em memory/feedback/ com severity=error e DM ao Pedro com stack trace

9. Memória

Grava em memory/sessions/YYYY-MM-DD_daily-brief.md com:

  • Timestamp início/fim
  • Arquivos lidos (paths + hashes SHA256)
  • Tarefas identificadas como prioritárias (ids)
  • Riscos destacados (ids)
  • Link da mensagem Slack gerada (ts + canal)
  • Tempo de execução
  • Tokens consumidos (Claude API)

10. Referências