# STATUS — Phase 1e (generic-harness corrections HC1–HC4) **Phase plan (SSOT):** `/srv/cc-ci/cc-ci-plan/plan-phase1e-harness-corrections.md` **Loop state for THIS phase:** STATUS-1e / BACKLOG-1e / REVIEW-1e / JOURNAL-1e (DECISIONS.md shared). Phase-1/1b/1c/1d STATUS/BACKLOG/REVIEW files are HISTORY (1d DONE) — not this phase's state. ## Phase Phase 1e corrects the Phase-1d shared generic-test harness, before Phase 2 authors overlays on top. Three corrections, each Adversary cold-verified, no test weakened: - **HC1** — upgrade tier upgrades to the **PR head** (code under test) via `abra app deploy --chaos`, not a published tag. - **HC2** — repo-local (PR-authored) `test_*.py`/`install_steps.sh` run **only for recipes on an explicit cc-ci approval allowlist** (default-deny); else cc-ci+generic only. - **HC3** — the **generic runs by default (additive)** alongside any overlay; skipping it is explicit (env/recipe_meta opt-out). Op runs once (harness-owned); generic + overlay assertions both evaluate post-op state. - **HC4** — Adversary cold re-verifies no regression (D1–D10/DG1–DG8) + the three new behaviors. ## Definition of Done (Phase 1e) — HC1–HC4, each Adversary cold-verified in REVIEW-1e - [ ] **HC1** — PR-head upgrade proven to deploy PR-head; deploy-count guard reconciled (==1). - [ ] **HC2** — repo-local ignored for a non-approved recipe, run for an approved one. - [ ] **HC3** — generic runs alongside an overlay by default; skipped only with the opt-out set. - [ ] **HC4** — no regression cold-verified; deploy-once + teardown still sacred. ## Milestones (plan §3) - **E0** — HC2 trust gate (allowlist, default-deny). *Accept: repo-local ignored unless approved.* - **E1** — HC3 additive + op/assertion split. *Accept: overlay+generic both run; opt-out skips; count=1.* - **E2** — HC1 upgrade-to-PR-head. *Accept: upgrade demonstrably deploys PR-head.* - **E3** — HC4 cold re-verification + docs → DONE. ## In flight E0 (HC2) — implementing the repo-local approval allowlist + discovery gate + unit tests. ## Gate (none claimed yet) ## Blocked (none) — bootstrap access re-verified @2026-05-28: `ssh cc-ci` ok (root, NixOS).