| name | Pre-Commit Quality Checking |
| description | Runs mandatory quality checks before commits. Executes build, tests, and pattern validation from code-review-standards.md. Use when ready to commit code or when asked to verify code quality meets project standards. |
Pre-Commit Quality Checking
Automates the mandatory checklist from .claude/modules/code-review-standards.md.
Quick Workflow
When ready to commit, run these checks in order:
- Build verification:
npm run build - Test verification:
npm test - Pattern validation:
bash .claude/skills/pre-commit-quality/scripts/validate-patterns.sh
All three must pass before committing.
Step-by-Step Process
Step 1: Run Build
npm run build
Must pass with zero errors. If build fails:
- Fix TypeScript errors shown in output
- Rerun build until it passes
- See typescript-standards.md for type safety patterns
Step 2: Run Tests
npm test
All tests must pass. If tests fail:
- Review failing test output
- Fix the issues causing failures
- Rerun tests until all pass
- See testing-standards.md for testing patterns
Step 3: Validate Patterns
bash .claude/skills/pre-commit-quality/scripts/validate-patterns.sh
No violations allowed. Script checks for:
anytypes (use specific types orunknown)- Wrong Supabase client in wrong environment
console.login production code
If validation fails, fix the reported issues and rerun.
Complete Review Checklist
For the full pre-commit checklist, see:
- code-review-standards.md - Complete checklist
- nextjs-patterns.md - Next.js patterns
- supabase-security.md - Supabase security
- anti-patterns.md - What to avoid
Common Issues and Fixes
Build Fails: TypeScript Errors
- Check for missing types
- Ensure imports are correct
- Fix any
anytypes to specific types
Tests Fail
- Read the test output carefully
- Fix the code causing the failure
- Ensure all test files are updated
Pattern Validation Fails
any types found:
- Replace with specific type:
Recipe,User, etc. - Use
unknownif type is truly unknown - Add type guards for union types
Wrong Supabase client:
- Server Components:
import { createClient } from '@/lib/supabase/server' - Client Components:
import { createClient } from '@/lib/supabase/client'
console.log found:
- Remove from production code
- Use proper logging if needed
- console.log is fine in test files
After All Checks Pass
Once all checks pass:
- Stage your changes:
git add . - Commit with descriptive message
- See CLAUDE.md for commit message format
Philosophy
This skill enforces quality standards without you having to remember every check. It references the documentation in modules/ for the "why" and "what", while providing the "how" to validate.