writing-commit-messages
Skill19 starsChanged 32 days agoMITView on GitHub
Write clear, conventional commit messages with proper type prefixes, scopes, and body content.
15 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- steventsvik/GhosttyEXTREMEtheir own version, first seen Nov 8, 2026
- steventsvik/Telluriontheir own version, first seen Nov 8, 2026
- Wescholm/ghostty-fleettheir own version, first seen Oct 15, 2026
- weaverbase/skillstheir own version, first seen Oct 13, 2026
- dzakirinf/skillstheir own version, first seen Oct 13, 2026
- zgagnon/skillstheir own version, first seen Oct 9, 2026
Other versions15 projects use a version of this.
Word for word · 2
- ZeroTokenClaw/agents-skills★ 1100% same
- matarpeles/skills-registry-demo★ 0100% same
Edited · 1
- witi-projects/Skills★ 294% same
Wrote their own version · 12
- ghostty-org/ghostty★ 64ksame name
- ZenPrivacy/zen-desktop★ 4.4ksame name
- rjdellecese/confect★ 381same name
- steventsvik/GhosttyEXTREME★ 141same name
- steventsvik/Tellurion★ 141same name
- Lugia123/polter★ 20same name
- lucavb/skills★ 3same name
- dzakirinf/skills★ 1same name
- Wescholm/ghostty-fleet★ 1same name
- zgagnon/skills★ 1same name
2 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 repository3 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 8 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 13 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Write commit messages that are useful for humans and machines.
- Distinctive: line 24
Use imperative mood: "add feature" not "added feature" or "adding feature"
- Distinctive: line 25
Don't capitalize the first letter after the type prefix
- Distinctive: line 26
No period at the end
- Distinctive: line 94
Don't mix refactoring with feature work in the same commit
- Distinctive: line 95
Don't commit half-working code (use git stash instead)
- Distinctive: line 96
Commit early and often on feature branches, squash before merge if needed
- Distinctive: line 100
If the commit introduces a breaking change:
- Very specific: line 101
Add ! after the type: feat(api)!: change auth token format
- Very specific: line 102
Add BREAKING CHANGE: in the footer with migration instructions
“Common” is measured: kept by at least 6 in 10 of the 13 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
Writing Commit Messages
Write commit messages that are useful for humans and machines.
Format
<type>(<optional scope>): <subject>
<optional body>
<optional footer>Subject Line Rules
- 50 characters or less for the subject
- Use imperative mood: "add feature" not "added feature" or "adding feature"
- Don't capitalize the first letter after the type prefix
- No period at the end
Types
| Type | When to use |
feat | New user-facing feature |
fix | Bug fix |
refactor | Code restructuring without behavior change |
docs | Documentation changes |
test | Adding or updating tests |
chore | Build, CI, tooling, deps |
perf | Performance improvement |
style | Formatting, whitespace (not CSS) |
ci | CI/CD pipeline changes |
revert | Reverting a previous commit |
Scope (Optional)
The area of the codebase affected:
feat(auth): add OAuth2 login flowfix(api): handle null response from payments endpointrefactor(db): extract query builder into module
Body (When Needed)
Explain why, not what (the diff shows what):
fix(checkout): prevent duplicate order submissions
The submit button was not disabled after the first click,
allowing users to create multiple orders. This caused
duplicate charges in Stripe.Footer (When Needed)
BREAKING CHANGE: rename `getUserById` to `findUser`
Closes #456
Co-authored-by: Name <email>Examples
Good:
feat(dashboard): add real-time notification bell
fix: resolve race condition in WebSocket reconnect
refactor(api): consolidate error handling middleware
test: add integration tests for payment webhook
chore: upgrade TypeScript to 5.4Bad:
fixed stuff
WIP
update
changes
asdfWhen to Commit
- Each commit should represent one logical change
- Don't mix refactoring with feature work in the same commit
- Don't commit half-working code (use
git stashinstead) - Commit early and often on feature branches, squash before merge if needed
Breaking Changes
If the commit introduces a breaking change:
- Add
!after the type:feat(api)!: change auth token format - Add
BREAKING CHANGE:in the footer with migration instructions
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.

