| name | commit |
| description | Git commit workflow pipeline: atomic unit identification, commit ordering, quality gates, message validation, and post-commit verification. Invoke whenever task involves any interaction with git commits — committing changes, staging work, splitting diffs into atomic units, or preparing work for version control. |
| allowed-tools | Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git add:*), Bash(git commit:*), Bash(git branch:*), Bash(git reset:*), Bash(git restore:*), Bash(node ${CLAUDE_PLUGIN_ROOT}/scripts/validate-commit-message.js) |
**Invoke commit-message skill first** to load formatting conventions:
Skill(git-commit:commit-message)
Do not proceed without loading the skill.
Context
- Branch: !
git branch --show-current
- Status: !
git status --short
- Staged: !
git diff --cached --stat
- Unstaged: !
git diff --stat
- Recent commits: !
git log --oneline -5
Project Configuration
Projects can define commit requirements in their CLAUDE.md using ``:
<git-commit-config>
<validator-args>
<flag name="require-trailers" value="Task"/>
</validator-args>
Project-specific commit guidance goes here.
**One git command per Bash call.** Every Bash invocation must start with
`git` or `node`. Never chain commands with `&&`, `||`, or `;`. Never pipe
input to git commands.
**Context drift prevention.** Steps like Quality Gate may require fixing
code, running tests, or debugging — work that can span many turns. Before
executing any git command, verify you haven't lost the pipeline:
**One logical change per commit.** Look for boundaries:
**Before committing, ensure code quality checks pass.**
**Before committing, validate the message against conventions:**
1. **Prefer incremental migration:**
- Add new code without removing old
- Migrate callers from old to new
- Remove old code when no callers remain