agents/skills/commit/SKILL.md
Conventional commit message generator for jj and git repos. Analyzes diffs and produces scoped, well-formed commit messages. Use whenever the user says "commit", "make a commit", "write commit message", or similar.
npx skillsauth add elianiva/dotfiles commitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
# returns "jj" or "git"
which jj 2>/dev/null && jj root 2>/dev/null && echo "jj" || (git rev-parse --show-toplevel 2>/dev/null && echo "git")
Prefer jj if both work — it's the user's primary VCS.
jj status # changed files
jj diff # full diff
jj diff <file> # specific file
jj describe -m "<type>(<scope>): <subject>"
With body:
jj describe -m "$(cat <<'EOF'
<type>(<scope>): <subject>
<body>
EOF
)"
jj restore --from @- <file1> <file2>
git status # check state
git diff HEAD # all changes
git add <file> # stage
git commit -m "<type>(<scope>): <subject>"
git commit -m "$(cat <<'EOF'
<type>(<scope>): <subject>
<body>
EOF
)"
<type>(<scope>): <subject>
<body>
Types: feat fix refactor perf style test docs chore revert
Scope: module changed, 1-2 words
Subject: imperative, no period, ≤72 chars
Body (optional): what and why, not how (diff shows how)
Breaking: add ! after type — feat!(api): change pagination response
jj diff / git diff — understand every change| Change | Message |
|--------|---------|
| New API route | feat(flights): add GET /api/flights/:id |
| Modal bug | fix(responsive-modal): stop blurring select on mobile after scroll |
| Rename function | refactor(utils): rename fetchWrapper to useFetchWrapper |
| Bump dep | chore(deps): bump radix-ui/react-select to 2.2.6 |
| Remove dead code | chore(auth): remove legacy session shim |
| Perf | perf(table): memoize row renderer |
| Breaking change | refactor!(db): drop legacy fuel_storage table |
| Message | Why |
|---------|-----|
| fix: fix bug | Zero info |
| fixed the modal | Past tense, no scope |
| fix(modal):fixed | Missing space after colon |
| feat(auth): add login page with form validation, error handling, remember-me, password reset, OAuth buttons | Subject >72 chars |
| fix(cache): change gcTime from 5min to 30min in queryClient config | Describes how (diff shows it), not why |
| ✨ feat(ui): add spinner | Emojis are noise in terminal |
| fix #1234 | No description |
| Bump lodash to 4.17.21 (#4567) | GitHub auto-suffix noise |
pnpm-lock.yaml — restore them out unless the change intentionally modifies depsgit add . / jj restore blindly — check what's in working copy firstfix: ... is ambiguous, fix(tooltip): ... is notchore: wip — either write a meaningful subject or leave undescribeddevelopment
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
development
Run an extremely strict maintainability review for abstraction quality, giant files, and spaghetti-condition growth. Use for a thermo-nuclear code quality review, thermonuclear review, deep code quality audit, or especially harsh maintainability review.
tools
At end of difficult sessions, analyze friction points and propose concrete improvements.
testing
Use when errors occur deep in execution and you need to trace back to find the original trigger - systematically traces bugs backward through call stack, adding instrumentation when needed, to identify source of invalid data or incorrect behavior