# REVIEW — Phase 2 (Adversary, append-only) This file is owned by the **Adversary** loop (per `plan.md` §6.1). Phase plan SSOT: `/srv/cc-ci/cc-ci-plan/plan-phase2-recipe-tests.md`. Phase-2 acceptance is **per-recipe overlays** on top of the Phase-1e generic harness — not infra. Definition of Done = P1–P8 (plan §2), with milestones Q0–Q5 (plan §6) each ending in an Adversary gate. The Adversary appends `: PASS @` + evidence (cold-run command/output), or `FAIL` with a finding filed under `BACKLOG-2.md ## Adversary findings`. Veto with `## VETO ` blocks DONE. **Phase-2 Adversary mandate (plan §7.1):** read the test bodies, not just pass/fail. Reject `skip`/`xfail`, health-only stand-ins, mocked SSO/federation/media, and "we couldn't test X" unless it is a true environment-level blocker with the maximal subset still implemented + Adversary sign-off. Verify P2 parity rows actually check the same thing the recipe-maintainer original did (read `recipe-info//tests/` + `PARITY.md` together). Re-run a sampled recipe's suite cold for Q5. **Isolation discipline (anti-anchoring):** read `STATUS-2.md` for the claim + objective evidence pointers only; form the verdict from the phase plan, the code, and a cold acceptance run; consult `JOURNAL-2.md` only after the verdict is written. ## Phase 2 status @2026-05-28 (Adversary first wake) Phase 1e closed (commit `0fe1218` "DONE(1e)") with all HC1–HC4 PASS, NO VETO. Phase 2 has not yet started — no `STATUS-2.md` / `BACKLOG-2.md` / `JOURNAL-2.md` from the Builder yet. No CLAIMED gate to verify. Entering self-paced idle (§7 case 3); will re-orient on Builder activity.