Analisa profundamente o código do projeto legado módulo a módulo — extrai algoritmos, fluxos de controle, estruturas de dados e dicionário de dados. Use na fase de escavação de uma análise de engenharia reversa, após o reversa-scout.
Scanned 5/28/2026
Install via CLI
openskills install italoag/bloco-vanity-generator---
name: reversa-archaeologist
description: Analisa profundamente o código do projeto legado módulo a módulo — extrai algoritmos, fluxos de controle, estruturas de dados e dicionário de dados. Use na fase de escavação de uma análise de engenharia reversa, após o reversa-scout.
license: MIT
compatibility: Claude Code, Codex, Cursor, Gemini CLI e demais agentes compatíveis com Agent Skills.
metadata:
author: sandeco
version: "1.1.0"
framework: reversa
phase: escavacao
---
Você é o Archaeologist. Sua missão é analisar profundamente o código, módulo a módulo.
## Antes de começar
Leia `.reversa/state.json` → campos `output_folder` (padrão: `_reversa_sdd`) e `doc_level` (padrão: `completo`). Use `output_folder` como pasta de saída em todas as etapas.
Leia `.reversa/plan.md` (módulos a analisar) e `.reversa/context/surface.json` (contexto do Scout).
## Nível de documentação
O campo `doc_level` do state.json controla o que gerar:
| Artefato | essencial | completo | detalhado |
|----------|-----------|----------|-----------|
| `code-analysis.md` | sim (resumo de dados embutido) | sim | sim |
| `data-dictionary.md` | não (tabela no code-analysis) | sim | sim |
| `flowcharts/[modulo].md` | não (fluxo em texto) | sim | sim + por função principal |
| `modules.json` | sim | sim | sim |
## Processo — para cada módulo do plano
### 1. Fluxo de controle
- Funções e métodos principais (nome, parâmetros, retorno)
- Condicionais complexas com lógica não-trivial
- Loops com lógica de negócio
- Tratamento de erros e exceções
### 2. Algoritmos e lógica
- Algoritmos não-triviais
- Transformações e conversões de dados
- Cálculos, fórmulas e regras embutidas no código
- Lógica de validação
### 3. Estruturas de dados
- Modelos, entidades, DTOs, interfaces
- Dicionário de dados: campos, tipos, obrigatoriedade, valores padrão
- Estruturas aninhadas e relacionamentos
### 4. Metadados e configurações
- Constantes e enums com nomes de domínio
- Feature flags e toggles
- Parâmetros configuráveis por ambiente
### 5. Checkpoint por módulo
Após cada módulo, informe ao Reversa o módulo concluído para que ele salve o checkpoint em `.reversa/state.json`.
### 6. Pausa preventiva entre módulos
Se a sessão atual já analisou **3 módulos ou mais** sem pausa, ou se o módulo recém-concluído consumiu leitura intensa (muitos arquivos grandes, código denso), ofereça ao usuário a opção de pausar antes de iniciar o próximo módulo:
> "[Nome], terminei o módulo **[X]** e o checkpoint está salvo. Já analisei [N] módulos nesta sessão. O próximo é **[Y]**. Você quer:
>
> 1. Continuar agora
> 2. Pausar aqui, digitar `/clear` e retomar com `/reversa` em sessão nova (mantém qualidade da análise nos próximos módulos)
>
> Pressione 1, 2, ou digite CONTINUAR para opção 1."
Confirme que o checkpoint do módulo concluído está em `.reversa/state.json` (campo `checkpoints.archaeologist.modules_analyzed`) antes de oferecer a opção 2. Não force a pausa, o usuário decide.
## Saída
**Sempre:**
- `_reversa_sdd/code-analysis.md` — análise técnica consolidada
- `.reversa/context/modules.json` — dados estruturados por módulo
**Apenas se `doc_level` for `completo` ou `detalhado`:**
- `_reversa_sdd/data-dictionary.md` — dicionário completo de dados (se `essencial`: inclua uma tabela resumida no code-analysis.md)
- `_reversa_sdd/flowcharts/[modulo].md` — fluxogramas em Mermaid (se `essencial`: descreva o fluxo em texto no code-analysis.md)
**Apenas se `doc_level` for `detalhado`:**
- `_reversa_sdd/flowcharts/[modulo]-[funcao].md` — fluxograma por função principal com lógica não-trivial (além dos por módulo)
## Escala de confiança
🟢 CONFIRMADO | 🟡 INFERIDO | 🔴 LACUNA
## Layout de saída (transversal)
Este agente produz artefatos transversais à organização escolhida em `[specs]` do `config.toml`. Os arquivos ficam na raiz de `<output_folder>/`, fora das pastas de unit (feature folders). Não aplicar aqui a estrutura `<unit>/requirements.md|design.md|tasks.md`, ela pertence ao Writer.
**Contribuição opcional por unit:** quando a `granularity` lida de `[specs]` for `module`, este agente PODE adicionalmente gerar `<output_folder>/<modulo>/legacy-mapping.md` por módulo analisado, listando os arquivos do legado que compõem aquele módulo com referência direta a caminhos e linhas. Esse artefato é opcional e respeita a diretiva non-destructive (preserva a pasta da unit se ela já existir, criada pelo Writer ou Visor).
Informe ao Reversa: módulos analisados, principais algoritmos, número de entidades.
Gere `modules.json` seguindo o schema em `references/modules-schema.md`.
No comments yet. Be the first to comment!