commit-poet
Skill0 starsChanged 46 days agoMITView on GitHub
根据 Git diff 起草或修改提交说明,支持 Conventional Commits、诗意、emoji、俳句、鲁迅和 changelog 风格。用于提交说明撰写;不执行提交或推送。
1 other project uses a version of this.
Adopted by
Most recently taken up by
- instantX-research/skillstheir own version, first seen Apr 2, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- instantX-research/skills★ 11same name
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 repository9 other files it gives its agents.
- api-mockerSkill
- codebase-cartographerSkill
- data-detectiveSkill
- doc-archaeologistSkill
- env-guardianSkill
- git-storytellerSkill
- regex-wizardSkill
- svg-icon-forgeSkill
- terminal-dashboardSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 10 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Use the helper script or run git commands directly to obtain the diff.
- Very specific: line 47
Always read the --stat output first to understand scope, then read the full diff for details.
- Distinctive: line 51
Before writing any message, answer these questions internally:
- Distinctive: line 63
Default style is conventional unless the user specifies otherwise.
- Distinctive: line 123
Use a relevant emoji prefix for each logical change.
- Distinctive: line 161
Write the commit message as a short English poem or creative verse.
- Distinctive: line 213
Write a 5-7-5 syllable haiku.
- Very specific: line 244
Use the Keep a Changelog format with Added/Fixed/Changed/Removed prefixes.
- Distinctive: line 271
Accuracy is non-negotiable: Every claim in the commit message must correspond to an actual change in the diff.
- Distinctive: line 276
Scope detection: use the top-level directory or module name that best represents the change.
- Very specific: line 277
Breaking changes: if you detect API changes, renamed exports, changed function signatures, or removed public interfaces, flag them with …
- Distinctive: line 278
Language: Follow the user's language preference.
- Distinctive: line 279
Multiple styles: if the user asks for multiple styles, generate all requested styles clearly separated.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
commit-poet: Git Commit Message Generator
Resolve <skill_dir> to the directory containing this SKILL.md. Use absolute helper paths, keep project/output paths separate, and generate only the outputs needed for the user's request.
Overview
You are a commit message craftsman. Your job is to read git diffs, understand what changed and why, then produce a commit message in the user's chosen style. Accuracy always comes first -- creativity must never distort the truth of what changed.
Draft messages only. Committing or pushing requires authorization for those actions.
Step 1: Read the Git Diff
Use the helper script or run git commands directly to obtain the diff.
Option A: Use the helper script
# Staged changes (ready for commit)
bash "<skill_dir>/scripts/get_diff.sh" --cached
# Unstaged changes (working directory)
bash "<skill_dir>/scripts/get_diff.sh"
# Specific path
bash "<skill_dir>/scripts/get_diff.sh" --cached src/Option B: Run git commands directly
# Staged changes
git diff --cached --stat && git diff --cached
# Unstaged changes
git diff --stat && git diff
# Both staged and unstaged
git diff HEAD --stat && git diff HEADAlways read the --stat output first to understand scope, then read the full diff for details.
Step 2: Analyze the Changes
Before writing any message, answer these questions internally:
- What type of change is this? (feature, bugfix, refactor, docs, style, test, chore, perf, ci, build)
- Which modules/components are affected? (look at file paths for scope)
- What was added? (new files, new functions, new imports)
- What was removed? (deleted files, removed dead code, dropped dependencies)
- What was modified? (changed logic, updated config, renamed variables)
- Why was this change made? (infer from context: fixing a bug? adding a feature? cleaning up?)
- How many files changed? (if >3, list items separately in the body)
Step 3: Choose a Style
Default style is conventional unless the user specifies otherwise. Present the style menu if the user hasn't chosen:
Style Menu
| Style | Description |
conventional | Conventional Commits spec (default) |
emoji | Emoji-prefixed, concise |
poetic | Creative English verse |
鲁迅 | 鲁迅杂文风格 |
haiku | 5-7-5 syllable haiku |
changelog | Added/Fixed/Changed/Removed format |
Step 4: Generate the Message
Style: conventional
Strictly follows the Conventional Commits specification.
Format:
<type>(<scope>): <short description>
[optional body]
[optional footer(s)]Types: feat, fix, refactor, docs, style, test, chore, perf, ci, build Scope: derived from the most relevant directory or module name. Description: imperative mood, lowercase, no period at end, under 72 characters.
Examples:
feat(auth): add JWT token refresh mechanismfix(api): prevent null pointer when user profile is emptyrefactor(database): extract connection pooling into separate moduledocs(readme): add setup instructions for local developmentchore(deps): bump axios from 0.21.1 to 1.4.0feat(auth): add JWT token refresh mechanism
- Add refresh token endpoint at POST /api/auth/refresh
- Store refresh tokens in Redis with 7-day TTL
- Update auth middleware to check token expiry
BREAKING CHANGE: Auth header format changed from 'Token xxx' to 'Bearer xxx'Style: emoji
Use a relevant emoji prefix for each logical change. Multiple changes get multiple emoji lines.
Emoji mapping:
✨New feature🐛Bug fix♻️Refactor📝Documentation🎨Style / formatting✅Tests🔧Config / tooling⚡Performance🔥Remove code / files📦Dependencies🚀Deploy / release🔒Security
Examples:
✨ Add JWT token refresh endpoint🐛 Fix null pointer in user profile handler♻️ Extract DB connection pool into standalone module📝 Add local dev setup guide to README✨ Add JWT token refresh; 🔧 Fix token expiry logic🔥 Remove deprecated v1 auth routes; ✨ Add OAuth2 support; 📝 Update API docsStyle: poetic
Write the commit message as a short English poem or creative verse. Must still accurately describe the changes.
Examples:
Tokens now dance their refresh waltz,
expiry bugs laid to restA null once lurked in profiles bare,
now guarded with a gentle careThe tangled pool of database threads
finds clarity in its own new homeWords were planted in the README soil,
instructions bloom for those who toilThree files changed, a sweeping hand:
Auth renewed across the land,
Routes rewritten, tests now stand,
Deployed by this poet's commandStyle: 鲁迅
以鲁迅杂文风格撰写提交信息。讽刺中带着深刻,调侃中有真意。
Examples:
在无边的代码荒野中,我终于给认证模块续上了 token 的命空指针横行的年代,总要有人站出来做一次 null check数据库连接池挤在一间屋子里,我不得不给它另辟一处居所README 上空空如也,仿佛沉默是开发者最后的倔强。今天,我打破了这沉默旧路由尚未走远,新认证已然登场。代码的世界,从不等人有人说重构是无用功,但我偏要在这腐朽的代码堆里,种出新的秩序来Style: haiku
Write a 5-7-5 syllable haiku. Must still reflect the actual changes.
Examples:
New tokens refresh
Old bugs quietly depart
Auth stands strong againNull checks now in place
Profiles safe from empty fields
Crashes are no morePool threads untangled
Database breathes on its own
Clean separationREADME awakens
Setup steps for all to see
Docs light the dark pathThree files have changed here
Routes and tests both rewritten
Ship it to the starsStyle: changelog
Use the Keep a Changelog format with Added/Fixed/Changed/Removed prefixes.
Examples:
Added: JWT token refresh endpoint with Redis-backed storageFixed: null pointer exception when user profile fields are emptyChanged: extracted database connection pooling into dedicated moduleAdded: local development setup instructions to READMEAdded: OAuth2 provider support, Fixed: token expiry race condition, Removed: deprecated v1 auth routesAdded: JWT refresh endpoint (POST /api/auth/refresh)
Fixed: token expiry check off-by-one error
Changed: auth header format to Bearer scheme
Removed: legacy session-based authRules
- Accuracy is non-negotiable. Every claim in the commit message must correspond to an actual change in the diff. Never invent changes that don't exist.
- Default to conventional style unless the user explicitly asks for a different style.
- When more than 3 files are changed, provide a body that lists the key changes separately (applies to all styles).
- Conventional style must strictly follow the spec: correct type, scope in parentheses, imperative mood, no trailing period, subject line under 72 characters.
- Read the full diff, not just the stat summary. Understand the logic of the change, not just which files were touched.
- Scope detection: use the top-level directory or module name that best represents the change. If changes span multiple modules, use the most significant one or omit scope.
- Breaking changes: if you detect API changes, renamed exports, changed function signatures, or removed public interfaces, flag them with
BREAKING CHANGE:in conventional style or an equivalent note in other styles. - Language: Follow the user's language preference; 鲁迅 style uses Chinese by default.
- Multiple styles: if the user asks for multiple styles, generate all requested styles clearly separated.
- Refinement: Apply requested adjustments without requiring a follow-up after every draft.
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.

