Claude-skill-registry conventional-commits
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/conventional-commits" ~/.claude/skills/majiayu000-claude-skill-registry-conventional-commits-a65daf && rm -rf "$T"
manifest:
skills/data/conventional-commits/SKILL.mdsource content
When to Use
- User asks to create a commit or "commit changes"
- User asks to review git status or diff
- User wants to analyze commit history
- After completing features/fixes that need to be committed
- User mentions "conventional commits" or asks about commit format
Critical Patterns
Commit Format
<type>(<scope>): <subject> [optional body] [optional footer]
Types (in order of usage frequency)
| Type | Description | Example |
|---|---|---|
| New functionality | |
| Bug fix | |
| Code refactoring, no functional change | |
| Add or modify tests | |
| Documentation changes | |
| Maintenance tasks | |
| Formatting, semicolons, etc. | |
| Performance improvements | |
| CI/CD changes | |
| Build system or dependencies | |
| Revert previous commit | |
Subject Rules
- ✅ Use imperative mood: "add" NOT "added" or "adds"
- ✅ Lowercase first letter
- ✅ No period at the end
- ✅ Maximum 120 characters
- ✅ Describe WHAT, not HOW
Good:
feat(book): add publication date validationfix(auth): resolve token refresh issue
Bad:
(past tense)feat(book): Added publication date validation
(uppercase)fix(auth): Resolve token refresh issue
(period)feat(book): add publication date validation.
Body Rules (Optional)
- Separate from subject with blank line
- Explain WHY, not WHAT
- Wrap at 72 characters per line
- Can use bullet points with
-
Footer Rules (Optional)
- Reference issues:
,Closes #123Fixes #456 - Breaking changes:
BREAKING CHANGE: <description> - ❌ NEVER add "Co-Authored-By" or AI attribution
Commit Workflow
1. Analyze Changes
git status # See modified/untracked files git diff # See unstaged changes git diff --staged # See staged changes git log --oneline -10 # See recent commit style
2. Group Related Changes
Rules:
- One commit = one logical change
- ❌ Don't mix features with fixes
- ❌ Don't mix multiple unrelated modules
- ✅ Multiple files are OK if they implement one feature
3. Generate Message
Analyze the changes and determine:
- Type: feat, fix, refactor, etc.
- Scope: Which module/component is affected?
- Subject: What does this change do?
- Body (if needed): Why was this change necessary?
- Footer (if needed): Issue references, breaking changes
4. Execute Commit
git add <files> git commit -m "$(cat <<'EOF' <type>(<scope>): <subject> <body> <footer> EOF )"
Code Examples
Simple Feature
feat(library/book): add publication date validation Validate that publication date is not in the future when creating or updating a book. Closes #234
Bug Fix with Context
fix(auth): resolve token refresh race condition Multiple simultaneous requests could trigger parallel token refreshes, causing some requests to fail. - Add mutex lock during refresh - Queue pending requests until refresh completes - Add retry logic for failed requests Fixes #567
Refactor (No Functional Change)
refactor(library/book): extract ISBN validation to service Move ISBN validation logic from command handler to dedicated IsbnValidatorService for reusability. No functional changes.
Breaking Change
feat(api)!: change pagination response format BREAKING CHANGE: Pagination response now uses cursor-based format instead of offset-based. Before: { items: [], total: 100, page: 1 } After: { items: [], nextCursor: "abc", hasMore: true } Migration guide in docs/migration/v2-pagination.md
Aurora YAML Changes
feat(aurora): add category entity to library module Define new Category aggregate with: - id, name, description fields - many-to-many relation with Book Run: aurora load back module -n=library/category
Dependency Update
chore(deps): update @nestjs packages to v10.2.0 - @nestjs/core: 10.1.0 -> 10.2.0 - @nestjs/common: 10.1.0 -> 10.2.0 - @nestjs/platform-express: 10.1.0 -> 10.2.0 No breaking changes in this update.
Multiple Modules (Related Change)
feat(tesla): add maintenance validation across models - Add validation in Model aggregate - Update MaintenanceHistory to check model status - Add integration tests for both modules This ensures consistency when creating maintenance records.
Commands
# View status git status # View changes git diff # Unstaged changes git diff --staged # Staged changes git diff --cached # Same as --staged # Stage files git add <file> # Stage specific file git add -p # Interactive staging (choose hunks) # Commit git commit -m "message" # Simple commit git commit # Opens editor for body # View history git log --oneline -20 # Last 20 commits git log --pretty=format:"%h %s" -20 # Custom format git log --graph --oneline --all # Visual graph # Amend last commit (use with caution) git commit --amend -m "new message" # Change message git commit --amend --no-edit # Add files to last commit
Anti-Patterns to Avoid
| ❌ Bad | ✅ Good |
|---|---|
| |
| Finish the work or use feature branch |
| |
| |
| Split into logical commits |
| Mix feat + fix + refactor | Separate commits for each type |
| Commit generated files only | Commit YAML changes + explain regeneration |
Aurora-Specific Notes
1. YAML Changes
feat(aurora): add category entity to library module Define new Category aggregate with id, name, description. Run: aurora load back module -n=library/category
2. Custom Logic in Generated Files
feat(library/book): add complex ISBN validation logic Implement custom validation in CreateBookHandler: - Validate ISBN format (10 or 13 digits) - Check checksum digit - Verify not in blacklist This logic is in a generated file marked as custom.
3. Multiple Related Modules
feat(tesla): integrate maintenance history with models - Update Model aggregate with maintenance status - Add validation in MaintenanceHistory creation - Add integration tests Changes span tesla/model and tesla/maintenance-history.
4. Test Commits
Option A: Combined with feature
feat(book): add ISBN validation with tests - Add ISBN validation in CreateBookHandler - Add unit tests for validation logic - Add e2e tests for create endpoint
Option B: Separate commit
test(book): add unit tests for ISBN validation Add comprehensive test coverage for: - Valid ISBN-10 and ISBN-13 formats - Invalid formats and checksums - Edge cases (empty, null, special chars)
Decision Trees
Should I commit now?
Has code changed? ────NO───> No commit needed │ YES │ Is it a logical unit? ────NO───> Break into smaller commits │ YES │ Do tests pass? ────NO───> Fix tests first │ YES │ Create commit
What type should I use?
New functionality? ────YES───> feat │ NO │ Fixing a bug? ────YES───> fix │ NO │ No functional change? ────YES───> refactor │ NO │ Only tests? ────YES───> test │ NO │ Dependencies? ────YES───> chore(deps) │ NO │ Documentation? ────YES───> docs │ NO │ Default: chore
How to scope?
Single module changed? ────YES───> Use <bc>/<module> │ NO │ Multiple related modules? ────YES───> Use common <bc> or higher scope │ NO │ Infrastructure? ────YES───> Use: ci, docker, config, deps │ NO │ Core/API/GraphQL? ────YES───> Use: core, api, graphql │ NO │ Omit scope or use project name
Related Skills
This skill works with:
- aurora-cli: Commit YAML changes and regenerated code
- aurora-development: Commit business logic implementations (feat commits)
- jest-nestjs: Commit test files (test commits or include with feat)
- logger: Log commit information in session reports
Workflow:
- Make changes (YAML modifications, business logic, tests)
- Use aurora-cli to regenerate code (if YAML changed)
- Use conventional-commits to create proper commit
- Use logger to document the session (optional)
Resources
- Specification: https://www.conventionalcommits.org/
- Aurora Config:
(read this for project-specific rules)commitlint.config.js - Git Hooks: Pre-commit hooks may enforce format validation