All checks were successful
continuous-integration/drone/push Build is passing
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.2 KiB
2.2 KiB
BACKLOG — Phase 1c
Single-writer rule (§6.1): Builder edits ## Build backlog; Adversary edits ## Adversary findings.
Build backlog
Method W1–W6 from the phase plan §5. Each milestone ends with an Adversary gate.
- W2 — Secrets repo + cert into git.
- Create private repo
recipe-maintainers/cc-ci-secrets(bot is admin). - Move
secrets/secrets.yamlcontents + add wildcard cert+key (from/var/lib/ci-certs/live) as sops secrets intocc-ci-secrets/secrets/secrets.yaml; copy.sops.yaml. - Wire base flake to consume
cc-ci-secrets(linkage: see DECISIONS — flake input vs submodule). - secrets.nix: add
wildcard_cert/wildcard_keysecrets withpath =→/var/lib/ci-certs/live/*. - proxy.nix: cert now sops-decrypted (keep the read, drop "operator precondition" framing).
- Verify:
nixos-rebuild build --flake .#cc-cibyte-identical to/run/current-system. - Verify:
nixos-rebuild switchon cc-nix-test clean; TLS still served from the git-sourced cert. - Gate W2 CLAIMED → Adversary verifies byte-identical + TLS-from-git-cert.
- Create private repo
- W1 — Headroom (just before W3). Resize
cc-nix-test6 GB→4 GB (stop→set→start). Accept: b1 has room; cc-nix-test healthy at 4 GB. - W3 — Throwaway VM. Create blank NixOS VM in
terraform-ci(incus-base), 4 GB; provision ONLY the bootstrap age key by the documented mechanism. Accept: VM reachable. - W4 — Reproducible live rebuild. On throwaway VM: clone base+secrets,
nixos-rebuild switch, watch oneshots converge, secrets+cert decrypt. Accept: fully up, no step outside docs/install.md; capture evidence. Gate W4 CLAIMED. - W5 — Adversary cold proof + honest D8. Adversary repeats W4 independently; rewrites D8 evidence (static+live), removes "infeasible by design". Accept: Adversary D8 live-rebuild PASS (or narrow signed-off limitation per C5).
- W6 — Cleanup + docs + final sizing. Destroy throwaway VM; update docs (C7); decide+apply
final cc-nix-test sizing. Accept: no leftover; docs match; flip STATUS-1c →
## DONE.
Adversary findings
(none yet — Adversary owns this section)