Wave 3 exit - record what the wave actually changed on screen

wave-3.md asks for "no unintended visual change on any page versus wave 2".
Measured with tests/token_check.py, b105135 against the end of the wave, all 7
pages: 7 elements changed and all 7 are the fixes the wave was for - two
.user-pick selects going white (T3.4) and five green action buttons going blue
(T3.5). The other 3,493 elements compute exactly what they computed at the end of
wave 2, and all 178 wave-2 token names resolve to the same literals.

Three fixes are invisible to a computed-style diff and are recorded with how they
were verified instead: two green buttons that need application state the fixture
does not reach, and the sentence-case pass, which changes text rather than style.

The one exit criterion not met is carried forward explicitly rather than ticked:
T3.2's "no page stylesheet declares a raw spacing or type value" is complete for
colour and open for spacing and type (BL-010).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-15 19:13:42 -05:00
parent ce6fb840f0
commit 12c0e5ca74

View File

@@ -864,6 +864,51 @@ the label is a description, not a title.
---
## 13. Wave 3 exit — everything wave 3 changed on screen
`wave-3.md` asks for "no unintended visual change on any page versus wave 2". Measured with
`tests/token_check.py`, wave 2 (`b105135`) against the end of wave 3, all 7 pages:
**7 elements changed. All 7 are the fixes the wave was for.**
| Page | Element | Change | Task |
|---|---|---|---|
| sop | `#role_super_name.user-pick` | `#f4f4f4``#ffffff`, border `#e0e0e0``#8d8d8d` | `T3.4` (`A3`/`F5`) |
| sop | `#role_foreman_name.user-pick` | same | `T3.4` |
| sop | `#sop-complete-btn.nav-btn.primary` | `#198038``#0f62fe` | `T3.5` (`A5`) |
| sop | `#wp-gate button.nav-btn.primary` | `#198038``#0f62fe` | `T3.5` |
| creator | `#sticky-save .btn-generate` | `#198038``#0f62fe` | `T3.5` |
| creator | `.nav-row .btn-generate` | `#198038``#0f62fe` | `T3.5` |
| creator | `#hold-modal .btn-generate` | `#198038``#0f62fe` | `T3.5` |
Every other element on every page — 3,493 of them — computes exactly what it computed at the
end of wave 2, and all 178 wave-2 token names resolve to the same literals. `T3.2`'s
consolidation of five token systems into one changed nothing on screen, which was its whole
contract.
**Three fixes are not visible in that table and are verified another way**, because a computed
-style diff cannot see them:
| Fix | Why it is invisible here | How it was verified |
|---|---|---|
| `.card.complete .card-button` green → primary | needs a completed SOP; the fixture has none | source diff |
| `.use-btn` green → primary | needs a suggested value to be offered | source diff |
| Sentence case, ~30 buttons + 46 labels | `token_check` fingerprints computed style, not text or `text-transform` | the button inventory: 0 uppercase labels, 251 buttons still present |
| Focus rings | `:focus` is not in the fingerprint | measured directly with CDP focus emulation — see `T3.4` |
### Exit criteria
- [x] one token source of truth; page sheets alias only — `theme-light.css` is the only file
in `html/` containing a colour literal
- [x] `#0f62fe` declared once — one sheet, down from five
- [x] no unintended visual change versus wave 2 — 7 changes, 7 intended
- [x] fields look editable, buttons speak one language
- [ ] **not met:** `T3.2`'s "no page stylesheet declares a raw spacing or type value" — colour
is complete, spacing and type are **BL-010**, and §11 explains why the two halves of that
check cannot both be satisfied in the same task
---
## Appendix A — every `theme-light.css` declaration, line by line
`T3.1`'s first done-when is "lists every declaration with file and line". §4 itemises the 82