Enforces conventional commit standards and branch management best practices for cleaner project history.
Install
mkdir -p .claude/skills/git && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1102" && unzip -o skill.zip -d .claude/skills/git && rm skill.zipInstalls to .claude/skills/git
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Git commits and branches using Epicenter conventions. Use when staging files, writing commit messages, splitting commits, checking standalone commits, creating branches, or inspecting commit history. For pull request titles and bodies, use the pull-request skill.Key capabilities
- →Stage files for version control
- →Format commit messages using conventional commit standards
- →Apply specific commit types such as feat, fix, docs, or refactor
- →Define optional scopes for localized component changes
- →Document breaking changes using the footer syntax
- →Create and manage branch structures
How it works
The skill enforces a specific commit message structure consisting of a type, optional scope, and description. It requires the use of imperative mood and specific formatting rules to ensure history remains auditable and compatible with automated versioning.
Inputs & outputs
When to use git
- →Writing a conventional commit message
- →Splitting complex changes into small commits
- →Checking commit types and scopes
About this skill
Git Commit Guidelines
Related Skills: See standalone-commits for making each commit reviewable and auditable and for ordering multi-file changes into dependency-ordered waves. See pull-request for PR titles, descriptions, changelog entries, issue references, and merge guidance.
PR Boundary
PR titles, PR bodies, changelog entries, issue links, username verification, CODEOWNERS notes, and merge strategy belong to pull-request.
References
This skill keeps its rules inline. For PR work, use pull-request.
Conventional Commits Format
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Commit Types
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 scripts
Scope Guidelines
- Scope is OPTIONAL: only add when it provides clarity
- Use lowercase, placed in parentheses after type:
feat(transcription): - Prefer specific component/module names over generic terms
- Your current practice is good: component names (
EditRecordingDialog), feature areas (transcription,sound) - Avoid overly generic scopes like
uiorbackendunless truly appropriate
When to Use Scope
- When the change is localized to a specific component/module
- When it helps distinguish between similar changes
- When working in a large codebase with distinct areas
When NOT to Use Scope
- When the change affects multiple areas equally
- When the type alone is sufficiently descriptive
- For small, obvious changes
Description Rules
- Start with lowercase immediately after the colon and space
- Use imperative mood ("add" not "added" or "adds")
- No period at the end
- Keep under 50-72 characters on first line
Breaking Changes & Version Bumps
Our monorepo uses a unified version scheme (8.Y.Z) where major version 8 is permanent:
- Patch (default): Every merged PR increments
Z(e.g.,8.0.1→8.0.2) - Minor: Add
!after type/scope:feat(api)!: change endpoint structure, incrementsY, resetsZ - Major: Manual only. Reserved for "if ever needed." Do not use
!expecting a major bump.
Include BREAKING CHANGE: in the commit footer with details when using !.
Examples Following Your Style:
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 endpoint
Commit Messages Best Practices
The "Why" is More Important Than the "What"
The 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.
Other Best Practices
- NEVER include Claude Code or opencode watermarks or attribution
- Each commit should represent a single, atomic change
- Write commits for future developers (including yourself)
- If you need more than one line to describe what you did, consider splitting the commit
What NOT to Include:
Generated with [Claude Code](https://claude.ai/code)Co-Authored-By: Claude <[email protected]>- Any references to AI assistance
Generated with [opencode](https://opencode.ai)Co-Authored-By: opencode <[email protected]>- Tool attribution or watermarks
When not to use it
- →Writing pull request titles or descriptions
- →Managing changelog entries or issue references
- →Defining merge strategies
Limitations
- →Does not handle pull request metadata or merge strategy
- →Requires manual intervention for major version bumps
- →Prohibits inclusion of AI-generated watermarks or tool attribution
How it compares
Unlike manual commit writing, this skill mandates strict adherence to conventional commit types and specific footer requirements for breaking changes to maintain a standardized project history.
Compared to similar skills
git side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| git (this skill) | 8 | 2mo | Review | Beginner |
| resolve-conflicts | 81 | 8mo | Review | Intermediate |
| dependency-upgrade | 26 | 5mo | Review | Intermediate |
| git-commits | 21 | 4mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by EpicenterHQ
View all by EpicenterHQ →You might also like
resolve-conflicts
antinomyhq
Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.
dependency-upgrade
wshobson
Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.
git-commits
bonny
Create well-structured git commits in logical chunks following best practices
git-advanced-workflows
wshobson
Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, collaborating on feature branches, or troubleshooting repository issues.
github-multi-repo
ruvnet
Multi-repository coordination, synchronization, and architecture management with AI swarm orchestration
git-workflow-enforcer
CrazyDubya
Ensures commits follow conventional commits, branch naming conventions, and PR templates. Use when creating commits, branches, or PRs, or when user mentions git workflow.