Skip to content

Quality Gates

Five gates run on every change before it can merge to main. You don’t trigger them manually — they run automatically as part of the build process.

Run /quality-check in Claude Code at any time to see the current status of all gates.

What it checks: That the feature works as you described, and that the app behaves correctly for users.

This gate is yours. After each epic’s code is written, Claude gives you a checklist of things to try in your browser. You verify the feature looks and works the way you intended. If something is off, describe it to Claude and it will fix it before the epic merges.

What it checks: That no secrets (passwords, API keys, tokens) have been accidentally included in the code, and that the app follows security best practices.

This runs automatically. Claude handles any failures. If your feature handles personal data, you are responsible for reviewing it as part of your manual check.

What it checks: That the code is valid TypeScript, passes linting rules, is consistently formatted, and the app builds without errors.

This gate is fully automated. If it fails, Claude reads the failure details, fixes the issue, and reruns the gate.

What it checks: That all automated tests pass.

This gate is fully automated. Claude investigates and fixes failing tests without involving you unless the failure reveals an ambiguity in the requirements.

What it checks: That the app meets minimum scores for speed, accessibility, and best practices.

Automated performance checks run on every build. Scores for performance, accessibility, and best practices must meet a defined threshold before the change can merge.


Claude monitors gate results automatically. If a gate fails, Claude reads the failure, fixes the issue, and pushes an update. The gates rerun on the new commit. You only get involved if Claude cannot resolve it — which usually means there is an ambiguity in the requirements, not a code problem.