name: agent-governance version: 1.0.0 description: Orquestra regras de governanca, DDD, tratamento de erros, seguranca e testes para tarefas com agentes de IA. Use quando a tarefa exigir aplicar padroes obrigatorios antes de analisar, editar ou validar codigo. Nao use para tarefas casuais sem alteracao de codigo nem para substituir skills especificas de linguagem.
Governanca para Agentes
Procedimentos
Etapa 1: Carregar contexto base
- Confirmar que o contrato de carga base definido em
AGENTS.mdfoi cumprido. - Identificar se a tarefa afeta modelagem de dominio, fluxo de erro, seguranca, validacao ou testes.
- Aplicar a menor mudanca segura que preserve arquitetura, convencoes e fronteiras existentes.
Etapa 2: Carregar referencias sob demanda
- Ler
references/ddd.mdquando a tarefa alterar entidades, value objects, aggregate roots, transicoes de estado ou regras de aplicacao. - Ler
references/error-handling.mdquando a tarefa criar, propagar, encapsular, comparar ou apresentar erros. - Ler
references/security.mdquando a tarefa envolver filesystem, subprocessos, segredos, configuracao, runtime, input externo ou dependencias. - Ler
references/testing.mdquando a tarefa alterar comportamento, validadores, runtime, adapters, persistencia ou gates de validacao. - Ler
references/shared-lifecycle.mdquando a tarefa envolver inicializacao, shutdown, signal handling ou drain de conexoes — principios universais aplicaveis a qualquer linguagem. - Ler
references/shared-testing.mdquando a tarefa envolver estrategia de testes cross-linguagem — principios de unit/integration test aplicaveis a qualquer stack. - Ler
references/shared-architecture.mdquando a tarefa envolver decisoes arquiteturais cross-linguagem — DI, organizacao de modulos, sinais de excesso. - Ler
references/shared-patterns.mdquando a tarefa envolver patterns recorrentes cross-linguagem — Repository, Factory, DI, Value Objects, Error Handling.
Etapa 3: Executar com controle
- Preservar comportamento publico existente, salvo quando a mudanca explicitar a alteracao.
- Nao inventar contexto ausente, versao de linguagem, framework ou runtime sem verificacao local.
- Nao introduzir abstracoes, camadas ou dependencias sem demanda concreta.
- Atualizar ou adicionar testes quando houver mudanca de comportamento.
Etapa 4: Validar proporcionalmente
- Rodar formatter nos arquivos alterados quando a stack oferecer esse passo.
- Rodar primeiro testes direcionados aos packages ou modulos afetados.
- Rodar testes mais amplos e lint quando o custo for proporcional ao risco.
- Registrar falhas com o comando exato e um diagnostico curto.
- Se o projeto oferecer
detect-toolchain.sh, usar os comandos retornados em vez de adivinhar.
Controle de Profundidade de Invocacao
Quando uma skill invoca outra (ex: execute-task -> review -> bugfix), incrementar AI_INVOCATION_DEPTH e verificar o limite antes de prosseguir:
source scripts/lib/check-invocation-depth.sh || { echo "failed: depth limit exceeded"; exit 1; }
Se AI_INVOCATION_DEPTH exceder 2 (o limite padrao de AI_INVOCATION_MAX), parar a cadeia e retornar failed com diagnostico: "limite de profundidade de invocacao atingido". Isso previne loops entre review e bugfix.
O script scripts/lib/check-invocation-depth.sh gerencia o contador automaticamente quando sourced ou chamado como subprocesso.
Tratamento de Erros
- Se a tarefa nao deixar claro quais referencias carregar, aplicar
AGENTS.mdcomo baseline e ler apenas os arquivos tematicos diretamente ligados a superficie alterada. - Se houver conflito entre convencao local identificada e regra generica desta skill, priorizar a arquitetura e os contratos ja existentes no contexto analisado e registrar a suposicao.
- Se um comando de validacao nao existir no contexto analisado, nao inventar substitutos; registrar a ausencia explicitamente.
- Se o limite de profundidade de invocacao for atingido, nao tentar contornar; registrar o ciclo e retornar o estado bloqueante.