--- 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