Second template axis (org identity: letterhead, footer, signature, margins) server-side: OrgTemplateStore with JSON version history, publish/rollback, sent-brief version pinning, admin role + capability, 5 admin endpoints, org-logo upload category. FE seam widened only (Role/Capability unions, interceptor); WP-24/26 consume it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
67 lines
2.5 KiB
Markdown
67 lines
2.5 KiB
Markdown
# 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.
|