pre-commit

legacy3's avatarfrom legacy3

Run code hygiene checks before committing. Use before git commits or when asked to check code quality.

⭐1stars🔀0forks📁View on GitHub🕐Updated Jan 4, 2026

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.
namepre-commit
descriptionRun 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 build passes
  • pnpm lint passes
  • No console.log statements (except in CLI apps)
  • No commented-out code blocks
  • No // TODO without issue reference

For Effect-TS Code

  • No async/await - use Effect.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

  1. Run pnpm build to check types
  2. Run pnpm lint to check style
  3. Review staged changes with git diff --staged
  4. Flag any issues from checklist above
  5. Suggest fixes for problems found