Files
Project-SDE-WP-Suite/docs/waves/wave-0.md
n.siegfried 3d99d4b9d0 Import the R2 implementation spec into the repo
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>
2026-08-14 17:42:56 -05:00

3.9 KiB
Raw Permalink Blame History

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
  • <div and <span elements carrying onclick — review found 12 and 2
  • declarations of #0f62fe — review found 4
  • .help-tip elements — review found 15
  • aria-live regions — review found 0
  • pushState calls — 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.md exists 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 Discrepancies heading

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 F1F6 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