conventional-commits
Conventional Commit Generator
Generate commit messages following Conventional Commits 1.0.0.
When to Use This Skill
Use this skill when the user:
- Asks you to write a commit message
- Asks you to commit changes (and you have permission to commit)
- Mentions Conventional Commits, semantic commit types, or breaking-change formatting
- Wants help choosing the right
feat/fix/choretype or scope
Workflow
-
Run
git statusandgit diff HEADto analyze changes -
Stage files: user-specified only, or
git add -Afor all -
Determine type and scope from changes
-
Generate commit message incorporating user hints
-
Commit using HEREDOC format to preserve formatting:
git commit -m "$(cat <<'EOF' <type>(<scope>): <description> <body> <footer> EOF )" -
Output:
<hash> <subject>
Scope Boundaries
DO: Analyze git changes, generate messages, stage files, commit
DO NOT: Modify code, push (unless asked), create branches, amend without request
Commit Format
<type>[optional scope][!]: <description>
[optional body]
[optional footer(s)]
Type Selection
| Change | Type | SemVer |
|---|---|---|
| New feature | feat |
MINOR |
| Bug fix | fix |
PATCH |
| Performance improvement | perf |
PATCH |
| Code restructuring (no behavior change) | refactor |
- |
| Code style/formatting (no logic change) | style |
- |
| Adding/updating tests | test |
- |
| Documentation only | docs |
- |
| Build system/dependencies | build |
- |
| CI/CD configuration | ci |
- |
| Reverts a previous commit | revert |
- |
| Other maintenance tasks | chore |
- |
Note: Only
featandfixhave SemVer implications. Breaking changes (any type with exclamation mark orBREAKING CHANGEfooter) trigger MAJOR.
Subject Line
- Max length: 72 characters (50 recommended for readability)
- Format:
type(scope): descriptionortype: description - Mood: Imperative present tense ("add" not "added" or "adds")
- Case: Lowercase first letter
- Punctuation: No trailing period
Scope
Scope provides context about which part of the codebase is affected. Use a noun describing the module, component, or area.
Common scope patterns:
- Component/module:
feat(auth):,fix(parser):,refactor(api): - File/area:
docs(readme):,test(unit):,build(webpack): - Feature:
feat(dark-mode):,fix(checkout):
Body
- Separate from subject with one blank line
- Explain what and why, not how
- Can contain multiple paragraphs (separate with blank lines)
- Wrap at 72 characters
Required Body Format (this repo)
Use this exact structure when the user wants the extended body format:
Reason: <one-line why>
Edits:
- <change 1>
- <change 2>
Footer
Footers follow git trailer format with :<space> or <space># separator.
Common footers:
BREAKING CHANGE: <description>- Breaking API changeRefs: #123orRefs: JIRA-456- Reference issuesCloses: #123orFixes: #123- Close issuesCo-authored-by: Name <email>- Credit co-authorsReviewed-by: Name <email>- Credit reviewersAcked-by: Name- Acknowledgment
Note: Footer tokens use
-instead of spaces (e.g.,Reviewed-bynotReviewed by). Exception:BREAKING CHANGEallows space.
Breaking Changes
Two ways to indicate breaking changes (can use both for emphasis):
-
Exclamation mark: Add exclamation mark before colon in subject
feat(api)!: remove deprecated endpoints -
Footer: Add
BREAKING CHANGE:orBREAKING-CHANGE:in footerfeat(api): redesign authentication flow BREAKING CHANGE: OAuth tokens now expire after 1 hour instead of 24 hours.
Examples
Simple feature:
feat: add email notifications for new messages
Bug fix with scope:
fix(cart): prevent ordering with empty shopping cart
Documentation update:
docs(api): add authentication examples to README
Breaking change with body and footer:
feat(api)!: redesign user authentication endpoints
Migrate from session-based auth to JWT tokens for better scalability.
The new system supports refresh tokens and configurable expiration.
BREAKING CHANGE: /api/login now returns JWT instead of session cookie.
Clients must include Authorization header with Bearer token.
Refs: JIRA-1337
Revert commit:
revert: let us never again speak of the noodle incident
Refs: 676104e, a215868
Multi-scope change (use most significant):
feat(auth): add OAuth2 support with Google provider
Adds Google OAuth2 login flow with automatic account linking.
Co-authored-by: Jane Doe <jane@example.com>
Closes: #42
Anti-patterns
Avoid these common mistakes:
| Bad | Good | Reason |
|---|---|---|
Update code |
fix(auth): validate token expiration |
Be specific |
Fixed bug |
fix: prevent null pointer in parser |
Use present tense |
WIP |
Don't commit WIP | Commit complete units |
Add feature. |
feat: add dark mode toggle |
No trailing period |
Added tests |
test: add unit tests for parser |
Use imperative mood |
FEAT: Add... |
feat: add... |
Types are lowercase |
misc changes |
chore: update dependencies |
Be descriptive |
More from devinschumacher/skills
playwright
Canonical Playwright hub for E2E tests and ad-hoc browser automation. Use when the user explicitly mentions "Playwright", "@playwright/test", "npx playwright", "playwright.config.ts", "PWDEBUG", "trace viewer", or "toHaveScreenshot". Avoid using for generic browser automation unless Playwright is requested, and avoid using for pure web scraping.
43skill-consolidator
Create and maintain first-party custom skills by strategically consolidating overlapping third-party skills. Scans globally installed skills (prefer ~/.agents/skills, or $CODEX_HOME/skills, or ~/.codex/skills) to produce an overlap report, then guides merging into a smaller, linked set inside this repo’s `skills/` directory. Use when asked to "clean up skills", "merge skills", "remove duplicates", "consolidate overlapping skills", "organize my skills", or "create a custom skill from other skills".
17agents-reminder
Reminds the agent to refresh on AGENTS.md guidelines before proceeding with tasks. Use at the start of a session or when unsure about agent policies.
12serp-toc
Route SERP org questions to the right repo, docs, and local clone quickly. Use when Codex needs to figure out where to look first across the SERP org, including repo lookup, server or infrastructure questions, secrets or env questions, branch orientation, local path discovery, or deciding whether something belongs in the docs hub versus an owning repo.
1workflow-visualizer
Map any system or workflow as a beautiful interactive HTML diagram
1project-status-phase
Advance GitHub project board items through the next truthful status phase using board rules, repo state, linked PRs, and docs. Use when asked to move, triage, reclassify, or advance an issue/card on a project board, or to keep board status aligned with reality.
1