conventional-commits
Skill0 starsChanged 29 days agoMITView on GitHub
Write, review, and validate Conventional Commits messages so changelogs and semantic releases can be generated automatically. Use when the user asks for a commit message, asks to commit staged changes, wants a PR squash title, needs to fix a bad commit message, or when a repo enforces commitlint / semantic-release conventions.
56 other projects use a version of this.
Adopted by
Most recently taken up by
- 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
- sambulosenda/Skillstheir own version, first seen Nov 8, 2026
- niksavis/basiclytheir own version, first seen Nov 7, 2026
- Gu-ZT/skillstheir own version, first seen Nov 4, 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 versions56 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 56
- 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
46 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 repositoryOne other file it gives its agents.
- hello-worldSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 51 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
Read the actual change before writing a word: Run git diff --staged (or git diff when nothing is staged).
- Distinctive: line 47
Add a body: only when the diff cannot speak for itself — record *why*, not *what*.
- Distinctive: line 50
Validate: before handing the message over:
- Very specific: line 72
If something user-visible would be missing from the changelog, it is almost always a feat or a fix.
- Distinctive: line 132
If none of the last twenty subjects contains a colon-delimited type, the repo does not use Conventional Commits — match the existing style …
“Common” is measured: kept by at least 6 in 10 of the 51 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
Conventional Commits
Produce commit messages that comply with Conventional Commits v1.0.0
and that tooling such as commitlint, semantic-release, and standard-version
can parse without manual cleanup.
The shape of a message
<type>[optional scope][!]: <description>
[optional body]
[optional footer(s)]A commit that only changes the message itself must still parse; anything the parser cannot read is invisible to the changelog.
Workflow
- Read the actual change before writing a word. Run
git diff --staged(orgit diffwhen nothing is staged). Never infer the type from the file name or from what the user said they were doing. - Pick exactly one type using the table below. If a change spans two types, that is a signal to split it into two commits — say so instead of picking the "bigger" one.
- Pick a scope from the repository's existing scopes. Discover them with:
Omit the scope when the change is genuinely repo-wide.git log --format='%s' -500 | grep -oP '^\w+\(([^)]+)\)' | sort -u - Write the description in the imperative mood, lowercase, no trailing period, at most 72 characters including the type and scope prefix.
- Add a body only when the diff cannot speak for itself — record why, not what. Wrap at 72 columns.
- Add footers for breaking changes and issue references.
- Validate before handing the message over:
python scripts/commit_lint.py --file - # lint a message from stdin
Type selection
| Type | Use it when the change… | Triggers a release |
feat | adds a capability a user can observe | minor |
fix | repairs incorrect behaviour | patch |
perf | makes existing behaviour faster without changing it | patch |
refactor | restructures code with no behaviour change | none |
docs | touches documentation only | none |
test | adds or repairs tests only | none |
build | changes the build system or dependencies | none |
ci | changes CI configuration or scripts | none |
chore | routine maintenance not covered above | none |
style | formatting only, no semantic change | none |
revert | reverts an earlier commit | none |
feat and fix are the only types that generate changelog entries by default.
If something user-visible would be missing from the changelog, it is almost
always a feat or a fix.
Breaking changes
Signal a breaking change twice — with ! and with a footer:
feat(api)!: drop support for the v1 token endpoint
BREAKING CHANGE: requests to /v1/token now return 410. Clients must migrate
to /v2/token, which accepts the same payload.The ! makes the change visible at a glance in git log --oneline; the
BREAKING CHANGE: footer is what release tooling actually reads. Use the
uppercase spelling exactly — BREAKING-CHANGE: is accepted as a synonym,
breaking change: is not.
Footers
Refs: #412
Closes: #418, #420
Co-authored-by: Jae <jae@example.com>
Reviewed-by: Kim <kim@example.com>One token, then : or #, then the value. Closes and Fixes must contain
the issue reference for GitHub to close the issue automatically.
Common mistakes to correct
feat: Added new login flow.— past tense and a trailing period. Writefeat(auth): add SSO login flow.fix: bugfix— says nothing. Name the symptom that is gone.update stuff— no type. The parser drops the commit from the changelog.feat: add user API and fix the login redirect— two types in one commit. Split it.BREAKING CHANGEinside the description line instead of the footer — release tooling will not see it.
Reference material
references/spec.md— the complete v1.0.0 grammar, including edge cases for footers, revert commits, and merge commits.references/examples.md— twenty real messages annotated with why they pass or fail, plus the correct rewrite for each failure.scripts/commit_lint.py— dependency-free linter used by the workflow above.
When NOT to use this skill
Repositories that enforce a different convention (for example Gerrit
Change-Id trailers without types, or a corporate ticket-prefix scheme) should
follow their own rules. Detect this first:
git log --format='%s' -20If none of the last twenty subjects contains a colon-delimited type, the repo does not use Conventional Commits — match the existing style instead.
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.

