Release Gate 2.0

Validate route truth, docs truth, static UX, release E2E coverage, visual smoke, console health, and security audit wiring


Release Gate 2.0

Release Gate 2.0 is the launch-truth contract for ReformCode. It checks more than TypeScript, lint, unit tests, and build output: it also validates route protection truth, docs truth, static UX risks, E2E release coverage, security audit wiring, and visual/console smoke coverage.

Run The Fast Gate

npm run verify:launch-gate

The command writes:

  • .artifacts/release-gate/launch-gate.json
  • .artifacts/release-gate/launch-gate.md

The gate fails only on release-blocking findings. A passing gate means the deterministic launch contract is currently satisfied.

What It Checks

  • Route Truth: every App Router page and API route is explicitly classified by the route protection matrix, including public, authenticated, admin, webhook, and API-key access classes.
  • Docs Truth: every indexed documentation page has a markdown file, every navigation docs link points at an indexed page, and indexed docs avoid stale launch phrases.
  • Static UX Truth: app and component source avoid exact dead href="#" links, native browser dialogs, and focused tests.
  • E2E Coverage Truth: release E2E scripts include launch, dashboard, workspace, reports, and launch-gate smoke specs; any skipped E2E suite needs documented replacement coverage.
  • Security Truth: package scripts include security:audit, verify:launch-gate, verify:release, and the release pipeline composes security audit plus launch gate checks.

Browser Smoke

Release Gate 2.0 adds e2e/launch-gate-smoke.spec.ts, which verifies launch-critical routes render meaningful content without exact dead hash links, blank pages, HTTP errors, browser page errors, or browser console errors.

The current smoke set covers:

  • /
  • /dashboard
  • /code
  • /reform
  • /reports
  • /settings
  • /docs/getting-started/introduction
  • /api-docs
  • /security

Run the browser smoke directly:

PLAYWRIGHT_BASE_URL=http://127.0.0.1:3027 \
PLAYWRIGHT_WEB_SERVER_COMMAND='DISABLE_AUTH=true npm run dev -- --hostname 127.0.0.1 --port 3027' \
npx playwright test e2e/launch-gate-smoke.spec.ts e2e/reports-evidence-studio.spec.ts --workers=1 --reporter=list

Full Release Command

npm run verify:release

This now runs type-check, lint, unit tests, Release Gate 2.0, continuous evaluations, npm audit, production build, and the serial release E2E suite.