.agent/scripts/auditar-agentes.sh
Luiz Silva d32a08d811 feat: promover ag-agente a Arquiteto de Agentes + scripts de governança
- Persona reescrita: foco em design de sistemas multiagente, governança
  arquitetural, protocolos de colaboração e visão estratégica
- Incluído mapa visual de agentes e tabela de protocolos
- Princípios arquiteturais: responsabilidade única, acoplamento fraco,
  coesão alta, herança consciente
- AGENTS e README atualizados para refletir novo papel
- validar-repositorio.sh: validação local (sem GitHub Actions)
- scripts/auditar-agentes.sh: auditoria de consistência entre agentes
- .git/hooks/pre-commit: validação automática antes de cada commit
2026-06-19 16:23:26 -03:00

63 lines
2.2 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# --------------------------------------------------------------
# auditar-agentes.sh – auditoria de consistência entre agentes
# --------------------------------------------------------------
# 1) Detecta frases duplicadas entre personas
# 2) Detecta rules com mesmo nome em agentes diferentes
# 3) Lista rules globais não referenciadas em nenhuma persona
# --------------------------------------------------------------
set -euo pipefail
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$REPO_ROOT"
echo "🔍 Auditoria do ecossistema de agentes"
echo "======================================="
echo ""
# ---- 1) Frases idênticas entre personas ---------------------
echo "📋 1. Frases idênticas entre personas:"
dupes=$(grep -h -r "^[A-Z].*" agents/*/persona 2>/dev/null | sort | uniq -c | awk '$1>1 {print " " $0}' || true)
if [[ -n "$dupes" ]]; then
echo "$dupes"
else
echo " ✅ Nenhuma frase duplicada encontrada."
fi
echo ""
# ---- 2) Rules com mesmo nome em agentes diferentes ----------
echo "📋 2. Rules duplicadas entre agentes:"
dup_rules=$(find agents -type f -path "*/rules/*" -exec basename {} \; 2>/dev/null | sort | uniq -d || true)
if [[ -n "$dup_rules" ]]; then
echo " ⚠️ Rules com mesmo nome em agentes diferentes:"
echo "$dup_rules" | sed 's/^/ /'
else
echo " ✅ Nenhuma rule duplicada."
fi
echo ""
# ---- 3) Rules globais não referenciadas ----------------------
echo "📋 3. Rules globais não referenciadas em personas:"
unreferenced=0
for rule_file in global/rules/*; do
[ -f "$rule_file" ] || continue
rule_name=$(basename "$rule_file")
if ! grep -rq "$rule_name" agents/*/persona 2>/dev/null; then
echo " ⚠️ $rule_name"
unreferenced=$((unreferenced + 1))
fi
done
if [[ $unreferenced -eq 0 ]]; then
echo " ✅ Todas as rules globais são referenciadas."
fi
echo ""
# ---- 4) Busca por contradições ------------------------------
echo "📋 4. Padrões de restrição nas personas (verificar contradições manualmente):"
echo " --- NUNCA ---"
grep -rn "NUNCA" agents/*/persona 2>/dev/null | sed 's/^/ /' || echo " (nenhum)"
echo " --- NÃO ---"
grep -rn "^- NÃO" agents/*/persona 2>/dev/null | sed 's/^/ /' || echo " (nenhum)"
echo ""
echo "✅ Auditoria concluída."