2.3 KiB
2.3 KiB
name, description
| name | description |
|---|---|
| code-quality-gate | Pre-commit and pre-merge code quality enforcement — lint, type-check, test, security scan, coverage threshold. Use when setting up CI gates, pre-commit hooks, or quality checks. |
Code Quality Gate
Combines patterns from ECC plankton-code-quality + AGENTS.md review standards.
Gate Structure
Level 1: Pre-Commit (Fast)
- Lint (ESLint, ruff, golangci-lint)
- Format check (Prettier, black, gofmt)
- Type check (tsc, mypy)
- No console.log / print statements
Level 2: Pre-Test (Medium)
- Unit tests
- Static analysis / code quality scan
- Dependency security audit
- Build succeeds
Level 3: Pre-Merge (Comprehensive)
- All tests pass (unit + integration + E2E)
- Code coverage meets threshold (> 80%)
- Security scan passes (no Critical/High CVEs)
- 3-tier review completed (self → peer → leader)
- No merge conflicts
- Documentation updated
Implementation
Pre-commit Hook (using pre-commit framework)
# .pre-commit-config.yaml
repos:
- repo: https://github.com/pre-commit/mirrors-eslint
hooks: [id: eslint]
- repo: https://github.com/charliermarsh/ruff-pre-commit
hooks: [id: ruff]
- repo: https://github.com/golangci/golangci-lint
hooks: [id: golangci-lint]
CI Gate Script
#!/bin/bash
set -e
echo "=== Quality Gate ==="
echo "1. Lint..."
npm run lint || { echo "FAIL: Lint"; exit 1; }
echo "2. Type check..."
npm run typecheck || { echo "FAIL: Type check"; exit 1; }
echo "3. Unit tests..."
npm test -- --coverage --coverageThreshold='{"global":{"lines":80}}' || { echo "FAIL: Tests"; exit 1; }
echo "4. Security audit..."
npm audit --audit-level=high || { echo "WARN: Security audit"; }
echo "5. Build..."
npm run build || { echo "FAIL: Build"; exit 1; }
echo "=== All gates passed ==="
Quality Metrics to Track
| Metric | Target | Fail if |
|---|---|---|
| Test coverage (lines) | > 80% | < 70% |
| Test coverage (branches) | > 70% | < 50% |
| Critical paths coverage | 100% | Any missing |
| Lint errors | 0 | > 0 |
| Type errors | 0 | > 0 |
| Security vulns (Critical/High) | 0 | > 0 |
| Build time | < 5 min | > 10 min |
Review Integration
Quality gate must pass BEFORE review can start.
- Self-review: Gate passes + manual checklist
- Peer review: Self-review confirmed + peer reads diff
- Leader review: Both reviews pass + leader approves