Aula 15 — Hooks de Lifecycle + Automação
Módulo: Mastery
Aula: 15 / 22
Módulo 5 · Hooks, Multi-IDE e Brownfield Duração: 4 horas Agentes praticados:
@dev,@devopsProjeto: Plataforma Zabbix Learning + LinkedIn Automation
🏆 Vitória desta aula
3+ hooks de lifecycle customizados criados e funcionando: auto-teste de conteúdo gerado, monitoramento de labs, e coleta de métricas de uso dos agentes.
Critério binário: 3 hooks ativos → eventos disparam → hooks executam ação → resultado verificável nos logs ou dashboard.
Conceito
Hooks: automação do processo de desenvolvimento
No Bootcamp, cada ação era explícita: você chamava agente, pedia ação, verificava. Hooks automatizam esse ciclo: quando um evento acontece no AIOX, um hook executa uma ação automaticamente sem intervenção.
| Tipo de hook | Quando dispara | Exemplo |
|---|---|---|
pre-tool |
Antes de um agente executar | Validar input antes do @dev implementar |
post-tool |
Depois de um agente executar | Auto-testar código gerado pelo @dev |
session-start |
Quando sessão AIOX inicia | Carregar contexto do projeto |
session-end |
Quando sessão AIOX encerra | Salvar insights na Memory Layer |
monitor |
Periodicamente | Coletar métricas, verificar saúde |
A diferença é estrutural: hooks garantem que verificações acontecem sempre, não apenas quando você lembra. Se toda aula gerada pelo Content Engine deve passar pelo checklist de qualidade, um hook post-tool garante isso automaticamente.
Contexto
A Plataforma Zabbix tem 6 subsistemas rodando. Agora automatizamos verificações e monitoramentos que antes eram manuais. Hooks são aplicados tanto na Plataforma Zabbix quanto no LinkedIn Automation — qualquer projeto AIOX se beneficia.
Prática
Passo 1 — Explorar sistema de hooks
cd ~/aiox-mastery/zabbix-platform
claude
Explore o sistema de hooks do AIOX:
- Onde hooks são definidos no .aiox-core/?
- Qual o formato de definição (YAML, MD, JS)?
- Quais eventos estão disponíveis?
- Como um hook acessa o output do agente que disparou?
- Como um hook reporta resultados?
Documente em docs/hooks-reference.md.
Passo 2 — Hook 1: auto-teste de conteúdo
Crie um hook post-tool que dispara toda vez que o
@zabbix-expert ou o Content Engine gerar uma aula:
Ação do hook:
1. Ler conteúdo gerado
2. Aplicar checklist zabbix-lesson-quality.md automaticamente
3. Verificar se conceitos mencionados existem na documentação
oficial (anti-hallucination check)
4. Calcular score de qualidade (0-100)
5. Se score < 70%: emitir warning no log + marcar conteúdo
como "needs-review"
6. Se score ≥ 70%: marcar como "auto-approved"
Salve em .aiox-core/hooks/post-content-generation.yaml
Teste: Gere uma aula e verifique que o hook disparou:
# Gerar aula via Content Engine
curl -X POST http://localhost:3000/api/content/generate \
-d '{"topic":"Zabbix API","level":"advanced"}' | jq
# Verificar log do hook
cat logs/hooks/post-content-generation.log
# Verificar status do conteúdo
curl http://localhost:3000/api/content/lessons/latest | jq '.qualityScore, .status'
Checklist
- Hook dispara automaticamente após geração?
- Score de qualidade é calculado?
- Conteúdo com score < 70% é marcado "needs-review"?
- Anti-hallucination check funciona?
- Log registra resultado do hook?
🏆 Checkpoint 1: Hook de auto-teste disparando.
Passo 3 — Hook 2: monitoramento de labs
Crie um hook monitor que verifica o Lab Provisioner
periodicamente (a cada 5 minutos):
Ação do hook:
1. Listar containers de lab ativos
2. Verificar health de cada um (Zabbix web respondendo?)
3. Se lab falhou (container crashed): notificar via log + webhook
4. Se lab está orphan (TTL expirado mas não destruído):
forçar cleanup
5. Registrar métricas: labs ativos, labs falhos, labs
limpos, recursos consumidos
Salve em .aiox-core/hooks/monitor-lab-health.yaml
Teste:
# Provisionar um lab
# Matar o container manualmente (simular falha)
docker stop [container-id]
# Esperar hook rodar (5 minutos ou trigger manual)
# Verificar que hook detectou e logou a falha
cat logs/hooks/monitor-lab-health.log
🏆 Checkpoint 2: Hook de monitoramento de labs ativo.
Passo 4 — Hook 3: métricas de uso de agentes
Crie um hook session-end que ao final de cada sessão AIOX:
1. Registrar quais agentes foram usados na sessão
2. Tempo de execução de cada agente
3. Quantas iterações foram necessárias (ciclos de correção)
4. Resultado final (sucesso/falha/parcial)
5. Salvar em banco para análise de produtividade
Aplicar na Plataforma Zabbix E no LinkedIn Automation.
Checklist
- Hook dispara ao final de cada sessão?
- Métricas de agentes são registradas?
- Dados são persistidos para consulta posterior?
- Funciona em ambos os projetos?
🏆 Checkpoint 3 — VITÓRIA DA AULA: 3 hooks customizados funcionando.
Passo 5 — Commit
*exit
git add .
git commit -m "feat: 3 custom lifecycle hooks for content QA, lab monitoring, agent metrics
- post-tool hook: auto-validate generated content with quality scoring
- monitor hook: Lab Provisioner health + orphan cleanup every 5min
- session-end hook: agent usage metrics collection
- Applied to Zabbix Platform and LinkedIn projects
- hooks-reference.md documenting system"
Reflexão
O conceito-chave
Hooks transformam verificações manuais em garantias estruturais. O hook de auto-teste garante que NENHUMA aula vai para produção sem validação — mesmo que você esqueça de verificar. O hook de monitoramento garante que labs falhos são detectados em 5 minutos, não dias. A diferença entre "processo que depende de disciplina" e "processo estruturalmente garantido".
Conexão com a próxima aula
Na Aula 16, testamos a Plataforma Zabbix em 3 IDEs diferentes: Claude Code, Gemini CLI e Codex CLI. Mesma feature, 3 implementações, relatório de paridade.
Anterior: Aula 14 — Ferramentas Interativas e Lab Provisioner Próxima: Aula 16 — Multi-IDE na Prática
Pratique o que você aprendeu
Implemente os conceitos desta aula em seus próprios projetos. Consulte a página de projetos para desafios práticos e exemplos de código.