feat(cmo): guided wizard — one action at a time
Why
Turn the project dashboard from a static list of cards into a step-by-step launch guide. Asked-for behaviour: open project → present one task → generate content → validate → next.
What
-
GET /api/projects/<id>/wizard/nextreturns the next pending action (highest priority) with progress counter, orcomplete: truewhen done. -
/projects/<id>/wizard/serves a new single-card view with custom previews per action kind (HTML iframe for landing_page, capsule grid for capsule_set, fact-sheet/checklist tabs for press_kit, JSON otherwise). - Buttons: Generate / Regenerate / Approve & next / Skip. Reuses the existing executor + status endpoints — no new generation code, no schema changes.
- "Open guided wizard →" link added to the project detail header.
Verification
- HTML route 200,
GET /api/projects/<id>/wizard/nextreturns the right pending action with progress 4/6 on aziz/cnc. - Full pytest suite green (352).
Test plan
-
Open https://cmo.laparedita.com/projects/53e8d9e7-6438-4f1d-83ab-4ca4863202d8/wizard/ -
Verify "screenshot_capture" appears as next pending action (executable=false → only Approve/Skip). -
Mark a few done, confirm progress bar advances and the next card loads.