Skip to content
A ApexCommerce Design System All pages
Phase 17 — Polish

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/.

A

Method

Four layers, run in this order every phase: machine checks first, eyes second, canon third.

Build gatetools/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).
Viewport gatetools/shot.mjs (Puppeteer): each page at desktop and phone width; asserts docScrollWidth == viewport (horizontal overflow = fail) and captures every console/page error (any = fail).
Visual review — crops of money rows, timelines, matrices and mobile heroes read by a human eye each phase; the GST line, the dated deadline and the badge wording get checked against canon by hand.
Canon grep — ABN, order IDs, incident IDs, GST arithmetic and cross-page figures are grepped for drift; a number that changes between pages is a bug even when both renders pass.
B

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
Admin and super-admin were shot at desktop width in this pass (their mobile behaviour was gated per-phase in P13–P14, including the topbar wrap fix); customer surfaces get both widths every time.
C

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.

P02 — grid children ignoring min-width:0 blew out card rows; fixed with the layout-grid min-width rule now in tokens.
P06 — admin topbar search forced 431px scroll width at 390px viewport; topbar wraps and search takes 100% basis below 576px.
P13 — a long nowrap badge in .adm-head overflowed mobile; bisected with a hide-and-measure script, badge shortened and prose moved to the head sub-line.
P16 — canon drift: an early ABN (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.
P16 — accessibility statement linked to a docs page that never existed; the build gate doesn't check page hrefs, the canon grep did. Now points at 01 · Tokens, and page-href checking is on the P18 wish-list.
P17 — design-system topbar nav grew from 6 to 9 links; wrapping verified at 390px in this regression pass.
D

Open items

Carried knowingly, with owners and dates — the same rule we hold the product copy to.

Product-video captions are auto-generated (~85% accurate) — human-reviewed captions ship 31 Oct 2026 (see accessibility statement).
Homepage carousel pause control is focus/hover-only — always-visible by 30 Sep 2026.
Invoice PDFs lack tagged headings — tagged template by 15 Oct 2026.
Mockup placeholders by design: status-page and sitemap links (#), email artefacts don't send. Documented, not forgotten.
E

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.

All 17 roadmap phases shipped and approved · 140 pages including the hub index.
Regression 11 Sep 2026: 221/221 viewports clean · build gate green on every page.
Tokens frozen since P01; deltas logged in 07 · Deltas; component contracts in 08 · Component index.
Release: apexcommerce-phase01-17.zip · signed off 11 September 2026, Melbourne time.
Next: Components