pre-commit
Run code hygiene checks before committing. Use before git commits or when asked to check code quality.
When & Why to Use This Skill
Enhance your development workflow with this Claude skill designed for automated pre-commit hygiene checks. It integrates type checking, linting, and unit testing to maintain high code quality standards. Ideal for modern TypeScript projects, it helps developers catch errors, enforce style guides, and automate code cleanup before every git commit, ensuring only production-ready code enters your repository.
Use Cases
- Continuous Quality Assurance: Automatically execute pnpm build, lint, and test suites to ensure code stability and type safety before committing changes.
- Architectural Consistency: Enforce specific coding patterns such as using Effect.gen over async/await and ensuring services have proper layers in Effect-TS environments.
- Frontend Optimization: Validate React components for minimal page weight, correct 'use client' directive usage, and the presence of skeleton loading states.
- Technical Debt Prevention: Systematically identify and remove console logs, commented-out code, and unresolved TODOs to maintain a clean and professional codebase.
- Automated Code Formatting: Use integrated linting tools to automatically fix unused imports and sort object properties, reducing manual formatting effort.
| name | pre-commit |
|---|---|
| description | Run code hygiene checks before committing. Use before git commits or when asked to check code quality. |
Pre-Commit Checks
Run hygiene checks before committing code.
Quick Check Commands
# Type check (don't use pnpm typecheck)
pnpm build
# Lint
pnpm lint
# Tests
pnpm test
Manual Checklist
Before Every Commit
-
pnpm buildpasses -
pnpm lintpasses - No
console.logstatements (except in CLI apps) - No commented-out code blocks
- No
// TODOwithout issue reference
For Effect-TS Code
- No
async/await- useEffect.gen - No type casts - use
satisfies - Errors extend
Data.TaggedError - Services have proper Layer
For Portal Components
- Pages are minimal
- Loading states have skeletons
-
"use client"only where needed - Barrel exports updated
For New Files
- Added to barrel exports
- Types are exported if public API
- CLAUDE.md updated if new pattern
Auto-Fix Common Issues
Unused imports
pnpm lint --fix
Sort imports/objects
ESLint perfectionist plugin handles this automatically.
Instructions
- Run
pnpm buildto check types - Run
pnpm lintto check style - Review staged changes with
git diff --staged - Flag any issues from checklist above
- Suggest fixes for problems found