QA report
How 140 pages were checked, what the checks caught, and what we're still carrying.
Nothing here is aspirational: every number below came out of a run, and the runs are reproducible from
tools/.
Method
Four layers, run in this order every phase: machine checks first, eyes second, canon third.
tools/build.py: resolves every data-icon/#icon-id against the 2,050-symbol sprite (unknown icon = fail) and validates every asset link (CSS, JS, fonts, images; # and tel: exempt).tools/shot.mjs (Puppeteer): each page at desktop and phone width; asserts docScrollWidth == viewport (horizontal overflow = fail) and captures every console/page error (any = fail).Full-inventory regression pass
Run 11 September 2026 against the complete shipped inventory — every page, not just the new ones. This page itself was shot immediately after splicing: 2/2 clean, included in the totals below.
- Viewports
- 221 = 139 desktop (1440×1000) + 82 mobile (390×844, customer surfaces)
- Overflow fails
- 0 — max horizontal overrun 0px at both widths
- Console errors
- 0 across all 221 loads
- Build gate
- 140 html scanned · 0 unknown icons · 0 broken asset links
- Surfaces
- storefront 9 · cart 8 · checkout 10 · orders 9 · returns 7 · reviews 5 · auth 11 · account 10 · admin 40 · super-admin 8 · emails 6 · errors 4 · legal 3 · design-system 9 + hub
Fix log — what the gates caught
A gate that never fails is a gate nobody trusts. These are the real catches, kept here so the next team knows where the bodies are buried.
min-width:0 blew out card rows; fixed with the layout-grid min-width rule now in tokens..adm-head overflowed mobile; bisected with a hide-and-measure script, badge shortened and prose moved to the head sub-line.51 824 753 556) survived in 61 footers; corrected to 48 622 118 907 everywhere, and 60 dead footer legal links pointed at the new legal pages.Open items
Carried knowingly, with owners and dates — the same rule we hold the product copy to.
#), email artefacts don't send. Documented, not forgotten.Sign-off
Seventeen phases, one story: order 08412, courier van CF-12, incident INC-44 and Charlotte's locker code read identically on every page that mentions them.
apexcommerce-phase01-17.zip · signed off 11 September 2026, Melbourne time.