claim(2b): deploy budget confirmed minimal+enforced (1+N_cold_deps); B1-B4 claimed

Phase 2b confirm-and-document outcome: per-recipe test-sequence deploy budget is
already minimal — `deploys == 1 (base, shared by all 5 tiers) + N_cold_deps` — and
tighter than plan B1's nominal `1+1(upgrade)+N` because the upgrade is an in-place
chaos redeploy of the prev-version base, not a separate deploy. Enforced as a hard
failure by DG4.1 (expected = 1 + deps_deployed_count, run_recipe_ci.py:1005-1010).
No redundant deploy found; none removed (none existed).

- docs/perf/deploys.md: the budget record (B4), names the out-of-budget WC5 reseed
- STATUS-2b.md: B1-B4 claim with WHAT/HOW/EXPECTED/WHERE for cold verify
- JOURNAL-2b.md / BACKLOG-2b.md / DECISIONS.md: reasoning + settled note
- consume machine-docs/BUILDER-INBOX.md (Adversary heads-up processed)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
autonomic-bot
2026-05-31 05:35:46 +00:00
parent 5f37de69e3
commit edf34e3e53
6 changed files with 267 additions and 25 deletions

View File

@ -1131,3 +1131,28 @@ recipe whose upgrade TARGET needs different app .env than the base (e.g. an over
newer version) can switch it without a cc-ci fork. Added `abra.env_get` (symmetric reader). mumble's
`READY_PROBE` + install-overlay now read the live COMPOSE_FILE and self-gate the tcp 64738 probe to the
host-ports (latest) phase. No cc-ci fork of any upstream file remains for mumble.
---
## Phase 2b — Per-recipe deploy budget (SETTLED 2026-05-31)
The per-recipe CI test sequence deploy budget is **minimal and enforced**:
```
deploys == 1 (base) + N_cold_deps
```
- **1 base deploy** shared by ALL five tiers (install → upgrade → backup → restore → custom).
- **+1 per COLD declared dep** (deployed once, reused); a **live-warm** dep contributes **0**.
- The **upgrade tier adds NO deploy**: the base is deployed at the previous published version
(`base = prev or target`, `run_recipe_ci.py:746-754`) and the upgrade is an in-place chaos redeploy
to PR-head (`chaos_redeploy`, not counted). backup/restore reuse the same app.
- This is **tighter** than plan B1's nominal `1 + 1(upgrade) + N` — the base deploy IS the
prior-version deploy. Nothing redundant; nothing removed because nothing existed to remove.
- **Enforced** by DG4.1: `expected_deploy_count = 1 + deps_deployed_count` (`run_recipe_ci.py:984`),
hard-fails on mismatch (`:1005-1010`). Every green run proves it stayed within budget.
- **Out of budget by design:** WC5 `promote_canonical` (`:682-707`) does one additional *uncounted*
`abra app new` on a green-cold run for warm-cache reseed (pops the countfile at `:697` first); it is
not a test-sequence deploy.
Full record: `docs/perf/deploys.md`.