# WP-28 — Brief v2 demo polish (scenarios, e2e, docs)

Status: todo
Phase: 6 — Brief v2 (edit-on-the-letter, org templates, server-rendered preview)

## Why

Phase 6 ships across five WPs; this one makes it demonstrable and closes the loop:
a demo script that maps every kept PRD §12 scenario to a URL + click path, an e2e
spec covering the new flows end-to-end, story gap-fill, and the docs/README updates
that keep CLAUDE.md and the backlog truthful.

## Read first

- PRD Brief v2 §6 (demo choreography), §12 (scenario list); WP-23..27 as built
- `e2e/` (WP-19 conventions); `src/app/shared/infrastructure/scenario.ts`

## Decisions (pre-made, don't relitigate)

- **No preset registry.** The PRD's 18 scenarios collapse onto the existing toggles:
  `?role=drafter|approver|admin`, `?scenario=slow|loading|error` (the interceptor
  already covers all `/api/` calls, the new endpoints included), and
  `POST /brief/reset`. The demo script documents the mapping; no new interceptor
  cases, no scenario code.
- Demo script lives at `docs/prd/0003-brief-v2-demo-script.md` and follows the §6
  choreography (compose → preview → switch sub-org seed → "two axes, one render").
- One e2e spec, not a suite: drafter composes on canvas → submit → approve → send
  pins the org-template version; admin publishes → drafter canvas reflects it.
  Preview assertion is content-type-level (text/html), not pixel.
- CLAUDE.md gets the new role value + route only — keep it rules, not narrative.

## Files

- `docs/prd/0003-brief-v2-demo-script.md` (new)
- `e2e/brief-v2.spec.ts` (new)
- story gap-fill where WP-24..27 left holes
- `docs/backlog/README.md` (statuses), `CLAUDE.md` (roles/routes touch-up)

## Steps

1. Demo script: table scenario → URL + clicks, covering every kept §12 entry.
2. e2e spec (backend + FE running, WP-19 pattern).
3. Story sweep for the new components/states.
4. Docs updates.

## Acceptance criteria

- [ ] Every kept PRD §12 scenario has a working URL + click path in the script
      (walked manually once).
- [ ] `npm run e2e` green, including the new spec.
- [ ] Full GREEN; backlog README statuses correct; CLAUDE.md mentions
      `?role=admin` and `/brief/huisstijl`.

## Verification

Walk the demo script top to bottom against `docker compose up`; GREEN one-liner;
`npm run e2e`.

## Out of scope

New scenario interceptor cases; a scenario-switcher UI; screenshots/video.

## Risks

The demo script rots when flows change — it lists URLs + clicks only (no prose
walkthroughs), so churn stays cheap.
