| name | quality-gate |
| description | Lightweight post-edit verification pipeline — format, lint, typecheck, test in one pass |
| layer | utility |
| category | quality |
| triggers | ["quality gate","quality check","run checks","lint and test","pre-commit check","verify changes","check my code"] |
| inputs | [{"path":"File or directory to check (default: changed files)"},{"mode":"quick (format+type) | full (all checks) | strict (fail on warnings)"}] |
| outputs | [{"report":"Pass/fail status per check with remediation list"},{"verdict":"PASS | WARNING | BLOCK"}] |
| linksTo | ["code-review","test","fix","audit"] |
| linkedFrom | ["cook","ship","verify"] |
| preferredNextSkills | ["fix","code-review"] |
| fallbackSkills | ["audit"] |
| riskLevel | low |
| memoryReadPolicy | none |
| memoryWritePolicy | selective |
| sideEffects | ["May auto-fix formatting issues with --fix flag"] |
Quality Gate
Purpose
Run a fast, automated verification pipeline on changed files before committing or
opening a PR. Unlike a full audit, quality-gate is lightweight and targeted — it
checks only what changed and gives a pass/fail verdict in seconds.
Use this when:
- You just finished implementing a feature
- Before creating a commit or PR
- After a refactor to confirm nothing broke
- As a quick sanity check mid-development
Key Concepts
Check Pipeline (executed in order, stops on BLOCK)
| Step | Tool | Scope | Blocks on |
|---|
| 1. Format | Biome / Prettier | Changed files | Never (auto-fixes) |
| 2. Typecheck | tsc --noEmit | Project-wide | Any error |
| 3. Lint | Biome / ESLint | Changed files | Error-level rules |
| 4. Test | vitest / jest / pytest | Affected tests | Any failure |
| 5. Console.log | grep | Changed .ts/.tsx | In strict mode |
| 6. Secrets | grep patterns | Changed files | Any match |
Modes
- quick — Format + Typecheck only (2-5 seconds)
- full — All 6 checks (default, 10-30 seconds)
- strict — All checks, warnings become blockers
Verdict Logic
BLOCK — Any check failed (typecheck error, test failure, secret detected)
WARNING — Non-critical issues (console.log found, lint warnings)
PASS — All checks green
Workflow
Phase 1: Detect Changed Files
git diff --name-only HEAD
git diff --cached --name-only
grep -E '\.(ts|tsx|js|jsx|py|go|rs)$'
Phase 2: Run Checks
Execute checks sequentially. If a BLOCK-level check fails, report immediately
but continue remaining checks to give a complete picture.
npx biome format --write <files>
npx tsc --noEmit 2>&1 | grep -E
npx biome lint <files>
npx vitest run --reporter=verbose --changed
grep -rn <changed-ts-files> | grep -v
grep -rn -E <changed-files>