Commit Message Validation
/install commit-message-writing
Commit Message Writing
Every commit: valid Conventional Commit, atomic, on the right short-lived branch.
Required workflow
git status --shortandgit diff --stat.- Verify you're on a short-lived branch dedicated to one feature, bug, fix, or coding area. If not, create/switch first.
- Confirm the changes are one logical unit. If mixed, split before committing.
- Confirm automated tests appropriate to the scope will run.
- Pick the most specific commit type.
- Write the message:
\x3Ctype>[optional scope][!]: \x3Cimperative lowercase description>
[optional body]
[optional footer(s)]
- Validate with
scripts/validate_commit_message.pybefore committing.
Hard rules
- One short-lived branch per feature, bug, fix, or distinct coding area.
- Keep branches narrow, merge back quickly, avoid long-lived divergence.
- Every PR must have robust automated tests so bugs are caught early.
- Always include a lowercase type followed by
:. - Imperative, lowercase description, no trailing period, ≤72 chars.
- Body: one blank line after description. Footers: one blank line after body.
- Footer format:
Token: value. Hyphens in tokens exceptBREAKING CHANGE. - Use
!and/orBREAKING CHANGE:footer for breaking changes. - Never use
WIP,misc,update, or vague summaries.
Types
| Type | When | SemVer |
|---|---|---|
feat |
new feature | minor |
fix |
bug fix | patch |
refactor |
restructure, no behavior change | none |
perf |
performance improvement | none (patch if fixes bug) |
docs |
documentation only | none |
test |
tests only | none |
build |
build system / deps | none |
ci |
CI/CD changes | none |
chore |
maintenance / tooling | none |
style |
formatting only | none |
revert |
revert prior commit | depends |
Scope
Use a consistent noun for the dominant area. Omit only when truly cross-cutting. Never multiple scopes in one commit line.
Splitting rules
Split when:
- feature + bug fix
- code + formatting-only cleanup
- deps/build + application logic
- refactor + standalone behavior change
- generated files + loosely coupled source
One type, one intent per commit. If you can't describe it that way, split.
Validation
python3 scripts/validate_commit_message.py --message "feat(auth): add otp fallback"
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install commit-message-writing - After installation, invoke the skill by name or use
/commit-message-writing - Provide required inputs per the skill's parameter spec and get structured output
What is Commit Message Validation?
Strict Conventional Commits v1.0.0, atomic commit discipline, and Trunk-Based Development guardrails for git work. Use when preparing a commit, staging chang... It is an AI Agent Skill for Claude Code / OpenClaw, with 183 downloads so far.
How do I install Commit Message Validation?
Run "/install commit-message-writing" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Commit Message Validation free?
Yes, Commit Message Validation is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Commit Message Validation support?
Commit Message Validation is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Commit Message Validation?
It is built and maintained by omaression (@omaression); the current version is v1.0.0-alpha.