# 01-idea.md — SDDL-3: Fix correção run SDD validation

**Artefato**: Ideia (Etapa 1)
**Card**: SDDL-3
**Data**: 2026-06-24
**Origem**: Demanda interna — falha recorrente de CI no repositório `sdd-layer`
**Rastreabilidade**: `docs/sddl-3/01-idea.md`

---

## 1. Visão geral da ideia

O processo de release do `sdd-layer` é inteiramente manual: o mantenedor atualiza `Cargo.toml`, `Cargo.lock` e `VERSION` em etapas separadas. Qualquer dessincronismo entre esses três arquivos faz o comando `sdd doctor` (executado em `sdd ci`) emitir failures no CI — porque o repositório opera com `strict_contract = true` quando `src/main.rs` e `plugins/orchestration/` coexistem. O fix automatiza o sync de versão para tornar o CI determinístico e livre de falsos positivos causados por processo.

---

## 2. Problema que resolve

O CI falha de forma intermitente após bumps de versão porque `VERSION` (arquivo de texto na raiz) não é atualizado no mesmo commit ou PR em que `Cargo.toml`/`Cargo.lock` são modificados. A função `version_alignment_issues` em `src/main.rs` detecta qualquer divergência como `failure` em modo `strict_contract`.

**Causa raiz**: ausência de automação de sync; o processo depende de disciplina manual.

---

## 3. Público impactado

- **Direto**: mantenedores e contribuidores do `sdd-layer` — qualquer pessoa que faça bump de versão
- **Indireto**: usuários que consomem releases do binário `sdd` bloqueados no CI

---

## 4. Proposta de valor

Eliminação completa de falhas de CI causadas por drift entre `VERSION`, `Cargo.toml` e `Cargo.lock`, sem alterar contratos externos do binário.

---

## 5. MVP sugerido

Script de bump de versão que em uma única invocação:
1. Recebe o novo número de versão ou tipo de incremento (`patch`, `minor`, `major`)
2. Atualiza `version` em `Cargo.toml`
3. Executa `cargo update -p sdd` para regenerar `Cargo.lock`
4. Escreve o novo valor em `VERSION`
5. Imprime resumo dos três arquivos para confirmação visual

---

## 6. Perguntas em aberto

1. O script deve ser comando nativo `sdd bump` ou script shell em `scripts/`?
2. Deve criar commit Git automaticamente ou apenas preparar arquivos?
3. Confirmação interativa antes de escrever, ou aplica diretamente?

---

**Próxima etapa**: PRD (`02-prd.md`)
