commit-helper
Helps write Git commit messages following the Conventional Commits specification. Use this skill when the user asks to commit changes, write commit messages, format commits, or mentions git commits.
Works with
---
name: commit-helper
description: Helps write Git commit messages following the Conventional Commits specification. Use this skill when the user asks to commit changes, write commit messages, format commits, or mentions git commits.
license: MIT
---
# Commit Message Helper
A skill for creating properly formatted Git commit messages following the [Conventional Commits](https://www.conventionalcommits.org/) specification.
## When This Skill Activates
This skill activates when you:
- Ask to commit changes
- Mention commit messages
- Request git commit formatting
- Say "commit" or "git commit"
## Commit Message Format
```
<type>(<scope>): <subject>
<body>
<footer>
```
## Types
| Type | Description |
|------|-------------|
| `feat` | A new feature |
| `fix` | A bug fix |
| `docs` | Documentation only changes |
| `style` | Changes that do not affect the meaning of the code (formatting, etc.) |
| `refactor` | A code change that neither fixes a bug nor adds a feature |
| `perf` | A code change that improves performance |
| `test` | Adding missing tests or correcting existing tests |
| `chore` | Changes to the build process or auxiliary tools |
| `ci` | Changes to CI configuration files and scripts |
| `build` | Changes that affect the build system or external dependencies |
## Scope
The scope should indicate the area of the codebase affected:
- For frontend: `components`, `hooks`, `store`, `styles`, `utils`
- For backend: `api`, `models`, `services`, `database`, `auth`
- For devops: `ci`, `deploy`, `docker`
- Project-specific scopes are also acceptable
## Guidelines
### Subject Line
- Use imperative mood ("add feature" not "added feature" or "adds feature")
- No period at the end
- Maximum 50 characters
- Be specific and concise
### Body
- Separate subject from body with a blank line
- Use the body to explain **what** and **why**, not **how**
- Wrap at 72 characters per line
- Mention any breaking changes
### Footer
- Reference issues: `Closes #123`, `Fixes #456`, `Refs #789`
- Multiple issues: `Closes #123, #456, #789`
- Breaking changes: Start with `BREAKING CHANGE:` followed by description
## Examples
### Good Examples
```
feat(auth): add OAuth2 login support
Implement OAuth2 authentication flow to allow users to log in
with their Google or GitHub accounts.
This change adds:
- New OAuth2 middleware for handling callbacks
- Updated login UI with social login buttons
- User profile synchronization
Closes #123
```
```
fix(api): resolve race condition in user creation
The concurrent user creation requests could result in duplicate
email entries. Added unique constraint and proper error handling.
Fixes #456
```
```
refactor(user): simplify profile update logic
Extracted common validation logic into a reusable function
to reduce code duplication across profile update endpoints.
```
```
docs: update API documentation with new endpoints
Added documentation for the v2 user management endpoints
including request/response examples and error codes.
```
### Bad Examples
```
updated stuff # Too vague, no type/scope
fixed bug # No context about which bug
feat: added feature # Redundant ("feat" means new feature)
Feat(User): Add Login # Incorrect capitalization
feat: A really really really long subject line that exceeds the recommended limit # Too long
```
## Breaking Changes
When introducing breaking changes, add `BREAKING CHANGE:` to the footer:
```
feat(api): migrate to REST v2
The API endpoints have been restructured for better consistency.
Old endpoints are deprecated and will be removed in v3.0.
BREAKING CHANGE: `/api/v1/users` is now `/api/v2/users`.
All consumers must update their integration by 2025-03-01.
```
## Workflow
When writing a commit message:
1. **Review changes** - Run `git diff` to understand what changed
2. **Identify type** - Determine the type of change
3. **Identify scope** - Determine which area is affected
4. **Write subject** - Create a clear, concise subject line
5. **Write body** - Explain what and why (if needed)
6. **Add footer** - Reference issues or note breaking changes
## Validation
Use the validation script to check commit message format:
```bash
python3 scripts/validate_commit.py "feat(scope): add behavior"
```
## Reference Documents
- See `references/conventional-commits.md` for full specification
- See `references/examples.md` for more examples
- See `references/scopes.md` for recommended scope namingMore Git Workflows skills
git-commit
github/awesome-copilot
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
git-workflow-and-versioning
addyosmani/agent-skills
Structures git workflow practices. Use when making any code change. Use when committing, branching, resolving conflicts, or when you need to organize work across multiple parallel streams. Use when cutting a release, choosing a semantic version bump, tagging, or writing a changelog.
resolve-merge-conflicts
warpdotdev/common-skills
Resolve Git merge conflicts by extracting only unresolved paths, conflict hunks, and compact diffs instead of loading whole files into context. Use when a merge, rebase, cherry-pick, or stash pop stops on conflicts, when `git status` shows unmerged paths, or when files contain conflict markers.

