---
description: "Auditoria completa do projeto com Gemini CLI - análise automática e relatórios"
tools: [filesystem, bash]
---

# 🔍 AUDITORIA GEMINI CLI - Análise Automática Completa

Auditoria sistemática do projeto **$1** usando Gemini CLI com inteligência artificial avançada.

## 🛡️ REALITY CHECK OBRIGATÓRIO:
```bash
# SEMPRE executar antes de qualquer ação:
pwd && echo "✅ Directório confirmado"
ls -la && echo "✅ Ficheiros mapeados"
[ -f "package.json" ] && echo "✅ Node.js" || [ -f "composer.json" ] && echo "✅ PHP" || echo "⚠️ Tipo indefinido"

# Verificar Gemini CLI
command -v gemini >/dev/null 2>&1 && echo "✅ Gemini CLI disponível" || echo "❌ Gemini CLI não encontrado"
```

## 🚀 PROTOCOLO DE AUDITORIA GEMINI:

### 1. 📋 Configuração Automática de Permissões

```bash
# Configurar Gemini CLI automaticamente
echo "🤖 Configurando Gemini CLI para auditoria automática..."

# Verificar se API key existe
if [ -z "$GEMINI_API_KEY" ]; then
    echo "⚠️ GEMINI_API_KEY não configurada"
    echo "📋 Configure: export GEMINI_API_KEY='sua_chave_aqui'"
    echo "💡 Obtém em: https://makersuite.google.com/app/apikey"
fi

# Configurar modelo mais avançado
export GEMINI_MODEL="gemini-1.5-pro-latest"
export GEMINI_TEMPERATURE="0.1"  # Análise precisa
export GEMINI_MAX_TOKENS="8192"

echo "✅ Gemini configurado: $GEMINI_MODEL"
```

### 2. 🔍 Análise Completa Automática

```bash
# Função para análise completa
analyze_with_gemini() {
    local analysis_type="$1"
    local context="$2"
    local output_file="$3"

    echo "🔍 Executando análise: $analysis_type"

    # Prompt optimizado para auditoria
    local prompt="Você é um auditor sênior de software especializado em qualidade de código e arquitetura.

TAREFA: Realizar auditoria completa do tipo '$analysis_type' do seguinte projeto:

CONTEXTO DO PROJETO:
$context

INSTRUÇÕES DE AUDITORIA:
1. Analisar todos os aspectos técnicos relevantes
2. Identificar problemas críticos, médios e menores
3. Propor soluções concretas e específicas
4. Avaliar conformidade com boas práticas
5. Dar score de 0-100 com justificação detalhada

FORMATO DE RESPOSTA:
# 🔍 AUDITORIA $analysis_type - $(date +%Y-%m-%d %H:%M)

## 📊 SCORE GERAL: [XX/100]

### 🚨 PROBLEMAS CRÍTICOS
[Lista numerada de problemas críticos com severidade e impacto]

### ⚠️ PROBLEMAS MÉDIOS
[Lista numerada de problemas médios com impacto]

### 💡 MELHORIAS SUGERIDAS
[Lista numerada de melhorias recomendadas]

### ✅ PONTOS FORTES
[Lista dos aspectos positivos encontrados]

### 🛠️ PLANO DE AÇÃO RECOMENDADO
[Steps específicos para resolver problemas por prioridade]

### 📈 MÉTRICAS TÉCNICAS
[Dados quantitativos quando aplicável]

Seja preciso, técnico e construtivo."

    # Executar análise com Gemini
    echo "$prompt" | gemini chat > "$output_file" 2>/dev/null

    if [ $? -eq 0 ]; then
        echo "✅ Análise '$analysis_type' concluída: $output_file"
    else
        echo "❌ Falha na análise '$analysis_type'"
        echo "🔧 Tentando análise alternativa..."

        # Fallback para análise mais simples
        echo "Analise este projeto de software e identifique os principais problemas e sugestões de melhoria:

$context" | gemini chat > "$output_file" 2>/dev/null
    fi
}
```

### 3. 📊 Bateria de Análises Especializadas

