conventional-commits
Skill10 starsChanged 39 days agoMITView on GitHub
Generates and formats git commit messages following the Conventional Commits specification. Use when the user asks for help writing commit messages, formatting git commits, wants to write a commit msg for staged changes, needs to produce a changelog entry, or mentions conventional commits, semantic versioning, or version bumps. Analyzes diffs or change descriptions, selects the correct type/scope, writes an imperative-mood header under 72 characters, and composes optional body and footer sections including breaking-change notation.
59 other projects use a version of this.
Adopted by
Most recently taken up by
- sauljabin/agentskillstheir own version, first seen Nov 15, 2026
- hanspeterdietiker/open-agent-skillstheir own version, first seen Nov 15, 2026
- hankunpeng/skillstheir own version, first seen Nov 10, 2026
- langchain-ai/langchain-litellmtheir own version, first seen Nov 8, 2026
- r3b1s/skillstheir own version, first seen Nov 8, 2026
- niksavis/handilytheir own version, first seen Nov 8, 2026
Used with
Projects with it also use github, grilling and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
NVIDIASkillgithub
Interact with GitHub using the gh CLI restricted to REST API only (no GraphQL). Use when the user wants to work with GitHub issues, pull requests, repos, releases, or Actions — especially in sandboxed environments where the GraphQL endpoint may be blocked. Trigger keywords - github, gh, pull request, PR, github issue, github actions, workflow, release, gh api.
Also in 3 projects that use this
GoogleSkillgrilling
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
Also in 5 projects that use this
GoogleSkilldomain-modeling
Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.
Also in 4 projects that use this
NVIDIASkillresearch
Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.
Also in 5 projects that use this
SentrySkillskill-creator
Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.
Also in 5 projects that use this
MicrosoftSkillhandoff
Compact the current conversation into a handoff document for another agent to pick up.
Also in 3 projects that use this
- +5 more from google
Other versions59 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 59
- open-sdr/openwifi★ 4.9ksame name
- endurain-project/endurain★ 2.4ksame name
- joaovitoriasilva/endurain★ 2.4ksame name
- awattar/claude-code-best-practices★ 250same name
- dgalarza/agent-skills★ 72same name
- langchain-ai/langchain-litellm★ 62same name
- WncFht/agent-basic-skill★ 30same name
- hankunpeng/skills★ 26same name
- metalagman/agent-skills★ 24same name
- jackjin1997/ClawForge★ 12same name
49 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository81 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/development/biome-complete/AGENTS.mdAGENTS.md
- skills/development/bun-development/AGENTS.mdAGENTS.md
- skills/development/commanderjs/AGENTS.mdAGENTS.md
- skills/documentation/markdown-authoring/AGENTS.mdAGENTS.md
- skills/package-mgmt/mise-complete/AGENTS.mdAGENTS.md
- skills/testing/bdd-testing/AGENTS.mdAGENTS.md
- agents-mdSkill
- cache-auditSkill
- context-radar-auditSkill
- create-contextSkill
- guided-interviewSkill
- handover-document-creatorSkill
- load-contextSkill
- pick-modelSkill
- pinSkill
- professional-honestySkill
- rules-managementSkill
- save-contextSkill
- session-reflectionSkill
- socratic-methodSkill
- vault-captureSkill
- vault-consolidateSkill
- vault-fetchSkill
- vault-searchSkill
- bird-fortune-political-satireSkill
- brooker-esque-media-satireSkill
- clarke-dawe-esqueSkill
- comedy-style-skill-generatorSkill
- cunk-esque-mockumentarySkill
- gervais-esque-cringe-satireSkill
- monty-python-esqueSkill
- pryor-esque-confessional-standupSkill
- rock-esque-observational-standupSkill
- biome-completeSkill
- bun-developmentSkill
- commanderjsSkill
- humanizerSkill
- journal-entry-importSkill
- markdown-authoringSkill
- mermaid-diagramsSkill
- plain-englishSkill
- professional-communicationSkill
- sop-structureSkill
- logql-generatorSkill
- mise-completeSkill
- context-indexSkill
- create-context-fileSkill
- follow-upSkill
- goal-trackerSkill
- nasa-pm-lessonsSkill
- plan-createSkill
- plan-executeSkill
- plan-reviewSkill
- risk-registerSkill
- tech-debtSkill
- tech-evaluationSkill
- blast-radiusSkill
- bridgeSkill
- challengeSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 53 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Write the header for the person reviewing a CHANGELOG six months from now, not for yourself today.
- Distinctive: line 25
When not to use: skip this skill if the project explicitly avoids Conventional Commits (e.g.
“Common” is measured: kept by at least 6 in 10 of the 53 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Mindset
Conventional Commits exist to make commit history machine-readable. The type prefix is a contract: feat triggers a MINOR version bump, fix triggers PATCH, and ! or BREAKING CHANGE: triggers MAJOR. Every commit is a semantic event, not just a description of code changes.
Write the header for the person reviewing a CHANGELOG six months from now, not for yourself today. The body explains why — the code already shows what.
A less obvious implication: scope consistency drives changelog quality more than type correctness. A perfectly typed feat with an ad-hoc scope like feat(getUserById): produces a one-line changelog group with no neighbours. Establish a fixed scope vocabulary early — see Scope Naming and Commit Strategy.
When to Use
Apply when the user asks for help writing commit messages, wants to format staged changes as a commit, needs a CHANGELOG entry, or mentions conventional commits, semantic versioning, or version bumps.
When not to use: skip this skill if the project explicitly avoids Conventional Commits (e.g. uses Angular-style without the spec, or enforces a custom pattern via a project-specific hook). Do not override confirmed project conventions.
Procedure
- Inspect the change — read the diff or the user's description. Identify whether it adds new behaviour, fixes existing behaviour, or neither.
- Choose the type — use the Type Reference table. Decision rules for common ambiguities:
refactorvsfeat: does the user gain new capability? If yes →featfixvsrefactor: does the change correct wrong behaviour? If yes →fixperfvsrefactor: is there a measurable latency/throughput improvement? If yes →perfchorevs anything else: if another type fits, use it —choreis the last resort- Multiple types needed? Split into multiple commits (see Atomic Commits)
- Pick the scope — use the module, package, or layer name (e.g.
auth,checkout,api). Omit scope when the change is truly cross-cutting. Use a fixed vocabulary if the project defines one. See scope naming for conventions. - Draft the header — imperative mood, lowercase, ≤ 72 characters. Verify with: "If applied, this commit will
<header>." - Add a body if needed — only when the why is not obvious. Explain the reasoning, not the implementation. Wrap at 72 characters.
- Add footers —
Closes: #Nfor issue references;BREAKING CHANGE: <description>whenever the public API surface changes. Always pair!with aBREAKING CHANGE:footer. - Verify before committing — run
git commit --dry-runor your local commitlint hook to catch formatting violations before they enter history.
Agent output format: Present the commit message in a fenced code block with no extra commentary, ready to paste:
feat(auth): add OAuth2 login support
Allows users to sign in with Google and GitHub. Replaces the
username/password flow for external accounts.
Closes: #412Commit Message Format
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]Rules:
- Description: imperative mood (
addnotadded), lowercase, no trailing period, ≤ 72 characters - Body: separated by one blank line, lines wrapped at 72 characters, explains why not what
- Footers:
Token: valueformat (e.g.Closes: #123,BREAKING CHANGE: description)
Type Reference
| Type | SemVer Impact | Use When |
feat | MINOR (1.0.0 → 1.1.0) | New feature or user-facing capability |
fix | PATCH (1.0.0 → 1.0.1) | Bug fix or incorrect behavior |
build | None | Build system or dependency changes |
ci | None | CI/CD configuration changes |
docs | None | Documentation only |
style | None | Code formatting, no logic change |
refactor | None | Restructuring, same behavior |
perf | None | Measurable performance improvement |
test | None | Adding or updating tests |
chore | None | Maintenance not covered above |
revert | Varies | Reverting a previous commit |
Breaking changes: append ! after type/scope (feat!:) and/or add a BREAKING CHANGE: footer — triggers a MAJOR version bump.
Examples
Simple feature:
feat(auth): add OAuth2 login supportBug fix with context:
fix(checkout): prevent duplicate order submissions
Race condition when users double-clicked submit during network
latency. Implemented debouncing with a 2-second window.
Fixes: #234Breaking change with migration info:
refactor!: consolidate API endpoints under /api/v2
BREAKING CHANGE: All endpoints moved from /endpoints/* to /api/v2/*
Migration:
- /endpoints/users → /api/v2/users
- /endpoints/auth → /api/v2/auth
See docs/migration-v2.md for the full migration guide.Performance improvement:
perf(search): cache query results with Redis
Cache TTL set to 5 minutes. Reduces average query time from 500ms to 50ms.
Benchmark (1000 req/s sustained):
- Before: 500ms avg, 2s p99
- After: 50ms avg, 200ms p99Anti-Patterns
NEVER use past tense in the description
- WHY: The header completes the sentence "If applied, this commit will…" — past tense breaks that contract and reads as a changelog entry, not a commit instruction.
- BAD:
fix(auth): fixed token expiration bug— GOOD:fix(auth): prevent token expiration on refresh
NEVER use chore as a catch-all
- WHY:
choreis for maintenance tasks not covered by other types (e.g., bumping lock files). Using it for features, refactors, or docs hides semantic meaning from changelog generators. - BAD:
chore: update auth module,chore: fix login bug— GOOD:refactor(auth): extract token refresh logic,fix(auth): resolve null pointer on logout
NEVER exceed 72 characters in the header
- WHY: Git log, GitHub PR titles, and most CI tools truncate at 72 characters. Longer headers break tooling and lose critical context.
- BAD:
feat(checkout): add new payment processing integration with Stripe for recurring subscriptions— GOOD:feat(checkout): add Stripe recurring subscription support
NEVER omit BREAKING CHANGE: footer when the API surface changes
- WHY: The
!suffix alone is not sufficient for all tooling.BREAKING CHANGE:in the footer carries the migration description that changelog generators parse for release notes. - BAD:
feat!: remove /v1 endpoints(no footer) — GOOD:feat!: remove /v1 endpoints+ footerBREAKING CHANGE: /v1/* routes deleted; migrate to /api/v2/*
NEVER put implementation details in the header
- WHY: The header is the commit summary visible in
git log --oneline. Implementation details belong in the body. - BAD:
fix(db): change SQL query from SELECT * to SELECT id,name in getUserById— GOOD:fix(db): reduce getUserById query to required columns(details in body)
NEVER bundle unrelated changes in one commit
- WHY: A commit that spans multiple concerns can't be cherry-picked or reverted cleanly. It also produces ambiguous changelog entries and forces reviewers to untangle intent from implementation.
- BAD:
fix(auth): prevent token expiration and update README and bump deps— GOOD: Three commits:fix(auth): prevent token expiration,docs(auth): document token refresh flow,chore(deps): bump jsonwebtoken to 9.0.2
Quick Validation
Validate a message ad-hoc:
echo "feat(auth): add OAuth2 login" | npx commitlintScan recent history:
git log --oneline -10
git log --format="%s" HEAD~5..For full commitlint setup, CHANGELOG generation, and semantic-release, see Team Tooling.
References
- Scope Naming and Commit Strategy — scope vocabulary, atomic commit patterns, revert format
- Team Tooling — commitlint setup, CHANGELOG generation, semantic-release, history verification
- Conventional Commits Specification — canonical spec defining types, scopes, breaking changes, and CHANGELOG generation
- Semantic Versioning — versioning contract that Conventional Commits maps to (MAJOR/MINOR/PATCH)
- commitlint Documentation — automated commit message validation for CI and pre-commit hooks
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

