Complete git workflow automation - commit, push, create PR, wait for CI, fetch results, merge. Use when you need to ship changes with proper commits and PR descriptions.
Automates complete git workflow from commit to merged PR with CI monitoring.
/plugin marketplace add RBozydar/rbw-claude-code/plugin install core@rbw-claude-codeThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/ship.shAutomate the complete git workflow from commit to merged PR.
| Command | Description |
|---|---|
ship | Workflow: commit → push → PR → CI wait → results |
ship full | Full workflow including merge after CI passes |
ship commit | Review changes and create conventional commit |
ship pr | Push branch and create PR with good description |
ship wait | Wait for CI checks on current PR |
ship status | Fetch CI status and PR comments |
ship merge | Merge PR with strategy selection and cleanup |
gh) installed and authenticatedbash ${SKILL_DIR}/scripts/ship.sh ship
bash ${SKILL_DIR}/scripts/ship.sh full --merge squash
bash ${SKILL_DIR}/scripts/ship.sh ship --plan plans/my-feature.md
bash ${SKILL_DIR}/scripts/ship.sh ship --wait 10m
# Squash and merge (default)
bash ${SKILL_DIR}/scripts/ship.sh merge --strategy squash
# Create merge commit
bash ${SKILL_DIR}/scripts/ship.sh merge --strategy merge
# Rebase and merge
bash ${SKILL_DIR}/scripts/ship.sh merge --strategy rebase
bash ${SKILL_DIR}/scripts/ship.sh merge --auto-merge --strategy squash
First, understand what's being shipped:
bash ${SKILL_DIR}/scripts/ship.sh commit
The script will show:
Analyze:
Based on the changes, generate a conventional commit message:
<type>(<scope>): <description>
<body>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
Guidelines:
Execute:
git add .
git commit -m "$(cat <<'EOF'
feat(module): add new capability
Detailed explanation of why this change was made.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
# Push branch
BRANCH=$(git branch --show-current)
git push -u origin "$BRANCH"
# Create PR with structured description
gh pr create --title "feat(module): add new capability" --body "$(cat <<'EOF'
## Summary
- What was changed
- Why it was needed
- Key decisions made
## Type of Change
- [x] New feature
## Testing
- Tests added/modified
- Manual testing performed
## Related Issues
Closes #123
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
# Wait with default timeout (8 minutes)
bash ${SKILL_DIR}/scripts/ship.sh wait
# Or with custom timeout
bash ${SKILL_DIR}/scripts/ship.sh wait --wait 10m
Exit codes:
0 - All checks passed1 - Checks failed2 - Timeoutbash ${SKILL_DIR}/scripts/ship.sh status
Reports:
# Squash and merge (default, recommended)
bash ${SKILL_DIR}/scripts/ship.sh merge --strategy squash
# Create merge commit
bash ${SKILL_DIR}/scripts/ship.sh merge --strategy merge
# Rebase and merge
bash ${SKILL_DIR}/scripts/ship.sh merge --strategy rebase
# Enable auto-merge (for branch protection)
bash ${SKILL_DIR}/scripts/ship.sh merge --auto-merge --strategy squash
What happens on merge:
## Ship Results
**PR:** #123 - https://github.com/org/repo/pull/123
**Branch:** feature/my-feature
### Commit
feat(module): add new capability
### CI Status
✓ build (passed)
✓ test (passed)
✓ lint (passed)
### Reviews
- @reviewer1: APPROVED
- @reviewer2: CHANGES_REQUESTED
### Comments
- [@reviewer2] Please fix the typo on line 42
### Next Steps
- [ ] Address review comments
- [ ] Re-request review after fixes
## Merge Results
**PR:** #123 - MERGED
**Strategy:** squash
**Branch:** feature/my-feature → deleted
### Cleanup
✓ Remote branch deleted
✓ Switched to main
✓ Pulled latest changes
✓ Local branch deleted
### Summary
Your changes are now on main!
Error: Cannot ship from main. Create a feature branch first.
Suggestion: git checkout -b feat/my-feature
Error: Push failed. Possible causes:
- Remote branch has new commits (git pull --rebase)
- No push access (check permissions)
- Branch protection rules
Warning: CI checks still running after 8 minutes.
Current status:
- build: ✓ passed
- test: ⏳ running (12m elapsed)
Options:
1. Continue waiting: ship wait --wait 15m
2. Check GitHub Actions: gh run view
3. Enable auto-merge: ship merge --auto-merge
Error: PR has merge conflicts.
To resolve:
1. git fetch origin
2. git rebase origin/main
3. Resolve conflicts in your editor
4. git add <resolved-files>
5. git rebase --continue
6. git push --force-with-lease
7. ship merge --strategy squash
Warning: Auto-merge not available.
Auto-merge requires branch protection rules. Either:
1. Enable branch protection in repo settings
2. Wait for CI manually: ship wait
3. Merge manually: ship merge
This skill integrates with:
/workflows:work - Used in Phase 4 (Ship It)conventional-commits hook - Validates commit formatpr-comment-resolver agent - Resolves PR feedbackgit-worktree skill - For parallel developmentCreate a PR first:
bash ${SKILL_DIR}/scripts/ship.sh pr
Run:
gh auth login
Just create the PR without waiting:
bash ${SKILL_DIR}/scripts/ship.sh pr
Then check status later:
bash ${SKILL_DIR}/scripts/ship.sh status
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.