git-commit-format
Apply HyperShift conventional commit formatting rules. Use when generating commit messages or creating commits.
When & Why to Use This Skill
This Claude skill automates the generation and formatting of Git commit messages according to the HyperShift conventional commit specification. It ensures project consistency by enforcing standardized types (such as feat, fix, and chore), character limits, and mandatory footers like 'Signed-off-by', facilitating seamless integration with gitlint validation and CI/CD pipelines.
Use Cases
- Standardized Commit Message Generation: Automatically craft commit messages following the '<type>(<scope>): <description>' format to maintain a clean and readable project history.
- Legal and Attribution Compliance: Ensure every commit includes the mandatory 'Signed-off-by' footer with correct user credentials and the 'Commit-Message-Assisted-by: Claude' attribution.
- Breaking Change Identification: Systematically flag breaking changes using the '!' syntax or 'BREAKING CHANGE' footer to inform maintainers and automated versioning tools.
- CI/CD Validation Readiness: Pre-format messages to meet gitlint requirements, including specific character count limits for titles (120) and body lines (140) to prevent build failures.
| name | Git Commit Format |
|---|---|
| description | "Apply HyperShift conventional commit formatting rules. Use when generating commit messages or creating commits." |
Git Commit Message Formatting Rules
Apply conventional commit format for all git commits in the HyperShift project.
Commit Message Format
<type>(<scope>): <description>
[optional body]
[footers]
Commit Types
- feat: New features
- fix: Bug fixes
- docs: Documentation changes
- style: Code style changes (formatting, etc.)
- refactor: Code refactoring (no functional changes)
- test: Adding/updating tests
- chore: Maintenance tasks
- build: Build system or dependency changes
- ci: CI/CD changes
- perf: Performance improvements
- revert: Revert previous commit
Breaking Changes
With ! to draw attention
feat!: send email when product shipped
With BREAKING CHANGE footer
feat: allow config to extend other configs
BREAKING CHANGE: `extends` key now used for extending config files
Both ! and BREAKING CHANGE
chore!: drop support for Node 6
BREAKING CHANGE: use JavaScript features not available in Node 6.
Required Footers
Signed-off-by Footer
ALWAYS include Signed-off-by footer with name and email.
Get credentials in this priority order:
- Environment variables:
$GIT_AUTHOR_NAMEand$GIT_AUTHOR_EMAIL - Git config:
git config user.nameandgit config user.email - If neither configured, ask user to provide details
Commit-Message-Assisted-by Footer
ALWAYS include Commit-Message-Assisted-by: Claude (via Claude Code) when Claude assists with creating or generating the commit message.
Commit-Message-Assisted-by: Claude (via Claude Code)
Gitlint Validation Rules
- Run
make run-gitlintto validate commit messages - Title line: 120 characters maximum
- Body line: 140 characters maximum per line
- Use conventional commit format
- Include required footers (Signed-off-by)
- No trailing whitespace
Examples
Simple commit
docs: correct spelling of CHANGELOG
Signed-off-by: Bryan Cox <brcox@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
With scope
feat(azure): add workload identity support
Signed-off-by: Bryan Cox <brcox@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
Multi-paragraph with footers
fix: prevent racing of requests
Introduce request ID and reference to latest request. Dismiss
incoming responses other than from latest request.
Remove timeouts which were used to mitigate racing but are
obsolete now.
Reviewed-by: Jane Doe
Refs: #123
Signed-off-by: Bryan Cox <brcox@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
Quick Checklist
When creating commits:
- Use conventional commit format:
<type>(<scope>): <description> - Title under 120 characters
- Body lines under 140 characters
- Include
Signed-off-byfooter - Include
Commit-Message-Assisted-by: Claude (via Claude Code)footer - Validate with
make run-gitlint - Use "!" or
BREAKING CHANGEfor breaking changes
Reference
Conventional Commits Specification: https://www.conventionalcommits.org/en/v1.0.0/#specification