# 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
- [ ] `<title>`, `<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
- [ ] `pnpm run verify` green with no assertion deleted
