name: pre-vercel-check description: Deploy gate: check:pre-vercel / check:pre-vercel:ci. Gebaseerd op scripts/pre-vercel-check.ts (actuele stappen + timing).
PRE-VERCEL CHECK SKILL
Ultieme drempel vóór release.
Wat het echt doet
npm run check:pre-vercel (repo root) → cd apps/web && npm run check:pre-vercel → tsx ../../scripts/pre-vercel-check.ts.
CI / één-commando parity (lint + TypeScript + build):
- Root:
npm run check:pre-vercel:ci - Of vanuit
apps/web:npm run check:pre-vercel:ci(=PREFLIGHT_MODE=ci).
In scripts/pre-vercel-check.ts:
- Standaard: type-check → ESLint → Next.js build (
check:build→next-build-with-retry.mjs). Prelude overslaan:PREFLIGHT_SKIP_FAST_CHECKS=1(alleen build). PREFLIGHT_MODE=ciofstrict: type-check → ESLint → agency-marketing + mail-legacy + public storefront URL + www-host literal audits → metadata:verify → build (ciforceert prelude; skip-flag geldt niet voorci-mode).- Los (backwards compatible / overrides met skip-flag):
PREFLIGHT_STRICT=true→ altijdtype-checkPREFLIGHT_LINT=true→ altijdlint
PREFLIGHT_MAIL_RELAY_VERIFY=1: vóór de Next-buildverify:mail-relay-env:strict(Combell relay + auth in.env.local); faalt snel bij incomplete relay-env.PREFLIGHT_VOICEJAR_WEB_VITALS_FIELD=1+DATABASE_URL: vóór de Next-build rootnpm run verify:voicejar-web-vitals-field:when-db(JSON aggregaat veld-Web Vitals; zie doc 33 §3c — strikte exit alleen als jeVOICEJAR_WEB_VITALS_REPORT_STRICT=1meegeeft).- Per stap: duur in seconden in de log (
OK in …s, totaal aan het eind).
Relay + CI-preflight in één: root npm run check:pre-vercel:ci:with-mail. Relay zonder CI-audits: npm run check:pre-vercel:with-mail (nog steeds standaard type-check + lint + relay-check + build).
Er wordt geen apart integrity-handshake.ts meer aangeroepen door dit script.
Build-retry: bij succes op poging 2 of 3 schrijft next-build-with-retry.mjs een console.warn recovery-regel (meetbare flakes / parallel .next).
Fast Lane
- Tijdens iteratie: gerichte checks (
npx eslint …,npm run type-check). - Macro vlak vóór commit:
npm run check:pre-vercel(type-check + lint + Next build). Alleen webpack-build itereren:PREFLIGHT_SKIP_FAST_CHECKS=1 npm run check:pre-vercel. - CI of “alles in één” met audits:
npm run check:pre-vercel:ci.
Verplichte richtlijnen
802-PUSH-AND-VALIDATE.mdc,200-CODE-INTEGRITY.mdc,.cursorrules(PRE-FLIGHT MANDATE).- Bij gate-failure: blocker - geen push.
Live console-audit: fix-on-fail (agent - niet alles op het eind)
Doel: bij elke Playwright-console-fout meteen root-cause fixen, één route hertesten, daarna weer volledig scannen - geen batch van tientallen failures eerst verzamelen.
- Fail-fast draaien (stopt op eerste fout; standaard live =
fast+desktop-mobile-light+ 6 workers viascripts/live-console-audit-hosts.sh):npm run full-check:live:fail-fast- Of zelf:
PLAYWRIGHT_MAX_FAILURES=1 npm run full-check:live
- Uit output halen: testtitel bevat
clean console on <route>en profiel (desktop-light/mobile-light, …). - Fix in code/config (allowlist alleen als de fout echt verwachte ruis is - liever echte fix).
- Hertest enkel die route (snel):
Pas het grep-patroon aan op het pad (speciale tekens escapen in regex waar nodig).cd apps/web && CONSOLE_AUDIT_SCOPE=extended CONSOLE_AUDIT_SPEED=fast CONSOLE_AUDIT_PROFILES=desktop-mobile-light \ PLAYWRIGHT_BASE_URL=https://www.voices.be \ npx playwright test tests/e2e/console-audit.spec.ts --grep 'clean console on /jouw/pad' --workers=1 - Opnieuw
npm run full-check:live:fail-fasttot groen; daarna optioneelnpm run full-check:live(zelfde host) voor volledige sweep zonder vroege stop.
Strengere parity met lokale full-check (langzamer): CONSOLE_AUDIT_SPEED=thorough CONSOLE_AUDIT_PROFILES=all PLAYWRIGHT_LIVE_WORKERS=2 PLAYWRIGHT_MAX_FAILURES= npm run full-check:live.