# 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 - `-.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`–`F6` is 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`