semantic-commits
Standardizes git commit messages using the Conventional Commits format to document change intent clearly.
Install
mkdir -p .claude/skills/semantic-commits && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10479" && unzip -o skill.zip -d .claude/skills/semantic-commits && rm skill.zipInstalls to .claude/skills/semantic-commits
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Write descriptive conventional commit messages that explain intent. USE FOR: committing changes; reviewing staged diffs; drafting commit messages; when the user asks to commit. DO NOT USE FOR: general coding; writing tests; deployment.Key capabilities
- →Draft commit messages
- →Explain intent
- →Enforce conventional commits
- →Use scopes
How it works
It guides the user to write descriptive commit messages that explain the 'why' behind changes, following conventional commit formats.
Inputs & outputs
When to use semantic-commits
- →Committing new features
- →Documenting bug fixes
- →Refactoring commit history
- →Writing clear commit messages
About this skill
Semantic Commits
Every commit in this project uses the Conventional Commits format. Messages must be descriptive — explain why the change was made, not just what changed.
Format
<type>(<scope>): <subject>
[optional body]
[optional footer(s)]
Type (required)
| Type | When to use |
|---|---|
feat | New user-facing feature or capability |
fix | Bug fix |
docs | Documentation only (Markdown, docstrings, comments) |
refactor | Code change that neither fixes a bug nor adds a feature |
test | Adding or updating tests |
ci | CI/CD pipeline or workflow changes |
chore | Maintenance (deps, build scripts, tooling) |
Scope (recommended)
A short noun identifying the area of the codebase. Use the scopes that already appear in the git log when they fit:
translator, organizer, converter, docker, cd, ci, deps, makefile,
security, http, tools, skills
Add a new scope only when none of the above applies.
Subject line rules
- Use imperative mood ("add", not "added" or "adds").
- Do not capitalize the first word after the colon.
- Do not end with a period.
- Keep to 72 characters or fewer.
- Describe intent, not mechanics:
- Good:
fix(converter): handle fractional cups in metric conversion - Bad:
fix(converter): change if statement
- Good:
Body (when needed)
Add a body for any commit where the subject alone does not explain:
- Why the change was necessary.
- What trade-offs or alternatives were considered.
- How the change achieves its goal, if non-obvious.
Wrap body lines at 72 characters. Separate from the subject with a blank line.
Breaking changes
Append ! after the type/scope and add a BREAKING CHANGE: footer:
feat(translator)!: require API key via environment variable
BREAKING CHANGE: the --api-key CLI flag has been removed;
set OPENAI_API_KEY instead.
Commit workflow
When the user asks you to commit:
- Run
git diff --cached(andgit status) to understand staged changes. - Read recent commits (
git log --oneline -10) to match the project's existing voice and scope conventions. - Classify the change using the type table above.
- Draft a subject line that answers "why does this change exist?"
- Add a body if the subject alone is insufficient.
- Use a HEREDOC to preserve formatting:
git commit -m "$(cat <<'EOF'
feat(translator): support DeepL as an alternative backend
Add a --backend flag that accepts "openai" (default) or "deepl".
The DeepL provider reuses the same async HTTP client pool.
EOF
)"
Examples from this repository
fix(cd): use git ancestry check for prod builds instead of head_branch
feat(http): enable HTTP/2 for improved request performance (#41)
refactor(tools): extract shared model comparison fixtures
docs(skills): expand GitHub deployment skill with release plan (#50)
chore(deps): upgrade to Python 3.14 and Node.js 24 (#43)
test(converter): add comprehensive unit converter tests
ci(deps): bump dorny/test-reporter in the github-actions group (#45)
When not to use it
- →General coding
- →Deployment
Prerequisites
Limitations
- →72-character subject limit
- →Requires descriptive intent
How it compares
It mandates a focus on intent over mechanics, ensuring the git history is a communicative record.
Compared to similar skills
semantic-commits side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| semantic-commits (this skill) | 0 | 4mo | Review | Beginner |
| openspec-archive-change | 4 | 6mo | Review | Intermediate |
| session-wrap | 1 | 7mo | Review | Intermediate |
| tbd | 0 | 5mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
openspec-archive-change
studyzy
归档实验性工作流中已完成的变更。当用户想要在实现完成后最终确定并归档变更时使用。
session-wrap
team-attention
This skill should be used when the user asks to "wrap up session", "end session", "session wrap", "/wrap", "document learnings", "what should I commit", or wants to analyze completed work before ending a coding session.
tbd
jlevy
|-
preserve
markwharton
Preserve the most recently approved plan to docs/plans/
release-closeout-engineer
ThiagoGuislotti
Close out a completed workstream by updating README artifacts when needed, producing a commit message, and applying changelog-ready content when the work is ready for commit. Use after review when a stable checkpoint is ready.
session-handoff
Maximumsoft-Co-LTD
Serialize mid-session context into a handoff doc so the next session (or engineer) can resume without cold-start