Install
openclaw skills install @ink5725/my-first-skillUse when creating git commit messages, preparing to commit changes, or when commit history is messy, inconsistent, or hard to review. Covers conventional commit format, scope selection, and message hygiene.
openclaw skills install @ink5725/my-first-skillWrite clean, conventional commit messages that make history readable and reviewable.
Core principle: A commit message should let a reviewer understand why a change was made without reading the diff.
git commit or git commit --amendDo NOT use for:
Follow Conventional Commits:
<type>(<scope>): <subject>
<body>
<footer>
| Type | Use for |
|---|---|
| feat | New feature |
| fix | Bug fix |
| docs | Documentation only |
| style | Formatting, whitespace, no logic change |
| refactor | Code change that neither fixes nor adds |
| perf | Performance improvement |
| test | Adding or correcting tests |
| chore | Maintenance, deps, build, CI |
| revert | Reverting a previous commit |
Subject line
Body (optional)
Footer (optional)
BREAKING CHANGE: <description>Closes #123, Fixes #456Good:
fix(auth): prevent login when session cookie is expired
Sessions were validated by presence, not expiry time, allowing
stale cookies to authenticate users after logout.
Adds an explicit expiry check in validate_session() and a
regression test covering the expired-cookie path.
Closes #284
Bad:
fixed stuff
Why bad: no type, no scope, no context; "stuff" is unsearchable.
git status and git diff --staged to see what is actually committed| Mistake | Fix |
|---|---|
| Vague subjects ("update") | Name the concrete change and module |
| Describing the diff in body | Explain motivation and trade-offs instead |
| Multiple unrelated changes | Split into separate commits |
| Past tense ("added") | Use imperative ("add") |
| Overly wide scope ("app") | Use the affected module or file |
Any of these: rewrite the message before committing.