Parent: #315
Problema comprovado
Os runs CI #433/#435 e o run de release #4 falharam antes de executar os jobs porque a conta está bloqueada por billing. Assim, a existência de .github/workflows/ci.yml não prova fmt, coverage, clippy, build, tests, cargo-deny, gitleaks, gates binários ou E2E.
Esta issue não tenta corrigir billing por código. Ela cria uma fonte de verdade local/container, reproduzível e gratuita, que continua funcionando quando GitHub Actions está indisponível.
Objetivo
Entregar um comando único, fail-fast e reproduzível que valide o SHA atual da main, gere evidência durável e possa depois ser chamado por qualquer runner, sem depender de secrets, LLM local ou GitHub Actions pago.
Caminho mais rápido
- Reusar os scripts e comandos já existentes; não criar outro framework de CI.
- Separar
fast (escopo Simplicio alterado) de deep (workspace herdado).
- Rodar primeiro preflight e gates baratos; interromper antes de compilar se ambiente/contrato estiver inválido.
- Persistir um receipt único com hashes de todos os relatórios.
- Só depois religar o mesmo comando a Actions/self-hosted runner.
Implementação passo a passo
- Criar
scripts/validate_local.py ou equivalente com contratos de saída versionados.
- Registrar SHA, dirty state, SO/arch, Rust/Python, protoc/DotSlash/rg, limites de CPU/RAM e versões do ecossistema.
- Implementar perfis:
fast: fmt, scanners, crates Code-owned, testes focados, docs e package smoke;
deep: clippy/check/test workspace, coverage, cargo-deny e matrizes cross-platform;
release: deep + build release + instalado + checksum/SBOM/manifest.
- Executar os gates na ordem de menor custo: preflight → formato/policy → testes Python → Rust focado → integração → workspace profundo.
- Não baixar ferramentas silenciosamente. Reportar dependência ausente com código estável e comando de instalação.
- Gerar
validation-summary.md e receipt HBP; JSON somente como export explícito, nunca storage interno.
- Redigir environment/secrets e impor tamanho máximo de logs.
- Criar container/Dev Container opcional com toolchain pinada.
- Adicionar teste que simula job não iniciado e confirma que isso nunca vira
PASS.
- Documentar execução em Linux/macOS/Windows; quando não observável, retornar
null + motivo.
- Após desbloqueio administrativo, fazer workflow chamar exatamente o mesmo entrypoint.
- Reexecutar contra
39ebdd93872b8fae0dc412641acc94c1c7bdc980 ou a main mais nova declarada e anexar evidência.
Testes obrigatórios
- checkout limpo e sujo;
- dependência ausente/incompatível;
- gate com sucesso, falha e timeout;
- cancelamento e reexecução;
- logs truncados;
- segredo-shaped fixture;
- receipt adulterado;
- execução repetida com resultados/hashes determinísticos onde aplicável;
- perfil fast não executa workspace profundo;
- perfil release recusa publicar se qualquer pré-requisito estiver
UNKNOWN ou FAIL.
Evidência para fechar
PR/commit, comandos completos, artifacts/receipts, hashes, logs de um caminho feliz e duas falhas, tempos fast/deep/release, lista de gates e riscos residuais.
Execução
- Implementar o objetivo descrito.
- Fazer a implantação aplicável.
- Executar e registrar os testes.
Parent: #315
Problema comprovado
Os runs CI #433/#435 e o run de release #4 falharam antes de executar os jobs porque a conta está bloqueada por billing. Assim, a existência de
.github/workflows/ci.ymlnão prova fmt, coverage, clippy, build, tests, cargo-deny, gitleaks, gates binários ou E2E.Esta issue não tenta corrigir billing por código. Ela cria uma fonte de verdade local/container, reproduzível e gratuita, que continua funcionando quando GitHub Actions está indisponível.
Objetivo
Entregar um comando único, fail-fast e reproduzível que valide o SHA atual da
main, gere evidência durável e possa depois ser chamado por qualquer runner, sem depender de secrets, LLM local ou GitHub Actions pago.Caminho mais rápido
fast(escopo Simplicio alterado) dedeep(workspace herdado).Implementação passo a passo
scripts/validate_local.pyou equivalente com contratos de saída versionados.fast: fmt, scanners, crates Code-owned, testes focados, docs e package smoke;deep: clippy/check/test workspace, coverage, cargo-deny e matrizes cross-platform;release: deep + build release + instalado + checksum/SBOM/manifest.validation-summary.mde receipt HBP; JSON somente como export explícito, nunca storage interno.PASS.null+ motivo.39ebdd93872b8fae0dc412641acc94c1c7bdc980ou amainmais nova declarada e anexar evidência.Testes obrigatórios
UNKNOWNouFAIL.Evidência para fechar
PR/commit, comandos completos, artifacts/receipts, hashes, logs de um caminho feliz e duas falhas, tempos fast/deep/release, lista de gates e riscos residuais.
Execução