```bash
# Preparar contexto do projeto
echo "📋 Coletando contexto do projeto para análise..."

PROJECT_NAME=$(basename "$(pwd)")
PROJECT_TYPE="indefinido"
TECH_STACK=""
PROJECT_CONTEXT=""

# Identificar tipo de projeto
if [ -f "package.json" ]; then
    PROJECT_TYPE="Node.js/JavaScript"
    TECH_STACK=$(grep -E '"dependencies"|"devDependencies"' package.json -A 20 | grep -o '"[^"]*"' | head -10 | tr '\n' ', ')
elif [ -f "composer.json" ]; then
    PROJECT_TYPE="PHP"
    TECH_STACK=$(grep -E '"require"|"require-dev"' composer.json -A 20 | grep -o '"[^"]*"' | head -10 | tr '\n' ', ')
elif [ -f "requirements.txt" ]; then
    PROJECT_TYPE="Python"
    TECH_STACK=$(head -10 requirements.txt | tr '\n' ', ')
elif [ -f "Cargo.toml" ]; then
    PROJECT_TYPE="Rust"
    TECH_STACK=$(grep -E '\[dependencies\]' Cargo.toml -A 10 | tr '\n' ', ')
fi

# Coletar estrutura do projeto
PROJECT_STRUCTURE=$(find . -type f -name "*.js" -o -name "*.php" -o -name "*.py" -o -name "*.rs" -o -name "*.java" | head -20 | tr '\n' ', ')
PROJECT_SIZE=$(find . -name "*.js" -o -name "*.php" -o -name "*.py" -o -name "*.rs" -o -name "*.java" | xargs wc -l 2>/dev/null | tail -1 | awk '{print $1}' || echo "N/A")

# Construir contexto completo
PROJECT_CONTEXT="
NOME: $PROJECT_NAME
TIPO: $PROJECT_TYPE
TECNOLOGIAS: $TECH_STACK
ESTRUTURA: $PROJECT_STRUCTURE
LINHAS DE CÓDIGO: $PROJECT_SIZE
PASTA: $(pwd)
"

# Ler ficheiros de documentação se existirem
[ -f "README.md" ] && PROJECT_CONTEXT="$PROJECT_CONTEXT

README.md:
$(head -50 README.md)"

[ -f "PROJETO.md" ] && PROJECT_CONTEXT="$PROJECT_CONTEXT

PROJETO.md:
$(head -50 PROJETO.md)"

echo "✅ Contexto coletado: $PROJECT_TYPE com $PROJECT_SIZE linhas"
```

### 4. 🎯 Execução das Análises

```bash
echo "🚀 Iniciando bateria completa de análises Gemini..."

# Criar pasta de relatórios com timestamp
REPORTS_DIR="reports/gemini-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$REPORTS_DIR"

echo "📁 Relatórios serão salvos em: $REPORTS_DIR"

# Análise 1: Arquitetura e Estrutura
echo "🏗️ [1/8] Análise de Arquitetura..."
analyze_with_gemini "ARQUITETURA E ESTRUTURA" "$PROJECT_CONTEXT

Foco especial em:
- Organização de pastas e ficheiros
- Separação de responsabilidades
- Padrões arquiteturais utilizados
- Escalabilidade da estrutura" "$REPORTS_DIR/01-arquitetura.md"

# Análise 2: Qualidade de Código
echo "🧪 [2/8] Análise de Qualidade de Código..."

# Coletar samples de código
CODE_SAMPLES=""
find . -name "*.js" -o -name "*.php" -o -name "*.py" | head -5 | while read file; do
    echo "=== $file ==="
    head -30 "$file"
    echo ""
done > /tmp/code_samples.txt

CODE_SAMPLES=$(cat /tmp/code_samples.txt)

analyze_with_gemini "QUALIDADE DE CÓDIGO" "$PROJECT_CONTEXT

SAMPLES DE CÓDIGO:
$CODE_SAMPLES

Foco especial em:
- Legibilidade e manutenibilidade
- Padrões de código e consistência
- Complexidade ciclomática
- Code smells e anti-patterns" "$REPORTS_DIR/02-qualidade-codigo.md"

# Análise 3: Segurança
echo "🔒 [3/8] Análise de Segurança..."
analyze_with_gemini "SEGURANÇA" "$PROJECT_CONTEXT

Foco especial em:
- Vulnerabilidades comuns (OWASP Top 10)
- Gestão de credenciais e secrets
- Validação de inputs
- Controlos de autenticação e autorização" "$REPORTS_DIR/03-seguranca.md"

# Análise 4: Performance
echo "⚡ [4/8] Análise de Performance..."
analyze_with_gemini "PERFORMANCE E OTIMIZAÇÃO" "$PROJECT_CONTEXT

Foco especial em:
- Bottlenecks potenciais
- Otimizações de queries/requests
- Uso eficiente de recursos
- Estratégias de cache" "$REPORTS_DIR/04-performance.md"

# Análise 5: Testes
echo "🧪 [5/8] Análise de Estratégia de Testes..."

# Verificar ficheiros de teste existentes
TEST_FILES=$(find . -path "*/test*" -o -path "*/__tests__/*" -o -name "*.test.*" -o -name "*Test.*" | head -10 | tr '\n' ', ')

analyze_with_gemini "TESTES E QA" "$PROJECT_CONTEXT

FICHEIROS DE TESTE ENCONTRADOS: $TEST_FILES

Foco especial em:
- Cobertura de testes
- Qualidade dos testes existentes
- Estratégias de teste missing
- Automação de testes" "$REPORTS_DIR/05-testes.md"

# Análise 6: Documentação
echo "📚 [6/8] Análise de Documentação..."
analyze_with_gemini "DOCUMENTAÇÃO" "$PROJECT_CONTEXT

Foco especial em:
- Completude da documentação
- Qualidade da documentação técnica
- Documentação de API (se aplicável)
- README e guias de contribuição" "$REPORTS_DIR/06-documentacao.md"

# Análise 7: Dependências e Ecosystem
echo "📦 [7/8] Análise de Dependências..."
analyze_with_gemini "DEPENDÊNCIAS E ECOSYSTEM" "$PROJECT_CONTEXT

Foco especial em:
- Dependências obsoletas ou vulneráveis
- Gestão de versões
- Licenças e compatibilidade
- Tamanho do bundle (se aplicável)" "$REPORTS_DIR/07-dependencias.md"

# Análise 8: DevOps e Deploy
echo "🚀 [8/8] Análise de DevOps..."
analyze_with_gemini "DEVOPS E DEPLOYMENT" "$PROJECT_CONTEXT

Foco especial em:
- Estratégias de CI/CD
- Containerização
- Monitoring e logging
- Estratégias de backup e recovery" "$REPORTS_DIR/08-devops.md"

echo "✅ Todas as análises Gemini concluídas!"
```

