Commands that interact with git. Claude Code can run any git command raw, but these wrappers enforce the workflow rules every commit has to follow: Docker-first quality checks, conventional commits, Claude Code footer, no surprise pushes.
/commit — the disciplined commitStarter kit: YES
Scope: personal
File: ../starter-kit/.claude/commands/commit.md
Runs a strict commit sequence:
git status, asks user which files to include (default: all).| Prefix | Meaning |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation changes |
style: |
Formatting only, no logic |
refactor: |
Code restructure without behavior change |
test: |
Test additions or changes |
chore: |
Build/tooling/dependency changes |
Subjects under 72 characters. Body only if the change needs context.
Every commit includes:
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Why the footer matters:
git log --grep "Co-Authored-By: Claude" shows every AI-assisted commit/commit refuses to do/commit vs raw git commit is that quality checks are pre-flight, not post-flight.--no-verify. Ever. If a pre-commit hook fails, fix the underlying issue./ship — commit + merge + cleanupStarter kit: YES
Scope: personal
File: ../starter-kit/.claude/commands/ship.md
The “I’m done with this feature branch” command. Runs:
/commit)/commit)--no-ff (preserves the branch topology)/ship vs /commit| Situation | Use |
|---|---|
| Mid-feature work, landing a partial step | /commit |
| Feature is done, ready for main | /ship |
| You’ve been working on main directly (don’t, but if) | /commit (there’s no merge) |
| You want to just get the commit in without touching branches | /commit |
/ship is /commit followed by the branch dance. If you’re not ready to merge, don’t use /ship.
/ship won’t do/ship stops and hands you the conflicted files.git branch -d, not -D. If the branch isn’t merged, deletion fails — which is what you want.git commands?You can ask Claude to run raw git commit -am "fix stuff". Claude will do it. But:
/commit enforces the rules. Use it.
/commit and /ship don’t cover advanced git. For:
git rebase -i (interactive rebase)git cherry-pickgit reflog for accident recoverygit bisect…run raw commands. These are situational and not worth wrapping.
# edit files via Claude, test changes with /test
/commit # land the change
# ... maybe more commits ...
/ship # merge to main when feature is done
git push # explicit — you decide when
Four operations in sequence. Never skip /commit’s lint step. Never force-push main. Never ask /ship to do things it refuses.
/code-review before /commit catches more than lint/test verifies the suite before you shipprinciples/docker-first.md — why the checks run inside the container