# 08-memory.md — SDDL-3: Fix correção run SDD validation
**Artefato**: Memória (Etapa 8)
**Card**: SDDL-3
**Data**: 2026-06-24
**Commit**: `636643d`
**Rastreabilidade**: `docs/sddl-3/08-memory.md`
---
## Estado final
Card **concluído e commitado**. Versão do projeto: `0.15.3`.
CI não falhará mais por version drift. Processo de bump agora é atômico e documentado.
---
## Decisões e aprendizados reutilizáveis
### D1 — Nome do pacote Cargo é `sdd-layer`, não `sdd`
`Cargo.toml:2` declara `name = "sdd-layer"`. Comando correto:
```bash
cargo update -p sdd-layer --precise <versão>
```
Usar `-p sdd` falha ou atualiza entrada errada.
### D2 — `$ErrorActionPreference = 'Stop'` não captura executável nativo no PS
`try/catch` não converte exit code de `cargo.exe` em exceção. Sempre verificar `$LASTEXITCODE -ne 0` após chamada a qualquer executável nativo em PowerShell.
### D3 — Substituição de `version` no `Cargo.toml` exige máquina de estado por seção
`Cargo.toml` repete `version` em múltiplas seções. Substituição correta rastreia flag `inpkg` (ativa somente em `[package]`) e aplica na primeira ocorrência. Mesma heurística de `cargo_toml_package_version` em `src/main.rs:9893`.
### D4 — Ordem de escrita: TOML → lock → VERSION
`VERSION` escrito por último, após `cargo update` confirmar sucesso. Backups `.bak` restaurados em falha antes de encerrar.
### D5 — RN-03: bumps manuais proibidos neste repositório
Documentado em `scripts/README.md`. Qualquer edição direta causará FAILURE no CI.
---
## Padrões identificados no projeto
| Detecção de source repo | `src/main.rs` — `is_layer_source_repo()`: detecta `src/main.rs` + `plugins/orchestration/` |
| Verificação de versão | `src/main.rs` — `version_alignment_issues()`: compara 3 fontes, FAILURE em strict mode |
| Parse de versão TOML | `src/main.rs:9893` — `cargo_toml_package_version()`: máquina de estado por seção |
---
## Comandos úteis
```bash
# Bump de versão (Linux/CI)
./scripts/bump-version.sh patch
./scripts/bump-version.sh 0.16.0
# Windows PowerShell
.\scripts\bump-version.ps1 patch
# Validar sincronização
sdd doctor && sdd ci
```
---
## Contexto para próximos agentes
- Qualquer bump **deve** usar `scripts/bump-version.sh` ou `.ps1`. Bumps manuais causam FAILURE.
- Nome do pacote Cargo: `sdd-layer` — sempre `-p sdd-layer` em `cargo update`.
- Em PowerShell: checar `$LASTEXITCODE`; `try/catch` não captura nativos.
- Versão atual: `0.15.3`.
- Artifact store: `docs/sddl-3/`.