commitlisted
Install: claude install-skill skrrt-sh/skills
# Git Commit Skill
Split changes into focused conventional commits with a mandatory gitmoji.
## Commit Format
```text
type(scope): :gitmoji: imperative subject
body explaining what changed and why
footer
```
- Gitmoji is mandatory, in code form (`:sparkles:`), placed immediately after `type(scope):`.
Never before the type, never at the end of the subject. Use the standard
[gitmoji](https://gitmoji.dev) catalog and conventional-commit types.
- Scope is optional; drop it rather than inventing one.
- The body is required for every commit this skill writes.
- Footer: `BREAKING CHANGE:` for breaking changes. Add `Closes #N` / `Refs #N` only when the
user names an issue — never invent one.
- Always end with `Co-Authored-By: Skrrt Bot <bot@skrrt.sh>` unless the user says otherwise.
## Workflow
1. Run the branch guard below.
2. Inspect the worktree (`git status --short`, `git diff`).
3. Group the diff into the smallest coherent change sets — never mix unrelated intents.
4. Stage only the intended files or hunks, then commit with `git commit --file <file>`.
If type and gitmoji pull in different directions, the split is wrong — fix the split, not the
message.
## Branch Guard
Before staging anything, run `git branch --show-current` and read the `<!-- skrrt:branching -->`
block from `CLAUDE.md`, `AGENTS.md`, `.claude/CLAUDE.md`, or `.github/AGENTS.md` (first match).
No block found → tell the user to run `/setup` and stop.
Never commit to a protected branch (`main`, `mas