Git commit and pull request guidelines using conventional commits. Use when the user says "commit this", "stage and commit", "write a commit message", "create a PR", or when creating commits, writing commit messages, or reviewing PR descriptions.
Related Skills: See
incremental-commitsfor breaking multi-file changes into atomic commits.
Use this pattern when you need to:
feat:/fix: PRs.Load these on demand based on what you're working on:
feat:/ PRs, read fix:<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
feat: New features (correlates with MINOR in semantic versioning)fix: Bug fixes (correlates with PATCH in semantic versioning)docs: Documentation only changesrefactor: Code changes that neither fix bugs nor add featuresperf: Performance improvementstest: Adding or modifying testschore: Maintenance tasks, dependency updates, etc.style: Code style changes (formatting, missing semicolons, etc.)build: Changes to build system or dependenciesci: Changes to CI configuration files and scriptsfeat(transcription):EditRecordingDialog), feature areas (transcription, sound)ui or backend unless truly appropriateOur monorepo uses a unified version scheme (8.Y.Z) where major version 8 is permanent:
Z (e.g., 8.0.1 → 8.0.2)! after type/scope: feat(api)!: change endpoint structure — increments Y, resets Z! expecting a major bump.Include BREAKING CHANGE: in the commit footer with details when using !.
feat(transcription): add model selection for OpenAI providersfix(sound): resolve audio import paths in assets modulerefactor(EditRecordingDialog): implement working copy patterndocs(README): clarify cost comparison sectionchore: update dependencies to latest versionsfix!: change default transcription API endpointThe commit message subject line describes WHAT changed. The commit body explains WHY.
Good commit (explains motivation):
fix(auth): prevent session timeout during file upload
Users were getting logged out mid-upload on large files because the
session refresh only triggered on navigation, not background activity.
Bad commit (only describes what):
fix(auth): add keepalive call to upload handler
The first commit tells future developers WHY the code exists. The second makes them dig through the code to understand the purpose.
Generated with [Claude Code](https://claude.ai/code)Co-Authored-By: Claude <[email protected]>Generated with [opencode](https://opencode.ai)Co-Authored-By: opencode <[email protected]>