commit-message
Skill9 starsChanged 22 days agoMITView on GitHub
Generates Git commit messages in the Chris Beams style from staged or unstaged diffs, with imperative subjects of 50 characters or fewer, a body that explains what and why, issue footers when applicable, and ASCII-only output. Use when invoked via /commit-message, or when the user asks for a commit message, help committing, or a summary of changes for a commit.
62 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- AcademySoftwareFoundation/OpenImageIOtheir own version, first seen Nov 9, 2026
- haiderstudio/commit-message-skilltheir own version, first seen Nov 8, 2026
- danielvm-git/bigpowerstheir own version, first seen Nov 6, 2026
- drinkspiller/skillstheir own version, first seen Nov 6, 2026
- mattiacerutti/supernovatheir own version, first seen Nov 2, 2026
- mergisi/awesome-openclaw-agentstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use pr-description, changelog 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.
MicrosoftSkillpr-description
Draft Nacelle PR titles, pull request descriptions, commit titles, commit descriptions, and squash commit messages. Use when asked for PR or commit wording, a branch summary, or a PR description that can be used in a commit. Omit validation sections from commit bodies and remove filler.
Also in 9 projects that use this
HashiCorpSkillchangelog
Add a `.changelog/<PR_NUMBER>.txt` entry for a GitHub Pull Request, commit, and push.
Also in 3 projects that use this
GitHubSkillrefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
Also in 3 projects that use this
GoogleSkillcode-review
Adversarial systems, concurrency, memory-model, and architecture code review protocol. Use this skill whenever asked to review code, PRs, diffs, or branches in Filament.
Also in 7 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 3 projects that use this
OpenAISkillbrainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Also in 3 projects that use this
- +2 more from google
Other versions62 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- mab-go/trello-mcp★ 066% same
Wrote their own version · 61
- zulip/zulip★ 26ksame name
- mergisi/awesome-openclaw-agents★ 4.1ksame name
- AltraMayor/f3★ 3.4ksame name
- github/copilot-cli-for-beginners★ 2.9ksame name
- AcademySoftwareFoundation/OpenImageIO★ 2.4ksame name
- sheshbabu/zen★ 1.2ksame name
- s-kostyaev/ellama★ 963same name
- tektoncd/operator★ 606same name
- danielvm-git/bigpowers★ 288same name
- rshdhere/vibecheck★ 213same name
51 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 repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/keep-docs-current.mdcCursor rule
- review-planSkill
- verify-changesSkill
- xmind-mcp-smoke-testSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
26 rules. 0 are common, 22 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 51 edited versions we read keep these.
22
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Read the project's agent instructions (e.g.
- Distinctive: line 12
Before generating a message:
- Very specific: line 14
Check for failures: If the project has a build/test/lint workflow, confirm it passes or the user has acknowledged failures.
- Distinctive: line 15
Determine scope: If both staged and unstaged changes exist, ask the user which set the message should cover.
- Distinctive: line 17
If the project tracks generated files (lockfiles, generated code, schema dumps, generated docs), they are committed together with the …
- Distinctive: line 22
If there are staged changes (git diff --staged): produce the message for the commit the user is about to make.
- Distinctive: line 23
If nothing is staged but there are unstaged changes (git diff): produce a proposed message for those working tree changes.
- Distinctive: line 24
If there are no local changes: ask whether to summarize the most recent commit (git show -1 --stat and git show -1 -p) for reference/amend …
- Distinctive: line 30
If anything needed to infer intent is missing, ask before generating.
- Distinctive: line 34
Use ASCII only in the commit message.
- Very specific: line 35
Never use smart punctuation (e.g.
- Distinctive: line 52
Keep it to 50 characters or fewer.
- Distinctive: line 53
Must pass: prepend "If applied, this commit will " to the subject.
- Distinctive: line 70
Omit: if the diff is truly trivial (e.g.
- Distinctive: line 73
When a change alters what MCP clients see -- a tool's arguments, response fields, annotations, or error behavior -- say so, and say whether …
- Distinctive: line 74
Write prose paragraphs separated by blank lines.
- Very specific: line 76
Do not add labeled sections such as Features:, Changes:, or Fixes:.
- Distinctive: line 82
Do not add Co-Authored-By, Signed-off-by, or other trailers unilaterally.
- Distinctive: line 83
Place trailers after a blank line following the body (or subject if no body).
- Distinctive: line 91
If no issue ID is provided, omit the footer entirely.
- Distinctive: line 95
When a diff spans multiple unrelated concerns (e.g.
- Distinctive: line 98
If the user wants one commit: Use the primary change as the subject.
- Distinctive: line 103
Do not generate a message and then immediately run git commit unless the user explicitly asked you to commit.
- Distinctive: line 104
Do not invent issue IDs or claim behavior changes not supported by the diff.
- Distinctive: line 105
Do not add trailers (Co-Authored-By, etc.) unless explicitly requested.
- Very specific: line 150
Run /verify-changes before generating a commit message to ensure the build passes.
“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
Commit Message
Read the project's agent instructions (e.g. AGENTS.md), including any nested AGENTS.md in directories the change touches, before applying this skill. Project commit conventions override the defaults below.
Pre-flight
Before generating a message:
- Check for failures: If the project has a build/test/lint workflow, confirm it passes or the user has acknowledged failures. Do not generate a commit message for code that does not build.
- Determine scope: If both staged and unstaged changes exist, ask the user which set the message should cover. Do not silently choose.
- Check what belongs in the commit:
- If the project tracks generated files (lockfiles, generated code, schema dumps, generated docs), they are committed together with the source change that produced them. Generated files the project ignores stay out.
- Build output, coverage reports, local environment files, and secrets never belong in a commit. If any are in the diff, flag them before generating a message.
Input (in order of preference)
- If there are staged changes (
git diff --staged): produce the message for the commit the user is about to make. - If nothing is staged but there are unstaged changes (
git diff): produce a proposed message for those working tree changes. - If there are no local changes: ask whether to summarize the most recent commit (
git show -1 --statandgit show -1 -p) for reference/amend use.
Output
- Return the full commit message inside a single Markdown code fence.
- This skill generates the message text only; it does not execute
git commit. If the user explicitly says "commit this" or "make the commit," execute the commit with the generated message. - If anything needed to infer intent is missing, ask before generating.
Character policy
- Use ASCII only in the commit message.
- Never use smart punctuation (e.g. curly quotes, em dashes, the ellipsis character). Use straight apostrophe (
'), straight quotes ("), hyphens (-), and three periods (...) only. - Self-check for non-ASCII before returning. Replace any with ASCII equivalents.
Required format
<Subject line>
<Body (optional)>
Closes #<ID> (only if an ID is provided)Subject line
- Imperative mood, capitalized, no trailing period.
- No
area:ortype:prefix (e.g.api: ...,feat: ...) unless the project's conventions use one. - Keep it to 50 characters or fewer. Needing more usually means the subject is vague or the commit does too much (see Multi-concern diffs). 72 is the hard limit.
- Must pass: prepend "If applied, this commit will " to the subject; the result must read as natural English and say what actually changes. "Improve the parser" passes the grammar test and says nothing.
Examples:
Add retry limit to export jobFix off-by-one in pagination cursorUpdate logging library to v2
Counterexamples (do not do this):
Added retry limit to export job(past tense)fix pagination bug(not capitalized)export: Add retry limit(area prefix, when the project does not use them)Update logging library to v2.(trailing period)
Body (optional; what and why, not how)
- Omit if the diff is truly trivial (e.g. typo, formatting, comment-only) and there is no meaningful motivation to record.
- Wrap at 72 characters.
- Explain what was wrong or missing, why this change fixes it, and any consequences a reader would not see in the diff (side effects, limitations, follow-up work). Leave how to the diff.
- When a change alters what MCP clients see -- a tool's arguments, response fields, annotations, or error behavior -- say so, and say whether existing clients are affected.
- Write prose paragraphs separated by blank lines. Do not restate the subject. Opening with "This commit ..." is fine when it reads naturally.
- Bullets (
-) are fine for a list of distinct reasons or effects. Never use them to list the edits file by file or step by step; the diff already shows that. Sub-bullets: indent 2 spaces. Wrapped continuation: 2 additional spaces. - Do not add labeled sections such as
Features:,Changes:, orFixes:. They turn the body into a changelog, andFixes:can be mistaken for an issue trailer. - Reference files, modules, functions, or symbols in
backtickswhen it helps the reader. - Quantify impact only when supported by the diff or context (e.g. lines removed, build time).
Trailers
- Do not add Co-Authored-By, Signed-off-by, or other trailers unilaterally. Include only when the user or environment explicitly requests them.
- Place trailers after a blank line following the body (or subject if no body).
- Issue references are trailers too (e.g.
Closes #123). They go at the bottom, never in the body. - ASCII-only rule applies to trailers.
Contextual logic
- Infer the primary intent from the diff (e.g. "Extract helper", "Replace duplicated logic", "Standardize scripts").
- Do not invent issue IDs, performance numbers, or behavior claims not evident from the diff or context.
- If no issue ID is provided, omit the footer entirely.
Multi-concern diffs
When a diff spans multiple unrelated concerns (e.g. a refactor + a new feature + a typo fix):
- Flag it: Tell the user the diff contains distinct concerns and suggest splitting into separate commits.
- If the user wants one commit: Use the primary change as the subject. Give each secondary concern its own short paragraph in the body explaining what and why.
- If the user wants to split: Suggest which files or hunks belong to which commit.
Anti-patterns
- Do not generate a message and then immediately run
git commitunless the user explicitly asked you to commit. - Do not invent issue IDs or claim behavior changes not supported by the diff.
- Do not add trailers (Co-Authored-By, etc.) unless explicitly requested.
Examples
Simple (no body):
Fix typo in READMEWith body:
Extract date parsing into shared helper
Three call sites parsed date strings with slightly different
rules, so the same input could be accepted in one place and
rejected in another. This commit moves parsing into one helper
so all callers behave the same way.
The helper uses the strictest of the existing rules. Inputs that
only the most lenient call site accepted, such as two-digit
years, are now rejected everywhere.With bullets and an issue reference:
Add retry limit to export job
Failed exports were retried indefinitely, so a permanent error
kept a worker busy forever. This commit caps retries and marks
the job failed once the limit is reached.
This has two visible effects:
- A job that hits the limit now shows as failed instead of
staying in progress forever
- Workers stuck on permanent errors are freed for other jobs
Closes #123Related skills
- Run
/verify-changesbefore generating a commit message to ensure the build passes.
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.

