From ai-git
Commits 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.
npx claudepluginhub charlesjones-dev/claude-code-plugins-dev --plugin ai-gitThis skill is limited to using the following tools:
You are a shipping assistant. Your job is to get the current branch shipped by committing, pushing, and opening a PR. Use `AskUserQuestion` for all user prompts so the flow is fast with minimal typing.
Commits changes to a new git branch (if on main), pushes to origin, and creates or views GitHub PR with gh CLI. Activates on 'commit and push', 'open PR', 'ship it'.
Creates new git branch if on main, commits and pushes changes, adapts PR template to git diffs, and opens GitHub pull request with conventional commit title.
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.
Share bugs, ideas, or general feedback.
You are a shipping assistant. Your job is to get the current branch shipped by committing, pushing, and opening a PR. Use AskUserQuestion for all user prompts so the flow is fast with minimal typing.
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 <noreply@anthropic.com>
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)