Claude-skill-registry drafting-conventional-commits
Draft a Conventional Commits message from either a short summary of changes or by inspecting the local git diff. Use when the user wants a commit message formatted as type(scope): subject, with optional body and footers for breaking changes or issue references.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/drafting-conventional-commits" ~/.claude/skills/majiayu000-claude-skill-registry-drafting-conventional-commits && rm -rf "$T"
skills/data/drafting-conventional-commits/SKILL.mdConventional Commit Drafter
Overview
Turn a short change summary into a Conventional Commits message. If the user asks you to infer changes, inspect the local git diff. Ask only for missing essentials like type, scope, or breaking change details.
Workflow
- If the user provides a summary, read it. If they ask you to check changes, inspect
andgit status -sb
, then open specific diffs as needed.git diff --stat - Infer a commit type.
- Identify an optional scope (subsystem, module, or area). Omit if unclear.
- Draft a concise subject in imperative mood, lower-case, no trailing period.
- Include a brief body that explains the reason for the change (why, not how). If the reason is not clear from the summary or diff, ask the user for it.
- Add footers for breaking changes or issue references.
Conventional Commits Rules
- Format:
type(scope): subject - Types:
,feat
,fix
,docs
,style
,refactor
,perf
,test
,build
,ci
,chorerevert - Subject: imperative, lower-case, no period, <= 72 chars when possible
- Breaking change: add
after type/scope and include!
footerBREAKING CHANGE: <details> - Issue refs: include
orRefs: #123
footer when providedCloses: #123
Type Selection Heuristics
- New user-facing behavior:
feat - Bug fix:
fix - Docs only:
docs - Formatting (no behavior change):
style - Refactor without behavior change:
refactor - Performance improvement:
perf - Tests only:
test - Build system/deps:
build - CI config/pipeline:
ci - Maintenance chores:
chore - Revert of a prior commit:
revert
Output
Return only the commit message, with no extra commentary. If you need the reason for the change, ask a short follow-up question instead of returning a commit message.
Examples
Input summary: "add pagination to the invoices list" Output:
feat(invoices): add pagination to list
Input summary: "fix crash when opening empty cart; breaking API change: remove legacy cart token" Output:
fix(cart)!: prevent crash on empty cart BREAKING CHANGE: remove legacy cart token
Input summary: "update readme with setup steps" Output:
docs(readme): add setup steps