diff --git a/docs/MAP.md b/docs/MAP.md
index 2487e3ac..10ffcaea 100644
--- a/docs/MAP.md
+++ b/docs/MAP.md
@@ -16,7 +16,7 @@ Rules live in `.claude/rules/`; depth docs are read-on-demand (`youcoded/docs/`,
| IPC bridge (parity) | `youcoded/desktop/src/main/preload.ts`
`youcoded/desktop/src/renderer/remote-shim.ts`
`youcoded/app/src/main/kotlin/com/youcoded/app/runtime/SessionService.kt` | ipc-bridge | `youcoded/docs/shared-ui-architecture.md` | `youcoded/desktop/tests/ipc-channels.test.ts` |
| React renderer / chrome | `youcoded/desktop/src/renderer/App.tsx`
`youcoded/desktop/src/renderer/components/HeaderBar.tsx`
`youcoded/desktop/src/renderer/styles/globals.css` | react-renderer | `youcoded/docs/renderer-chrome.md` | `youcoded/desktop/tests/overlay-layer-authority.test.ts`
`youcoded/desktop/tests/type-scale-authority.test.ts` |
| UI Workbench (dev-only) | `youcoded/desktop/src/renderer/dev/workbench/`
`youcoded/desktop/src/renderer/index.tsx` (boot branch)
`scripts/run-workbench.sh` | react-renderer | `docs/archive/specs/2026-07-29-ui-workbench-design.md` | `youcoded/desktop/tests/workbench-mock-contract.test.ts`
`youcoded/desktop/tests/workbench-channels.test.ts`
`youcoded/desktop/tests/workbench-shim-semantics.test.ts` |
-| UI review rig (dev-only) | `scripts/ui-review/run-review.sh` (sweep)
`scripts/ui-review/shot.mjs` (self-verifying CDP driver)
`scripts/ui-review/plans/` (what opens what) | react-renderer | `scripts/ui-review/README.md` · `docs/active/design/2026-08-25-ui-design-guide.md` | manual — `coverage.md` from the last run (103/104 on 2026-08-25); `scripts/workbench-boot-check.mjs` guards the switches the plans use |
+| UI review rig (dev-only) | `scripts/ui-review/run-review.sh` (sweep)
`scripts/ui-review/shot.mjs` (self-verifying CDP driver)
`scripts/ui-review/plans/` (what opens what)
`scripts/ui-review/review-cards.py` + `deck/` (the review deck: `build` / `serve` / `wait`) | react-renderer | `scripts/ui-review/README.md` · `docs/active/design/2026-08-25-ui-design-guide.md` | manual — `coverage.md` from the last run (103/104 on 2026-08-25); `scripts/workbench-boot-check.mjs` guards the switches the plans use |
| UI control primitives | `youcoded/desktop/src/renderer/components/ui/` (19 primitives)
`youcoded/desktop/src/renderer/components/ui/Button.tsx`
`youcoded/desktop/src/renderer/components/overlays/Overlay.tsx` | react-renderer | `docs/archive/specs/2026-07-16-ui-consistency-design-spec.md` (history — read §20 first, §1–§9 are superseded) | `youcoded/desktop/tests/primitive-adoption.test.ts`
`youcoded/desktop/tests/ui-primitives.test.tsx` |
| Narrow / mobile viewport | `youcoded/desktop/src/renderer/hooks/use-narrow-viewport.ts`
`youcoded/desktop/src/renderer/components/OverflowMenu.tsx`
`youcoded/desktop/src/renderer/components/NarrowViewToggle.tsx` | narrow-viewport | (rule only — no depth doc) | `youcoded/desktop/src/renderer/components/OverflowMenu.test.tsx`
`youcoded/desktop/src/renderer/components/NarrowViewToggle.test.tsx` |
| Artifact viewer | `youcoded/desktop/src/main/artifacts/read-binary-access.ts`
`youcoded/desktop/src/main/artifacts/visible-artifacts.ts`
`youcoded/desktop/src/shared/artifacts/canonicalize.ts`
`youcoded/desktop/src/shared/artifacts/resolve-tracked-path.ts`
`youcoded/desktop/src/shared/artifacts/migrate-relative-externals.ts`
`youcoded/desktop/src/renderer/state/deliverable-auto-open.ts`
`youcoded/desktop/src/renderer/components/DeliverablesCard.tsx` | artifacts | `youcoded/docs/artifacts.md` | `youcoded/desktop/tests/artifacts/read-binary-access.test.ts`
`youcoded/desktop/tests/artifacts/visible-artifacts.test.ts`
`youcoded/desktop/tests/resolve-tracked-path.test.ts`
`youcoded/desktop/tests/migrate-relative-externals.test.ts`
`youcoded/desktop/tests/deliverable-auto-open.test.ts`
`youcoded/desktop/tests/deliverables-card.test.tsx` |
diff --git a/docs/active/design/2026-08-25-ui-audit/README.md b/docs/active/design/2026-08-25-ui-audit/README.md
index ce248077..bb6847ee 100644
--- a/docs/active/design/2026-08-25-ui-audit/README.md
+++ b/docs/active/design/2026-08-25-ui-audit/README.md
@@ -1,5 +1,7 @@
# UI audit 2026-08-25 — screenshot evidence
+> Pages dated before 2026-08-27 were built by the v1 `review-cards.py` / `review-page.py`, which no longer exist in that form; their JSON specs stay as the record of what was asked. New decks use the v2 tool (`phase-c-review-v2.json` is the template; `scripts/ui-review/README.md`).
+
- `gallery.html` — every captured surface, all themes side by side. Open the file in the
app's file viewer or a browser. Names are `-` (`main-`, `overlays-`,
`narrow-`, `tall-`, `latency-`, `marketplace-` from the workbench sweep; `live-` and
diff --git a/docs/active/handoffs/2026-08-26-model-download-resume-handoff.md b/docs/active/handoffs/2026-08-26-model-download-resume-handoff.md
index a62bada5..d06d17cc 100644
--- a/docs/active/handoffs/2026-08-26-model-download-resume-handoff.md
+++ b/docs/active/handoffs/2026-08-26-model-download-resume-handoff.md
@@ -55,7 +55,7 @@ The plan was reviewed once against the code and rewritten. These were real error
## 4. The gate (Task 2, Step 13) — how to present it
-Destin reviews UI as a **cards page**, not a gallery and not prose: `python3 scripts/ui-review/review-cards.py build ` (header comment documents the JSON). One card per item, the screenshot is the hero, numbered markers drawn on the image, a one-line problem + one-line fix + Yes/No per marker. He rejected both a gallery and a prose-first page on 2026-08-26 ("gotta read WAY too much text in different areas… images are poorly organized/annotated"). The plan says "present the sheets"; **this is the format**.
+Destin reviews UI as a **review deck** (v2 since 2026-08-27 — the format below is superseded): `python3 scripts/ui-review/review-cards.py serve ` in the background; one point per step, Before | After with the changed region boxed by the rig, a headline and three cards (What changed / You'll notice / Risk), Yes / No / Other; answers reach Claude on Submit. Spec template: `docs/active/design/2026-08-25-ui-audit/phase-c-review-v2.json`; rules in `scripts/ui-review/README.md`. The v1 description that follows is kept for the record only — the old JSON shape no longer builds. He rejected both a gallery and a prose-first page on 2026-08-26 ("gotta read WAY too much text in different areas… images are poorly organized/annotated"). The plan says "present the sheets"; **this is the format**.
Cards to build, from the rig's shots in all six themes:
diff --git a/docs/active/handoffs/2026-08-27-review-deck-tooling-handoff.md b/docs/archive/handoffs/2026-08-27-review-deck-tooling-handoff.md
similarity index 100%
rename from docs/active/handoffs/2026-08-27-review-deck-tooling-handoff.md
rename to docs/archive/handoffs/2026-08-27-review-deck-tooling-handoff.md
diff --git a/scripts/ui-review/review-cards.py b/scripts/ui-review/review-cards.py
index 9da254af..aa1e4dac 100644
--- a/scripts/ui-review/review-cards.py
+++ b/scripts/ui-review/review-cards.py
@@ -11,7 +11,7 @@
feedback summary. There is deliberately no separate crop step — a stale intermediate file drew
wrong rings with no error in v1. Spec format + writing rules:
docs/archive/specs/2026-08-27-review-deck-v2-design.md (§4–5). History of the
-three rejected formats before this one: docs/active/handoffs/2026-08-27-review-deck-tooling-handoff.md."""
+three rejected formats before this one: docs/archive/handoffs/2026-08-27-review-deck-tooling-handoff.md."""
import argparse
import os
import sys