# Governança SDR — conformidade, rastreabilidade e anti-vibecoding

Este diretório define **como** o repositório evita divergência entre especificação (`sdr-*.md` em [`SDRs/`](../)) e implementação (código, scripts, site).

## Documentação normativa (leitura humana + agentes)

| Arquivo | Conteúdo |
|---------|-----------|
| [rules/sdr-conformity-checker.md](./rules/sdr-conformity-checker.md) | Validações de estrutura, metadados, ligações, relatório de conformidade |
| [rules/implementation-without-sdr-detector.md](./rules/implementation-without-sdr-detector.md) | Como detectar código sem vínculo SDR e formato de relatório |
| [rules/no-vibecoding-without-sdr.md](./rules/no-vibecoding-without-sdr.md) | Trava de governança, fluxo obrigatório antes de implementar |

## Regras Cursor (`.cursor/rules/`)

- `sdr-conformity-checker.mdc` — aplicável ao trabalhar em `SDRs/` (globs); não substitui a leitura de [REGRAS-AGENTE-E-PROMPTS.md](../REGRAS-AGENTE-E-PROMPTS.md).
- `sdr-edicao-exclusiva-fonte-verdade.mdc` — ao editar `SDRs/sdr-*.md`: pedido dedicado e planejamento; não misturar com propagação a site/contratação no mesmo plano (salvo exceção explícita). Norma: [sdr-0021 §8.4](../sdr-0021-planejamento-pre-alteracao-agente.md#84-alteração-exclusiva-de-sdrs-normativos); propagação: [sdr-0025](../sdr-0025-propagacao-sdr-consumidores-site-contratacao.md).
- `implementation-without-sdr-detector.mdc` — pastas de código existentes no projeto.
- `no-vibecoding-without-sdr.mdc` — trava em arquivos de implementação (ver frontmatter).

## Relatórios

Arquivos datados em [`reports/`](./reports/) (ex.: `sdr-conformity-report-*.md`, `implementation-without-sdr-report-*.md`). Relatórios **baseline** iniciais podem ter sufixo `-initial.md`.

## Automação (`scripts/check_sdr_conformity.py`)

Na **raiz do repositório**:

| Comando | Efeito |
|---------|--------|
| `python scripts/check_sdr_conformity.py` | Imprime relatório de conformidade (seções 1–18, metadados/Status, links `sdr-*.md`) no stdout. |
| `python scripts/check_sdr_conformity.py --write-report SDRs/governance/reports/<nome>.md` | Grava o mesmo relatório em arquivo. |
| `python scripts/check_sdr_conformity.py --implementation` | Lista JS/Python do escopo com vínculo (`SDR:` ou menção em `traceability.md`). |
| `python scripts/check_sdr_conformity.py --implementation --write-report SDRs/governance/reports/<nome>.md` | Grava relatório de implementação. |

Validações **1.5–1.8** (conflito semântico, aceite fino) permanecem revisão manual assistida por relatório.

## Fluxo no Cursor (resumo)

1. Pedido **funcional/técnico** → localizar `sdr-*.md` relacionado; checar `Status` (aprovado / em validação / proposta / exceção).
2. Rodar conformidade: `python scripts/check_sdr_conformity.py` (ou pedir ao agente seguindo a regra *conformity checker*).
3. Antes de editar código → cumprir [no-vibecoding](./rules/no-vibecoding-without-sdr.md); se faltar SDR, **não** implementar; gerar proposta ou relatório.
4. Após decisão → atualizar SDR / [traceability.md](../traceability.md) / comentários no código.

## Templates

Ver [`../templates/`](../templates/) — `SDR-TEMPLATE.md`, proposta de alteração e exceção temporária.

## Rastreabilidade global

Tabela mestre: [`../traceability.md`](../traceability.md).
