Work completed before this repository adopted the tracker convention — v0.0.1 to v0.9.3, May to August 2026, across ten phases from the original static HTML site to the current Vite + React SPA.
Assigned in bulk on 2026-08-18. Per-batch attribution is NOT recoverable from the record: closure timestamps collapse into five bulk-close days (119 issues on 2026-05-17 alone), and only some batches name their issue numbers in the changelog. Reconstructing ten milestones from that would have looked tidier and been mostly invention.
This is a bucket, not a batch, and it says so deliberately. The narrative is in docs/history/BATCH_LEDGER.md; the version-by-version record is in docs/history/DEVELOPMENT_LOG.md.
Landed: the site is live at https://qn.isnull.dev and healthy.
Six accessibility defects found by reading the markup, never by testing with a screen reader or by keyboard alone — see the standing gap in docs/qa/ClaudeQACoverage.md.
Landed when: all six are closed AND a keyboard-only pass has actually been walked on the home, services and contact pages.
Layout and interaction defects, mostly at small widths. SMB decision-makers browse on phones, which is the whole reason these are not cosmetic.
Landed when: all four are closed and the home, services and contact pages have been checked at 320px.
Real layout defects on the deployed site, found by rendering it rather than by reading markup.
Context: Batches 10 and 11 were twenty issues filed from reading source, and seven of ten misstated their own evidence. scripts/qa-browser.mjs was written to stop that, and on its first run against production it found these — none of which the twenty had noticed.
Landed when: qa-browser.mjs reports no findings across the default paths and viewports.