write-commitlisted
Install: claude install-skill ku5ic/dotfiles
## Procedure
1. Check staged state: !`git status --short`
2. Pull the staged diff: !`git diff --cached`
3. Pull recent commit history to detect style: !`git log --oneline -30`
4. Detect the project's commit convention from the history:
- Conventional Commits (`feat:`, `fix:`, `chore:`, scoped: `feat(auth):`)
- Ticket prefix (`ABC-123:`, `#456:`)
- Plain summary line
- Emoji-based (gitmoji)
5. Write a message matching the detected style.
## Message rules
- Subject line: imperative mood, under 72 characters, no trailing period.
- Blank line, then body if the change warrants it. Body wraps at 72.
- Body explains why, not what. The diff shows what.
- No AI signatures. No "Generated by Claude" footers. No co-author tags unless the project already uses them.
- Follows `rules/adhd-output.md`, no exception: body is short chunked lines, never one dense paragraph, even when the change is complex enough to need a few sentences.
- If $ARGUMENTS is provided, use it as the intent hint and shape the subject around it.
- If the staged diff is empty: say so and stop.
- If the staged diff mixes unrelated changes: say so, list the clusters, and propose splitting into separate commits.
## Output
Print the proposed message in a fenced block. Then stop. Do not run `git commit`.
The user decides whether to pipe it: `git commit -m "$(pbpaste)"` or open an editor.