Descoberta com IA

A funcionalidade de Descoberta com IA do Archyl analisa seu código-fonte para descobrir e documentar automaticamente a arquitetura do seu software. Isso economiza horas de trabalho de documentação manual e garante que sua documentação de arquitetura permaneça sincronizada com o código real.
Como Funciona
1. Conecte Seu Repositório
Primeiro, conecte seu repositório Git ao Archyl:
- Vá para as configurações do seu projeto
- Clique em "Conectar Repositório"
- Escolha seu provedor Git (GitHub, GitLab, Bitbucket, Azure DevOps, Gitea ou instâncias self-hosted)
- Autorize o Archyl a acessar seu repositório
2. Inicie a Descoberta
Uma vez conectado, inicie a descoberta com IA:
- Clique em "Iniciar Descoberta" no seu projeto
- Selecione qual branch analisar
- Clique em "Executar Descoberta"
3. Análise da IA
A IA analisa seu código-fonte em várias fases:
- Análise de estrutura — Identifica o nome do sistema, os contêineres e as dependências externas
- Descoberta detalhada — Analisa os arquivos-fonte em blocos paralelos para encontrar componentes, elementos de código e relacionamentos
- Refinamento de relacionamentos — Cruza os contêineres entre si para encontrar dependências entre serviços
- Pós-análise paralela — Descobre ADRs, documentação, contratos de API e dependências de pacotes
Os elementos descobertos incluem:
- Sistemas: Sistemas de software de nível mais alto e dependências externas
- Contêineres: Serviços, APIs, bancos de dados, aplicações web, workers
- Componentes: Módulos, pacotes, handlers, repositórios, serviços
- Elementos de código: Classes, interfaces, funções com seus caminhos de arquivo
- Relacionamentos: Como os elementos se comunicam (usa, chama, envia para, lê de)
4. Revise e Aprove
As descobertas são colocadas em um estado Pendente para revisão:
- Revise cada elemento descoberto
- Edite nomes, descrições ou relacionamentos
- Aprove descobertas corretas
- Rejeite ou modifique as incorretas
Para novos projetos (sem elementos C4 existentes), as descobertas são aprovadas automaticamente para você começar rapidamente.
Descoberta Incremental
A descoberta incremental mantém seu modelo C4 atualizado analisando apenas os arquivos que mudaram — não o repositório inteiro. É mais rápida, mais econômica e pode ser executada automaticamente a cada push.
Como Funciona a Descoberta Incremental
- O código é enviado para a branch padrão
- O Archyl recebe o evento de push (via webhook ou GitHub Action)
- Os arquivos alterados são extraídos dos commits do push
- Apenas os arquivos-fonte são analisados (arquivos removidos são ignorados)
- A IA é executada sobre o conjunto menor de arquivos
- Novos elementos são criados como descobertas pendentes para revisão
- Elementos existentes são deduplicados automaticamente — sem duplicatas
Ativando a Descoberta Incremental
Há duas formas de ativar a descoberta incremental:
Opção A: Webhook do GitHub (Zero Configuração)
- Vá até as configurações de Configuração de webhook do seu projeto
- Ative Descoberta no push
- Copie a URL do webhook e adicione-a às configurações do seu repositório no GitHub
- Selecione o evento
push
Cada push para a branch padrão vai disparar a descoberta incremental automaticamente.
Opção B: GitHub Action (CI/CD)
Adicione a action Archyl Incremental Discovery ao seu workflow. Veja Integração com GitHub Actions para as instruções completas de configuração.
name: Architecture Sync
on:
push:
branches: [main]
jobs:
discovery:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: archyl/archyl/.github/actions/incremental-discovery@main
with:
api-key: ${{ secrets.ARCHYL_API_KEY }}
project-id: ${{ vars.ARCHYL_PROJECT_ID }}
Descoberta Completa vs. Incremental
| Descoberta completa | Descoberta incremental | |
|---|---|---|
| Escopo | Repositório inteiro | Apenas arquivos alterados |
| Gatilho | Manual (UI/API) | Automático (webhook de push ou GitHub Action) |
| Velocidade | Minutos (depende do tamanho do repositório) | Segundos a minutos |
| Custo de IA | Maior (analisa todos os arquivos) | Menor (analisa apenas o diff) |
| Caso de uso | Configuração inicial, grandes refatorações | Alterações de código do dia a dia |
| Deduplicação | Deduplicação completa contra o modelo existente | Mesma deduplicação — sem duplicatas |
Combinando Completa + Incremental
O fluxo de trabalho recomendado:
- Execute a descoberta completa quando conectar um repositório pela primeira vez
- Ative a descoberta incremental para manter o modelo atualizado
- Execute novamente a descoberta completa após grandes refatorações ou migrações
A descoberta incremental cria elementos pendentes assim como a descoberta completa — você sempre revisa antes que as alterações sejam aplicadas ao seu modelo C4.
Tecnologias Suportadas
A Descoberta com IA funciona com mais de 15 linguagens e frameworks:
Linguagens
Go, TypeScript, JavaScript, Python, Java, Kotlin, Rust, C#, C/C++, Ruby, PHP, Swift, Scala
Sistemas de build e gerenciadores de pacotes
npm, Go modules, pip/Poetry, Maven, Gradle, Cargo, Composer, RubyGems, NuGet, CMake (find_package, FetchContent, CPM), Conan, vcpkg
Frameworks
React, Next.js, Vue, Angular, Express, Fastify, NestJS, Django, Flask, FastAPI, Spring Boot, ASP.NET Core, Ruby on Rails, Gin, Fiber
Infraestrutura
Docker, Kubernetes, Terraform, Helm, Ansible, GitHub Actions, AWS CDK, Pulumi
Suporte a Monorepos
O Archyl detecta automaticamente estruturas de monorepo:
- Diretórios apps/, packages/, services/, libs/
- Amostragem proporcional de arquivos entre os serviços
- Cada serviço corresponde a um contêiner separado no modelo C4
- Os relacionamentos entre serviços são detectados
Boas Práticas
Comece Pequeno
Para grandes bases de código:
- Comece com um único serviço ou módulo
- Revise e refine os resultados
- Expanda gradualmente para outras áreas
Atualizações Regulares
Mantenha sua documentação atualizada:
- Ative a descoberta incremental para atualizações automáticas
- Revise as descobertas pendentes regularmente
- Execute a descoberta completa após grandes refatorações
Combine com Manual
A Descoberta com IA é um ponto de partida:
- Use a IA para o trabalho pesado
- Adicione contexto de negócio manualmente (descrições, ADRs)
- Refine relacionamentos e descrições
API REST
POST /api/v1/discovery/start # Start full discovery
GET /api/v1/discovery/jobs/:jobId # Get job status
POST /api/v1/projects/:id/discovery/incremental # Trigger incremental discovery
Resolução de Problemas
A Descoberta Está Demorando Demais
- Reduza o número de arquivos analisados (ajuste o máximo de arquivos na configuração)
- Use a descoberta incremental para as atualizações regulares
- Foque em branches específicas
Resultados Imprecisos
- Revise e corrija conforme avança — o sistema de pendências permite aprovar ou rejeitar cada elemento
- Código mais estruturado produz melhores resultados
- Adicione descrições aos elementos aprovados para melhorar o contexto das próximas descobertas
Nenhum Arquivo Analisado
- Verifique se o seu repositório está conectado e se a branch existe
- Garanta que os arquivos-fonte tenham extensões reconhecidas (.go, .ts, .py, .java etc.)
- Confirme que o token de acesso tem permissão de leitura no repositório