Part of #288 (epic). Umbrella PR: #287. ## Plan reference [docs/superpowers/plans/2026-06-27-provision-local.md](../blob/main/docs/superpowers/plans/2026-06-27-provision-local.md) — Section 9. ## Tasks - [ ] **Task 38**: Cloudflare `provision_local_*` suite (four tests + push preservation + zero-cloud-calls via panicking fake `wrangler`) - [ ] **Task 39**: Fastly `provision_local_*` suite (same four + push-side `[[local_server.secret_stores.*]]` preservation + `fake_fastly_panicking`) - [ ] **Task 40**: Spin `provision_local_*` suite + Spin env-label alignment quartet (writes/labels-line-up/overlay-round-trips/operator-uncomment-preserved) - [ ] **Task 41**: Axum `provision_local_*` suite (focus: `axum.toml` MUST NOT be mutated) - [ ] **Task 42**: Adapter contract test sweep — verify all `tests/contract.rs` still pass under new `ProvisionOutcome` return type - [ ] **Task 43**: Final CI gate run + smoke matrix + worktree-clean verification (umbrella gate) ## Dependencies Sections 1–8 must all be landed. ## CI All five gates pass. Smoke matrix passes for every (script × adapter) combo. `git status --porcelain` clean after smoke run. ## Sign-off criteria for umbrella PR #287 Task 43 step 4 (`git status --porcelain` empty after the full smoke matrix) is the gate for marking #287 ready-for-review and merging to `main`.
Activity