# Agente: verificador de conformidade SDR

Versão normativa (detalhe). A regra Cursor correspondente está em `.cursor/rules/sdr-conformity-checker.mdc`.

## 1. Escopo

- **Arquivos:** `SDRs/sdr-*.md` (excluir `SDRs/templates/`, `SDRs/governance/`).
- **Objetivo:** garantir que cada SDR tenha estrutura mínima, metadados, status válido, ligações internas coerentes e rastreabilidade quando aplicável.

## 2. Validações obrigatórias (automáticas na medida do possível)

### 2.1 Estrutura

- Presença das seções numeradas **`## 1.`** … **`## 18.`** (conforme [SDR-TEMPLATE.md](../../templates/SDR-TEMPLATE.md)), **ou** registro explícito de desvio aprovado no relatório.
- Hierarquia Markdown consistente (não pular níveis sem motivo).

### 2.2 Metadados (seção 1 / tabela)

Campos esperados (nomes flexíveis, mas conteúdo deve existir):

| Campo | Obrigatório |
|-------|-------------|
| ID / identificador alinhado ao nome do arquivo | Sim |
| Versão | Sim |
| Data | Sim |
| Autor | Sim |
| Status | Sim |
| Classificação (Interno / Confidencial / Público) | Recomendado |

### 2.3 Status

Valores permitidos (normalizados pelo script de checagem):

`Rascunho`, `Em validação`, `Aprovado`, `Obsoleto`, `Substituído`.

### 2.4 Ligações

- Links relativos para outros `sdr-*.md` e para `SDRs/traceability.md` quando o SDR citar implementação.
- Links quebrados para arquivos `sdr-*.md` → **DIVERGÊNCIA-SDR-LINK-QUEBRADO**.

### 2.5 Rastreabilidade (quando o SDR exige implementação)

- Seção **17.2** preenchida **ou** remissão explícita a `traceability.md` **ou** política “somente documentação” declarada na seção 4.

## 3. Validações manuais (primeira versão)

Conflitos semânticos entre SDRs, aceite por requisito completo, cobertura total de testes: tratar como **revisão humana** assistida por relatório; evitar NLP frágil no script.

## 4. Códigos de divergência

| Código | Significado |
|--------|-------------|
| `DIVERGÊNCIA-SDR-ESTRUTURA` | Falta seção 1–18 ou heading incorreto |
| `DIVERGÊNCIA-SDR-METADADOS` | Tabela de metadados ausente ou incompleta |
| `DIVERGÊNCIA-SDR-STATUS` | Status ausente ou fora do enum |
| `DIVERGÊNCIA-SDR-LINK-QUEBRADO` | Link para `sdr-*.md` inexistente |
| `DIVERGÊNCIA-SDR-RASTREIO` | Implementação citada sem 17.2 / traceability |
| `AVISO-SDR-REVISAO-MANUAL` | Item que exige juízo humano |

## 5. Severidade

| Severidade | Quando usar |
|------------|-------------|
| **Crítica** | SDR `Aprovado` com link quebrado ou requisito contraditório evidente |
| **Alta** | Metadados ou status inválidos em SDR em uso para contratação |
| **Média** | Estrutura incompleta em `Em validação` |
| **Baixa** | `Rascunho` com gaps documentados no relatório |

## 6. Formato do relatório

- **Nome:** `sdr-conformity-report-AAAA-MM-DD-HHMM.md` (ou `*-initial.md` para baseline versionada).
- **Local:** `SDRs/governance/reports/`.
- **Conteúdo mínimo:**
  1. Data/hora e versão do checker (script ou agente).
  2. Lista por arquivo `sdr-*.md`: OK / divergências com código e severidade.
  3. Resumo: total de arquivos, críticos, altos, médios, baixos.

## 7. Fluxo obrigatório do agente

1. Identificar todos os `SDRs/sdr-*.md` elegíveis.
2. Executar `python scripts/check_sdr_conformity.py` quando disponível; complementar leitura manual das seções 13–17.
3. Emitir ou atualizar relatório em `governance/reports/`.
4. **Não** “corrigir” silenciosamente conflito entre dois SDRs donos do mesmo tópico — isso é competência de [fonte única](../../REGRAS-AGENTE-E-PROMPTS.md).
