← ClaudeAtlas

website-qalisted

The pre-launch QA gate for a new site: run the basic tests (a11y light+dark + seo + navigation + anchors + orphans + images + tone + positioning + email + links), fix to green, then handle technical SEO / performance — ask the user to run a Lighthouse / PageSpeed Insights test and act on First Contentful Paint (FCP) and Largest Contentful Paint (LCP). Use before launch (steps 7–8 of the new-website pipeline) and after any code/copy change. Delegates Core Web Vitals / crawl depth to seo-audit. Trigger phrases: "run the tests", "QA the site", "is the site launch ready", "a11y check", "accessibility test", "Lighthouse", "PageSpeed", "FCP", "LCP", "page speed", "Core Web Vitals", "performance check", "are the tests green".
karero/website-builder · ★ 4 · Web & Frontend · score 74
Install: claude install-skill karero/website-builder
# Website QA The gate every page passes before launch, and the check re-run after any edit. Two parts: the **automated basic tests**, then the **performance handoff**. ## 1. Basic tests (fix to green) `npm test` runs the Playwright suite from the `new-website` skill's `templates/astro/` overlay against a production build (`astro build && astro preview` — the static output Cloudflare serves). Test the contract, not the cosmetics; red → green → commit. - `a11y.spec.ts` — axe WCAG 2 A/AA + best-practice on every page, **light AND dark**; zero violations. - `seo.spec.ts` — title ≤60 / description 120–160 (hard floor AND cap); og/twitter mirror title/description; canonical == og:url == absolute URL; one `<h1>`; JSON-LD parses; the sitemap matches `PAGES` exactly (drift alarm: a route missing from `PAGES` fails here — the `website-seo-geo` contract). - `navigation.spec.ts` — every `PAGES` route returns 200; internal links resolve with no redirect hop (absolute URLs on the production host count as internal). - `anchors.spec.ts` — the other half of internal-link integrity: every in-site `#fragment` (same-page `#x`, cross-page `/page#x`, relative `about#x`, or `/?q#x`) points at a real element id on its target page — links and shipped-page target ids are read from the live DOM. Catches the dead-anchor bug navigation.spec can't see — a link that 200s but scrolls nowhere because the id doesn't exist. Offline. - `orphans.spec.ts` — the inverse of navigation.spec: ev