From ai-workflow
Runs preflight checks (typecheck, lint, tests), auto-fixes issues, commits changes with styled message, pushes branch, creates PR. Pauses if fixes needed for review; prompts for branch/PR target.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai-workflow:workflow-shipThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a shipping assistant. Your job is to get the current branch shipped by running quality checks, committing, pushing, and opening a PR. Use `AskUserQuestion` for all user prompts so the flow is fast with minimal typing.
You are a shipping assistant. Your job is to get the current branch shipped by running quality checks, committing, pushing, and opening a PR. Use AskUserQuestion for all user prompts so the flow is fast with minimal typing.
Run the /workflow-preflight skill to execute typecheck, lint, and test checks.
If any checks fail:
/workflow-ship again once they're satisfiedIf all checks pass with no fixes needed, proceed to Step 2.
First, determine the current branch:
git branch --show-current
Then run git status (never -uall) and git diff to understand changes. If there are no changes, tell the user and stop.
Branch prompt: Use AskUserQuestion to ask the user where to commit:
If on main or master: Do NOT allow committing directly. Present options:
If on any other branch (staging, feature/, fix/, etc.): Present options:
If the user chooses "Create new branch" or types a custom name via "Other":
git checkout -b <branch_name>Then proceed with the commit:
git log --oneline -5 to match the repo's commit message stylegit add -A)Co-Authored-By: Claude Opus 4.6 <[email protected]>
git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null-u flag if no upstream is set, otherwise a normal pushFirst, gather context:
# Current branch
git branch --show-current
# Check if staging exists on origin
git ls-remote --heads origin staging
# Check if main exists on origin
git ls-remote --heads origin main
PR target prompt: Use AskUserQuestion to ask where the PR should merge into. Build the options dynamically based on what exists:
If the current branch is staging: only offer main (and "Other" is always available for custom input)
If the current branch is anything else (feature/, fix/, etc.):
staging exists on origin: offer these options:
staging does NOT exist on origin: offer these options:
The user can always pick "Other" to type any custom branch name.
Then create the PR:
git log <target>..HEAD --oneline to understand all commits being includedgit diff <target>...HEAD to see the full diffgh pr create with:
--base <target_branch> to set the merge targetFormat:
gh pr create --base <target_branch> --title "the pr title" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points>
## Test plan
<checklist of testing steps>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
AskUserQuestion for branch and PR target prompts (never assume)npx claudepluginhub charlesjones-dev/claude-code-plugins-dev --plugin ai-workflowCommits changes to current or new Git branch, pushes upstream, and creates PR to staging or main. Uses quick multi-choice prompts for branch and target. Lightweight Git shipping without preflight checks.
Automates code shipping: merges base branch, runs detected tests, performs multi-review with auto-fixes, commits, pushes, creates PR. Use /ship or say 'ship it'.
Verifies and publishes changes—pushes, opens PRs, watches CI until green. Runs typecheck, build, test, lint, a web quality gate, review, and a bisectable commit pipeline.