Wave 4's five exit criteria, and what shows each of them:
counts come from the server, identical across users aggregates_check 16/16
work packages addressable by URL, incl. signed-out url_state_check 23/23
drafts autosave, unsaved work guarded, save honest autosave_check 34/34
toasts announce, helper text legible, focus visible a11y_check 22/22
X1 and X5 cleared see below
X1 is cleared: a work package has an address, and WPUrl.absolute() is what
CR-011 and CR-014 will paste into an email in wave 8.
X5 is cleared: /api/wps/metrics returns by_location with its dimensions declared
alongside the groups, so CR-004 and CR-018 can group by building/floor/sector in
wave 6 by changing the dimensions and the keys, not the response shape.
Four metrics moved off their wave 0 baselines and are recorded in the file map so
wave 9 measures against the right numbers. The one that matters most is not in
the plan's list: `outline: none` went from six to one, and the survivor has its
replacement in the rule directly above it.
The file map also now says to run the browser probes ONE AT A TIME. Chained, they
exhaust the headless browser's ports and abort with "browser would not start",
which reads as a code fault and is not one - it cost a confusing red run here.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>