# Checklist: before you call a page migrated - [ ] URL identical to the old one, **trailing slash included** - [ ] Any query params the old page honoured still work (`?author=`, `?skill=`, `?view=`, `?file=`, `?compare=`, `?render=`) - [ ] Rendered text content diffs clean against the pre-migration snapshot — or every difference is listed and justified - [ ] Same number of JS bytes or fewer; a previously-zero-JS page still ships zero - [ ] ``, `<meta name="description">`, and `<meta name="viewport">` preserved - [ ] One `<h1>`; heading levels do not skip - [ ] Every ARIA attribute from the original survived (`verify.mjs` asserts several) - [ ] No external `<script>`, `<link>`, `@import`, or `url()` — `node scripts/audit-ui.mjs` green - [ ] Internal links go through `BASE_URL`, not hand-written absolute paths - [ ] Screenshots at 560 / 800 / 1100 / 1600 px compared against the old page - [ ] `<html lang>` correct and still switching with the language toggle - [ ] `npm run verify` green with no assertion deleted