From ship
Analyzes staged Git changes and generates Conventional Commits format messages. Presents three candidates for user selection or customization, then executes the commit.
How this command is triggered — by the user, by Claude, or both
Slash command
/ship:SKILL [context or issue reference]haikucommit/This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# /commit - Git Commit Message Generator ## Input - Context or issue reference: `$ARGUMENTS` (optional) - If `$ARGUMENTS` is empty → analyze staged changes only ## Execution | Step | Action | | ---- | ------------------------------------------------------------------------ | | 1 | Read staged: `git status`, `git diff --staged` (parallel) | | 2 | Generate 3 candidates (varied scope/wording, see Type Detection + Rules) | | 3 | Present via AskUserQuestion → user selects or customizes (Other) |...
$ARGUMENTS (optional)$ARGUMENTS is empty → analyze staged changes only| Step | Action |
|---|---|
| 1 | Read staged: git status, git diff --staged (parallel) |
| 2 | Generate 3 candidates (varied scope/wording, see Type Detection + Rules) |
| 3 | Present via AskUserQuestion → user selects or customizes (Other) |
| 4 | Execute selected commit (sandbox-compatible) |
Infer type from diff context:
| Type | When to use |
|---|---|
| feat | New functionality or capability |
| fix | Bug fix or error correction |
| refactor | Code restructuring without behavior change |
| docs | Documentation only changes |
| test | Adding or updating tests |
| chore | Config, dependencies, maintenance |
| perf | Performance optimization |
| style | Formatting, whitespace, linting |
| ci | CI/CD configuration changes |
Default to feat if unclear.
| Rule | Guideline |
|---|---|
| Subject | ≤72 chars, imperative, lowercase, no period |
| Footer | BREAKING CHANGE:, Closes #123, Co-authored-by: |
feat(auth): add OAuth2 authentication support
feat(api)!: remove deprecated endpoints # BREAKING CHANGE
# Multi-line: file-based
cat > /tmp/claude/commit-msg.txt << 'EOF'
<message>
EOF
git commit -F /tmp/claude/commit-msg.txt
mv /tmp/claude/commit-msg.txt ~/.Trash/ 2>/dev/null || true
# Single-line: multiple -m flags
git commit -m "subject" -m "body"
| Error | Action |
|---|---|
| No staged files | Report "Nothing staged" |
| Empty diff | Return minimal message |
| No git repository | Report "Not a git repo" |
| Pre-commit failed | Report hook error |
## Commit Preview
> <type>(<scope>): <description>
<body>
`<footer>`
Committed: [short-hash] ():
npx claudepluginhub thkt/dotclaude --plugin toolkit/SKILLResolves GitHub issue via isolated worktree, TDD workflow, and auto-closing PR creation.
/SKILLCreates conventional git commit from conversation intent using git-agent and pushes to remote. Accepts optional Claude model name for co-author.
/SKILLSurfaces current session task from state file, evaluates clarity (prompts for clarification if needed), assesses completion, and verifies if fully done.