Keeper¶
O agente que impede que código novo vire legado.
O que faz¶
O Keeper fecha o ciclo de feedback entre as specs geradas pelo Aegis Spec e as mudanças diárias de código. Roda em dois modos — antes da mudança (briefing read-only) e depois (atualiza specs, changelog e dashboard de drift).
Por que existe¶
O Aegis Spec gera specs a partir do código legado. Mas as specs envelhecem rapidamente conforme o código continua mudando. Sem um guardião, as specs ficam dessincronizadas em semanas e se tornam tão inúteis quanto a documentação ausente que o Aegis Spec veio resolver.
O Keeper é esse guardião. Trata specs como fontes de verdade ativas, não snapshots.
Dois modos¶
before <descrição-ou-arquivos>¶
Briefing read-only. Use antes de começar a mudança.
O agente:
1. Lê aegis/traceability/code-spec-matrix.md para identificar specs que cobrem os arquivos afetados
2. Lê apenas essas specs (consciente de tokens — não percorre tudo)
3. Apresenta os contratos, invariantes e regras de negócio que a mudança precisa respeitar
4. Pergunta se sua mudança planejada respeita esses pontos
5. Não escreve nada — puramente informativo
after¶
Modo padrão se houver mudanças não-commitadas ou eventos enfileirados pelos hooks. Use depois que terminar.
O agente:
1. Coleta arquivos modificados via git diff HEAD e (se hooks instalados) aegis/runtime/queue/keeper-queue.jsonl
2. Mapeia arquivos pra specs impactadas via code-spec-matrix.md
3. Faz 3 perguntas curtas: Por quê a mudança, quebra de compatibilidade, contexto extra
4. Atualiza cada spec impactada in-place, reclassifica confiança (🟢/🟡/🔴) seguindo as regras em references/drift-rules.md
5. Faz append de uma entrada em <output_folder>/changelog/YYYY-MM-DD.md
6. Atualiza <output_folder>/reports/drift.md (o dashboard)
7. Limpa entradas processadas da queue
Saídas¶
| Arquivo | Quando |
|---|---|
aegis/changelog/YYYY-MM-DD.md |
Modo after, sempre |
aegis/specs/sdd/[componente].md |
Modo after, atualizado in-place se impactado |
aegis/traceability/code-spec-matrix.md |
Modo after, quando arquivos adicionados/deletados |
aegis/reports/drift.md |
Modo after, sempre (o dashboard) |
aegis/config/state.json |
Modo after, checkpoint |
Modo before não escreve nada.
Regras de detecção de drift (resumo)¶
O Keeper classifica mudanças em 5 categorias — cada uma com estratégia de atualização própria. Regras completas em references/drift-rules.md.
| Categoria | O que é | Ação |
|---|---|---|
| Trivial | Refactor, rename, otimização sem mudar contrato | Atualiza spec, mantém confiança |
| Incremental | Função / branch / validação nova | Adiciona seção nova na spec |
| Estrutural | Mudou assinatura, tipo de retorno, status code | Atualiza spec + nota de breaking change |
| Semântico | Código viola regra de negócio do domain.md |
Pausa e pergunta — bug ou intencional? |
| Deleção | Código removido | Marca seção como ~~deprecated~~, não apaga histórico |
Reclassificação de confiança¶
Após processar uma mudança, o Keeper pode subir ou descer a confiança de afirmações já existentes:
- 🟢 → 🟢: mudança confirma o que a spec dizia
- 🟢 → 🟡: mudança tornou a afirmação confirmada apenas parcialmente verdadeira
- 🟡 → 🟢: mudança fornece evidência direta do que era inferido
- ✕ → 🔴: mudança introduz gap (ex.: referência a env var ou feature flag não-visível)
Trigger manual vs automatizado¶
Você pode rodar o Keeper manualmente via /aegis-keeper a qualquer momento — funciona em todas as engines suportadas sem setup adicional.
Para invocação automática quando arquivos são editados, instale hooks via npx aegis-spec add-hooks. Os hooks enfileiram eventos em aegis/runtime/queue/keeper-queue.jsonl e pré-preenchem stubs no changelog. Da próxima vez que você rodar /aegis-keeper after, o agente enriquece com as 3 perguntas e atualiza as specs.
Quando NÃO rodar¶
- Sem
aegis/: rode/aegisprimeiro pra fazer bootstrap - Sem
code-spec-matrix.md: rode/aegis-architectou/aegis-writerprimeiro - Sem mudanças de código (queue vazia + git diff limpo): nada a fazer
Integração com o resto do time¶
O Keeper complementa mas não substitui os outros agentes:
- Reviewer valida specs inicialmente e acha contradições internas — o Keeper mantém atualizado depois
- Archaeologist faz análise profunda one-shot — o Keeper faz updates pequenos, frequentes e incrementais
- Architect sintetiza diagramas — o Keeper sinaliza quando uma mudança arquitetural deve disparar re-run
Se o Keeper detecta mudança que afeta mais de 5 specs ao mesmo tempo, ou toca entry points / DI containers / schemas de banco, ele sugere escalar pro Reviewer / Architect / Data Master.