2.7 KiB
When generating commit messages, always follow this process:
Check for staged changes: if
git diff --stagedis empty, STOP and tell the user “nothing is staged!” with a reminder togit addbefore invoking this skill.Gather context from the staged diff and recent history:
- Staged changes: !
git diff --staged --stat - Recent commits: !
git log --oneline -5
- Staged changes: !
Analyze the diff: understand what files changed and the nature of the changes (new feature, bug fix, refactor, etc.)
Write the commit message following these rules:
Use the accompanying style guide: - See style-guide-reference.md for detailed analysis of past commits in this repo.
Subject Line Format: - Present tense verbs: Add, Drop, Fix, Use, Move, Adjust, etc. - Target 50 chars (hard max: 67) - Backticks around ALL code elements (classes, functions, modules, vars) - Specific about what changed
Body Format (optional - keep simple if warranted): - Max 67 char line length - Use - bullets for lists - Section markers: Also, Deats, Other, Further, - Abbreviations: msg, bg, ctx, impl, mod, obvi, tn, fn, bc, var, prolly - Casual yet technically precise tone - Never write lines with only whitespace
Common Opening Patterns: - New features: “Add feature to module” - Removals: “Drop attr from class” - Bug fixes: “Fix issue in function” - Code moves: “Move thing to new_location” - Adoption: “Use new_tool for task” - Minor tweaks: “Adjust behavior in component”
- Write to TWO files:
.claude/<timestamp>_<hash>_commit_msg.md- with
<timestamp>fromdate -u +%Y%m%dT%H%M%SZor similar filesystem-safe format. - and
<hash>fromgit log -1 --format=%hfirst 7 chars.
- with
.claude/git_commit_msg_LATEST.md(overwrite)
- Always include credit footer:
When no part of the patch was written by claude,
(this commit msg was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
when some or all of the patch was written by claude instead use,
(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
Keep it concise. Match the tone of recent commits. For simple changes, use subject line only.