git-commitlisted
Install: claude install-skill aayushbtw/skills
# Git Commit
## Workflow
IMPORTANT: Follow these steps in order. Do not skip or reorder unless a step explicitly says to.
1. Check what is staged and what isn't:
```bash
git status --short
```
Nothing to commit at all, stop and tell the user. Nothing staged, run `git add -A`.
2. Read the staged diff and group it per the **Splitting commits** rules:
```bash
git diff --cached
```
One group, proceed. Multiple groups, tell the user how many commits are coming, then stage only the first group:
```bash
git reset HEAD
git add <file1> <file2>
```
3. Commit with a message built per the **Commit message** rules:
```bash
git commit -m "<message>"
```
If unstaged changes remain, repeat from step 1.
## Commit message
Format is `<type>(<scope>): <description>`, with `!` after the scope for a breaking change.
- **Scope is never optional**: Always in parentheses, always the area touched.
- **Description is present tense imperative, no period, ≤50 chars**: "add OAuth2 login flow", not "added OAuth2 login flow."
- **No generic messages**: Never "update code", "fix bug", or "changes".
- **No attribution**: Never add `Co-Authored-By` trailers, footers, or tool signatures.
Types:
- `feat`: A capability the project didn't have before. Renaming, restyling, or reorganizing an existing feature is not feat.
- `fix`: Correcting broken or incorrect behavior.
- `docs`: Documentation only.
- `refactor`: Restructuring without changing behavior, incl