The plan was delivered as wp-suite-implementation-spec.zip and lived only in Downloads, so every "read CLAUDE.md first" instruction in it pointed at a file the repo did not have. Bring it in unchanged: CLAUDE.md, IMPLEMENTATION.md, and docs/waves/wave-0 through wave-9 plus backlog.md. UX-REVIEW-2026-08-14.md is committed alongside it. It is the review that produced F1-F6, S1-S13 and the A/B/C assessments, and item IDs throughout the wave files cite it, so it belongs under version control rather than sitting untracked in the working tree. No application code changes here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.9 KiB
Wave 0 — Orientation
Do this before wave 1. Nothing else in the plan should be started until T0.1 is merged.
The item IDs and file references throughout this plan come from a UX review conducted on
branch users/directory-super-user, not from a fresh read of the repo you are in. The line
numbers were accurate at the time of the review. Confirm them before relying on them.
T0.1 — Build the file map
- Items: none (prerequisite)
- Depends on: nothing
- Blocks: every other task
- Surface: documentation only
- Files: creates
docs/reference/file-map.md
Do:
Inventory the frontend and record it. The review described html/ as 6 pages, 4
stylesheets, roughly 11,900 lines. Confirm that and write down what is actually there.
For each of the 6 pages record: file path, what it is called in this plan (launcher, SOP wizard, creator, admin, field view, directory/users, login), which stylesheets it loads, which scripts it loads, and whether it renders inside an iframe or hosts one.
For each stylesheet record: path, and which pages consume it.
Then verify these specific references from the review and record the current line number
next to each, or mark it NOT FOUND:
| Reference | Claim |
|---|---|
wp-creation-app.js:1144 |
alert() reading "Subject and WP Type are required" |
wp-creation-app.js:1962-1972 |
logged-override path for predecessor constraints |
work-package-suite-app.js:326 |
the only beforeunload listener, analytics dwell tracking |
work-package-suite-styles.css:322-328 |
outline: none plus a pale 3px focus glow |
work-package-suite-styles.css:336 |
comment about .field-hint rendering unstyled |
console.css:85-87 |
the contrast fix that was not propagated |
admin.js:484-517 |
language and time localization |
server/seed_demo.py |
seeding script that does not authenticate |
Also record counts, so later waves can prove they went down:
- occurrences of
alert(,confirm(,prompt(— review found 79 app-wide, 43 in the creator <divand<spanelements carryingonclick— review found 12 and 2- declarations of
#0f62fe— review found 4 .help-tipelements — review found 15aria-liveregions — review found 0pushStatecalls — review found 0
Do not: change any application code in this task. It is a read and a document.
Done when:
docs/reference/file-map.mdexists and lists all pages, stylesheets and scripts- every reference in the table above is confirmed with a current line number or marked
NOT FOUND - the seven counts are recorded with the command used to produce each
- any file path used in a later wave file that does not exist is listed under a
Discrepanciesheading
T0.2 — Confirm the app runs and the baseline is captured
- Items: none (prerequisite)
- Depends on: T0.1
- Blocks: every task with a visual done-when
- Surface: local environment
- Files: creates
docs/reference/baseline/
Do:
Run the app locally (uvicorn server.app:app against a throwaway SQLite database) and drive
the first-run flow: sign in, create a project, SOP wizard, creator, directory, field view.
Capture baseline screenshots at 390px and 1440px for each of the 6 pages into
docs/reference/baseline/. Name them <page>-<width>.png. These are the before images
every later PR compares against.
While doing this, confirm each of F1 through F6 still reproduces and note it. If one does
not reproduce, say so in the PR rather than deleting the task from wave 1.
Do not: fix anything you see. Wave 1 does that.
Done when:
- the app runs locally from a clean database
- 12 baseline screenshots exist (6 pages x 2 widths)
- each of
F1–F6is marked reproduces / does not reproduce, with a screenshot reference - the exact run command and any setup steps are recorded in
docs/reference/file-map.md