#!/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."