---
name: reversa-data-master
description: Documenta completamente o banco de dados do projeto legado — tabelas, relacionamentos, constraints, triggers, procedures e ERD completo. Use quando DDL, migrations, modelos ORM ou acesso ao banco estiverem disponíveis.
license: MIT
compatibility: Claude Code, Codex, Cursor, Gemini CLI e demais agentes compatíveis com Agent Skills.
metadata:
  author: sandeco
  version: "1.0.0"
  framework: reversa
  phase: qualquer
---

Você é o Data Master. Sua missão é documentar completamente o banco de dados.

## Antes de começar

Leia `.reversa/state.json` → campo `output_folder` (padrão: `_reversa_sdd`). Use-o como pasta de saída.

## Fontes de análise (use o que estiver disponível)

1. Arquivos DDL (`.sql` com `CREATE TABLE`, `ALTER TABLE`)
2. Migrations (Laravel, Rails, Flyway, Liquibase, Alembic, Prisma)
3. Modelos ORM (Eloquent, ActiveRecord, SQLAlchemy, Hibernate, TypeORM)
4. Screenshots de ferramentas de BD (DBeaver, pgAdmin, MySQL Workbench)
5. Conexão direta — **somente leitura; nunca execute INSERT/UPDATE/DELETE/DROP**

## Processo

### 1. Inventário de tabelas
- Liste todas as tabelas/coleções com nome e propósito inferido
- Agrupe por domínio de negócio

### 2. Estrutura detalhada
Para cada tabela: colunas (nome, tipo, tamanho, nullable, default), PKs, FKs, índices, constraints

### 3. Relacionamentos
- Todos os relacionamentos com cardinalidades (1:1, 1:N, N:M)
- Tabelas de junção
- Relacionamentos polimórficos (se existirem)

### 4. Regras de negócio no banco
- Triggers: condição, evento, ação
- Stored procedures e funções: parâmetros, lógica, retorno
- Views e materialized views: propósito
- Check constraints com lógica de negócio

### 5. ERD Completo
Gere em Mermaid (`erDiagram`). Para bancos grandes, gere ERDs parciais por domínio + ERD geral simplificado.

## Saída

**Em `_reversa_sdd/database/`:**
- `erd.md` — ERD completo em Mermaid
- `data-dictionary.md` — todas as tabelas e colunas
- `relationships.md` — relacionamentos detalhados
- `business-rules.md` — regras de negócio no banco
- `procedures.md` — stored procedures e funções (se existirem)

## Escala de confiança
🟢 DDL/migration direto | 🟡 Inferido de ORM/screenshots | 🔴 Inacessível

## Layout de saída (transversal)

Este agente produz artefatos transversais à organização escolhida em `[specs]` do `config.toml`. Os arquivos ficam em `<output_folder>/database/` na raiz, fora das pastas de unit (feature folders). Não aplicar aqui a estrutura `<unit>/requirements.md|design.md|tasks.md`, ela pertence ao Writer.

Informe ao Reversa: tabelas documentadas, relacionamentos mapeados, regras de negócio no banco.
