git-convention
Git convention for branch naming, commit messages, and issue labels based on GitFlow and Conventional Commits. Use when creating branches, writing commit messages, or setting up issue labels.
When & Why to Use This Skill
This Claude skill streamlines software development workflows by enforcing standardized Git conventions. It provides a comprehensive framework for branch naming, commit messages, and issue labeling based on industry-standard GitFlow and Conventional Commits methodologies. By implementing these practices, teams can ensure repository consistency, improve code maintainability, and enable seamless integration with automated CI/CD and changelog generation tools.
Use Cases
- Standardizing Team Collaboration: Establish a uniform naming convention for branches (e.g., feat/, fix/, refactor/) to help team members immediately understand the purpose of every branch in a shared repository.
- Automated Release Management: Utilize the Conventional Commits format to enable automated tools that generate semantic versioning and professional changelogs based on commit history.
- Project Tracking and Organization: Align GitHub/GitLab issue labels with development types to create a clear, traceable link between task management and actual code implementation.
- Onboarding and Best Practices: Serve as a live reference for junior developers to learn and apply professional version control standards from day one.
| name | git-convention |
|---|---|
| description | Git convention for branch naming, commit messages, and issue labels based on GitFlow and Conventional Commits. Use when creating branches, writing commit messages, or setting up issue labels. |
Git Convention
Branch Naming
Format: type/[branch/]description[-#issue]
| Type | Description | Example |
|---|---|---|
| feat | New feature | feat/login-#123 |
| fix | Bug fix | fix/button-click-#456 |
| docs | Documentation | docs/api-docs-#789 |
| style | Code style (no logic change) | style/css-format-#101 |
| refactor | Code restructure | refactor/auth-service-#102 |
| test | Add/modify tests | test/unit-tests-#103 |
| chore | Maintenance | chore/dependency-update-#104 |
Commit Message Format
<type>(<scope>): <subject>
<body>
<footer>
Rules
- Max 100 characters per line
- Subject: imperative, present tense ("change" not "changed")
- Subject: no capitalize, no period at end
- Body: motivation and contrast with previous behavior
Types
- feat: New feature
- fix: Bug fix
- docs: Documentation
- style: Formatting, missing semicolons
- refactor: Code restructure without behavior change
- test: Adding or updating tests
- chore: Build, package manager, no code change
Setup
Commit Template
git config --local commit.template .github/.gitmessage
Issue Labels
github-label-sync --access-token <token> --labels .github/labels.json <owner>/<repo>