### 5. 📋 Relatório Consolidado

```bash
echo "📊 Gerando relatório consolidado..."

# Criar relatório master
MASTER_REPORT="$REPORTS_DIR/00-RELATORIO-CONSOLIDADO.md"

cat > "$MASTER_REPORT" << EOF
# 🔍 AUDITORIA COMPLETA GEMINI CLI - $PROJECT_NAME

**Data**: $(date +%Y-%m-%d %H:%M:%S)
**Auditor**: Gemini AI ($GEMINI_MODEL)
**Projeto**: $PROJECT_NAME
**Tipo**: $PROJECT_TYPE

## 📊 RESUMO EXECUTIVO

### 🎯 Objetivo
Auditoria completa multi-dimensional do projeto usando inteligência artificial avançada (Gemini 1.5 Pro).

### 🔍 Metodologia
- **8 análises especializadas** executadas automaticamente
- **Contexto completo** do projeto fornecido ao AI
- **Prompts optimizados** para auditoria técnica
- **Relatórios estruturados** com scores e planos de ação

### 📁 Estrutura dos Relatórios
EOF

# Listar todos os relatórios gerados
echo "" >> "$MASTER_REPORT"
echo "### 📋 Relatórios Gerados:" >> "$MASTER_REPORT"
ls -la "$REPORTS_DIR"/*.md | while read line; do
    filename=$(echo "$line" | awk '{print $9}')
    basename=$(basename "$filename")
    echo "- **$basename**: [Ver Relatório](./$basename)" >> "$MASTER_REPORT"
done

# Extrair scores de cada relatório (se disponível)
echo "" >> "$MASTER_REPORT"
echo "### 📊 Scores Consolidados:" >> "$MASTER_REPORT"
echo "" >> "$MASTER_REPORT"

for report in "$REPORTS_DIR"/*.md; do
    if [ "$report" != "$MASTER_REPORT" ]; then
        basename_report=$(basename "$report")
        score=$(grep -o "SCORE GERAL: [0-9]*/100" "$report" 2>/dev/null | head -1 || echo "Score não detectado")
        echo "- **$basename_report**: $score" >> "$MASTER_REPORT"
    fi
done

cat >> "$MASTER_REPORT" << EOF

### 🎯 Como Usar Este Relatório
1. **Leia primeiro** este resumo consolidado
2. **Priorize** os relatórios baseado na sua necessidade
3. **Implemente** as sugestões por ordem de prioridade
4. **Re-execute** a auditoria após correções

### 🔄 Próximos Passos Recomendados
1. Revisar relatório de **Arquitetura** primeiro
2. Implementar correções **críticas de Segurança**
3. Abordar problemas de **Qualidade de Código**
4. Melhorar **Estratégia de Testes**
5. Re-executar auditoria para validar melhorias

---
**Método**: Auditoria automática Gemini CLI v1.0
**Template**: Descomplicar® Multi-LLM Audit System
**Próxima Auditoria**: Recomendada após implementação de correções
EOF

echo "✅ Relatório consolidado gerado: $MASTER_REPORT"
```

