Closed-loop UI redesign: plan with the user, execute page-by-page, then have a browser-driven evaluator score the live app on five design dimensions — failures loop back to the executor with concrete feedback until every dimension passes.
Purpose: Understand the current app and codebase, discuss redesign scope and direction with the user, and produce an approved re-design plan.
Output artifact: write to the absolute path provided in your prompt
Valid results this stage writes:pending (plan drafted, awaiting user approval), approved (user has explicitly confirmed)
<HARD-GATE>
Do NOT transition out of this stage until the user explicitly approves the plan.
Write `result: approved` only after they have said so.
</HARD-GATE>
This is an interruptible stage — you may pause naturally for user Q&A at any point.
Read epoch from state.md. Immediately write the output artifact at the path shown in your I/O context with result: pending so the stop hook knows the stage is in progress:
---
epoch: <epoch>
result: pending
---
# Re-design Plan: <Topic>
## Current State Assessment
<Summary of pages reviewed, current visual style, main weaknesses>
## Redesign Scope
<List of pages / components in scope>
## Design Direction
<Mood, identity, reference inspirations, key visual decisions>
## Design System Changes
<Color palette, typography scale, spacing system, component updates>
## Page-by-Page Changes
### <Page 1>
- <specific change>
### <Page 2>
- <specific change>
## Constraints & Out of Scope
<Hard constraints the executor must respect; what is NOT being changed>
## Acceptance Criteria
- [ ] Design feels like a coherent whole (consistent colors, type, spacing)
- [ ] No unmodified stock component defaults or obvious AI-generated patterns
- [ ] Typography hierarchy and spacing are consistent across all in-scope pages
- [ ] Color contrast ratios meet WCAG AA minimum
- [ ] Primary actions and navigation remain clear and usable
- [ ] All in-scope pages match the agreed design direction