# Review - Roadmap de maturidade do sdd-layer

## Rastreabilidade
- Orquestração: `roadmap-de-maturidade-do-sdd-layer-gate-unico-de-release-corrigir-jest-do-bot-modul-960734c3de8d`
- Stage: review
- Estado: approved com ressalvas.
- Artefatos revisados: `06-execution.md`, `06-adr.md`.
- Evidência principal: `target/release/sdd ci --strict-release`.

## Veredito
Aprovado com ressalvas.

## Escopo revisado
- Implementação de `sdd ci --strict-release`.
- Implementação de `sdd maintenance report`.
- Alterações de CI/docs associadas ao gate.
- Hardening incremental do `block_gate`.
- Hardening HTTP dos providers Jira/GitHub do bot e receiver de webhook GitHub.
- Testes focados e gate real.

## Pontos positivos
- Gate único de release agora existe e é executável localmente e no CI.
- O gate preserva `sdd ci` legado, reduzindo risco de adoção.
- `maintenance report` entrega leitura rápida por área e reaproveita o `health_report`.
- Bot build/test e docs build/checks entram no caminho obrigatório do release.
- Checks advisory aparecem de forma explícita sem bloquear por ferramenta ausente.
- `block_gate` recebeu timeout, retry seguro de leitura, classificação de erro e redaction de tokens.
- Providers Jira/GitHub do bot receberam timeout, classificação de erro, retry seguro para leituras e testes com mock server.
- O advisory `npm audit` do bot foi resolvido sem forçar major de Slack/LLM.
- Testes focados cobrem `health --strict`, dry-run JSON do gate, áreas do maintenance report e política do `block_gate`.

## Achados
| Severidade | Problema | Sugestão |
|---|---|---|
| Média | `main.rs` cresceu com gate/report em vez de reduzir acoplamento. | Próxima task deve extrair `commands/release` ou `commands/maintenance`. |
| Baixa | `cargo-audit`, `cargo-deny` e `gitleaks` estão ausentes localmente. | Rodar em CI advisory ou documentar instalação local recomendada. |

## Evidências
- `target/release/sdd ci --strict-release` retornou exit code 0.
- Todos os checks obrigatórios do gate ficaram `pass`.
- Advisory ficou `warn` por ferramentas opcionais ausentes.
- `npm audit --audit-level=high` e `npm sbom --sbom-format=cyclonedx` ficaram `pass`.

## Testes
- Manter `target/release/sdd ci --strict-release` como gate de PR.
- Rodar `sdd ci --strict-release --name <slug>` no fechamento de orquestrações com `08-memory.md`.
- Adicionar teste de falha agregada do gate usando comando fake em uma próxima extração modular.
- Expandir corpus golden/property para PRD, Tech Spec, Tasks e traceability map.

## Checklist de qualidade
- [x] Rust fmt/clippy/test all-features verdes no gate.
- [x] Bot build/test verdes no gate.
- [x] Docs generate/links/build verdes no gate.
- [x] Clients/capabilities/skills/workflow doctors verdes no gate.
- [x] Advisory checks visíveis.
- [x] CI alinhado ao gate.
- [x] Artifact store atualizado.
- [x] Vulnerabilidades de `npm audit` resolvidas.
- [ ] Modularização incremental de `main.rs` executada em fatia própria.
- [ ] Corpus golden/property completo.

## Riscos residuais
- Gate caro pode aumentar tempo de CI; se necessário, separar job advisory mantendo o gate obrigatório.
- A extração futura de `main.rs` deve preservar exatamente os formatos JSON/Markdown recém-criados.
- `cargo-audit`, `cargo-deny` e `gitleaks` ainda dependem de instalação no ambiente de CI/local para sair de `skipped`.

## Conclusão
A entrega aumenta materialmente a maturidade de release/readiness do projeto. A base está pronta para seguir com ressalvas conhecidas e rastreadas, principalmente instalação de ferramentas advisory opcionais e modularização.
