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

**Artefato**: Execução (Etapa 6)
**Card**: SDDL-3
**Data**: 2026-06-24
**Origem**: `docs/sddl-3/04-tasks.md`
**Rastreabilidade**: `docs/sddl-3/06-execution.md`

---

## Rastreabilidade

| Campo | Valor |
|---|---|
| Card | SDDL-3 |
| Tasks | `docs/sddl-3/04-tasks.md` |
| Tech Spec | `docs/sddl-3/03-techspec.md` |
| Próximo artefato | `docs/sddl-3/07-review.md` |

---

## Tasks executadas

| ID | Título | Status | Evidência |
|---|---|---|---|
| T-01 | Diretório `scripts/` e esqueleto `.sh` | ✅ Concluído | `bash -n` OK, `scripts/` criado |
| T-02 | Parsing e validação de argumento no `.sh` | ✅ Concluído | exit 2 em argumento inválido confirmado |
| T-03 | Resolução de versão alvo no `.sh` | ✅ Concluído | patch/minor/major calculados corretamente |
| T-04 | Backup + edição cirúrgica `Cargo.toml` via `awk` | ✅ Concluído | awk isolado: apenas `[package].version` alterada |
| T-05 | `cargo update` + `VERSION` + rollback no `.sh` | ✅ Concluído | rollback testado, `-p sdd-layer --precise` |
| T-06 | Saída resumo + `chmod +x` no `.sh` | ✅ Concluído | formato confirmado, bit de execução presente |
| T-07 | `scripts/bump-version.ps1` paridade total | ✅ Concluído | sintaxe PS zero erros, máquina de estado verificada |
| T-08 | `scripts/README.md` | ✅ Concluído | exit codes + aviso RN-03 presentes |
| T-09 | Validação end-to-end | ✅ Concluído | `sdd ci` PASS, version_alignment_issues = 0 |

---

## Arquivos criados

- `scripts/bump-version.sh` — bash, `set -euo pipefail`, bump atômico com rollback
- `scripts/bump-version.ps1` — PowerShell, paridade funcional
- `scripts/README.md` — documentação, exit codes, aviso RN-03

## Arquivos modificados

- `VERSION`: `0.15.2` → `0.15.3` (bump aplicado em T-09)
- `Cargo.toml`: `version = "0.15.2"` → `version = "0.15.3"`
- `Cargo.lock`: entrada `sdd-layer` `0.15.2` → `0.15.3`

---

## Resultado da validação (T-09)

| Verificação | Resultado |
|---|---|
| Argumento inválido → exit 2, nenhum arquivo tocado | ✅ PASS |
| Bump `patch`: 0.15.2 → 0.15.3, exit 0 | ✅ PASS |
| `sdd ci` após bump: version_alignment_issues = 0 | ✅ PASS |
| Idempotência: re-execução com mesma versão, exit 0 | ✅ PASS |
| Sem `.bak` residuais | ✅ PASS |

**`sdd ci` status**: PASS (doctor + clients doctor + artifact smoke + risk smoke)

---

## Observações

- `cargo update --precise` para pacotes locais (path) aceita qualquer versão sem validar contra registry — rollback só dispara quando `cargo update` falha, o que é correto para o uso pretendido.
- 3 testes unitários pré-existentes falham por drift em `.md` de skills/clients modificados no working tree; são independentes do escopo deste card.
- O script `.sh` usa `cargo update -p sdd-layer` (corrigindo o erro no PRD que especificava `-p sdd`).