### 6. 💾 Arquivo Local dos Relatórios

```bash
echo "💾 Configurando arquivo local dos relatórios..."

PROJECT_NAME=$(basename "$(pwd)")

# Criar índice de auditorias local
AUDIT_INDEX="reports/AUDIT_INDEX.md"
if [ ! -f "$AUDIT_INDEX" ]; then
    mkdir -p "reports"
    cat > "$AUDIT_INDEX" << EOF
# 📋 ÍNDICE DE AUDITORIAS - $PROJECT_NAME

Registo de todas as auditorias executadas neste projeto.

## 🔍 Auditorias Gemini CLI

EOF
fi

# Adicionar entrada ao índice
echo "- **$(date +%Y-%m-%d %H:%M)** - Gemini CLI - [Ver](./$REPORTS_DIR/00-RELATORIO-CONSOLIDADO.md)" >> "$AUDIT_INDEX"

echo "✅ Relatórios mantidos localmente no projeto"
echo "📁 Localização: $REPORTS_DIR/"
echo "📋 Índice: $AUDIT_INDEX"
```

### 7. 📊 Sumário e Próximos Passos

```bash
echo ""
echo "🎉 ===== AUDITORIA GEMINI CLI CONCLUÍDA ====="
echo ""
echo "📊 **RESULTADOS:**"
echo "- 🔍 **8 análises especializadas** executadas"
echo "- 📁 **Relatórios**: $REPORTS_DIR/"
echo "- 📋 **Consolidado**: $(basename "$MASTER_REPORT")"
echo "- 💾 **Índice Local**: reports/AUDIT_INDEX.md"
echo ""
echo "🎯 **PRÓXIMOS PASSOS:**"
echo "1. 📖 Ler relatório consolidado: $MASTER_REPORT"
echo "2. 🚨 Priorizar correções críticas identificadas"
echo "3. 🔧 Implementar sugestões por ordem de prioridade"
echo "4. 🔄 Re-executar auditoria após correções"
echo ""
echo "🔗 **COMANDOS ÚTEIS:**"
echo "- Ver consolidado: \`cat $MASTER_REPORT\`"
echo "- Abrir pasta: \`nautilus $REPORTS_DIR\`"
echo "- Ver índice: \`cat reports/AUDIT_INDEX.md\`"
echo ""
echo "⚡ **AUDITORIA AUTOMÁTICA GEMINI FINALIZADA COM SUCESSO!**"
```

---

## 🎯 **CARACTERÍSTICAS PRINCIPAIS**

### ✅ **Automação Completa**:
- **Zero intervenção manual** após execução
- **Permissões automáticas** configuradas
- **8 análises especializadas** executadas sequencialmente
- **Relatórios estruturados** gerados automaticamente

### 🧠 **Inteligência Avançada**:
- **Gemini 1.5 Pro** como motor de análise
- **Prompts optimizados** para auditoria técnica
- **Contexto completo** do projeto fornecido
- **Análise multi-dimensional** (arquitetura, segurança, performance, etc.)

### 💾 **Arquivo Local**:
- **Relatórios mantidos no projeto** para fácil acesso
- **Histórico local** de auditorias executadas
- **Índice consolidado** dentro do projeto
- **Organização estruturada** em pastas timestampadas

### 📊 **Relatórios Profissionais**:
- **Relatório consolidado** com resumo executivo
- **8 relatórios especializados** por área técnica
- **Scores automáticos** quando detectáveis
- **Planos de ação** específicos e implementáveis

---

**Uso**: Executar `/auditoria` dentro de qualquer projeto
**Resultado**: Análise completa com Gemini AI + arquivo permanente
**Benefício**: Visão 360º do projeto com inteligência artificial avançada