← ClaudeAtlas

ship-itlisted

Create branch, commit, push, and open a pull request. Use when: user says "ship it", "ship this", "create a PR", "open a PR", "push and PR", or wants to go from uncommitted changes to an open pull request.
WhatIfWeDigDeeper/agent-skills · ★ 2 · AI & Automation · score 74
Install: claude install-skill WhatIfWeDigDeeper/agent-skills
# Ship: Branch, Commit, Push & PR ## Arguments Optional text used as the commit message subject, branch name prefix, and PR title (e.g. `fix login timeout`). **Special argument keywords** (checked before treating `$ARGUMENTS` as a title): - `help`, `--help`, `-h`, `?` → skip the workflow and read [references/options.md](references/options.md) - `draft` or `--draft` → create a draft PR (equivalent to the Draft PR option). If additional text follows (e.g. `draft fix login timeout`), use the remainder as the title/branch prefix. If the user's message contains "draft" (e.g. "create a draft pr", "ship it as draft"), treat it the same way — enable draft mode and derive the title from any remaining description. ## Process ### 1. Preflight Checks ```bash git status git ls-files --others --exclude-standard # untracked files not shown by diff git branch --show-current DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@') # Fallback if origin/HEAD is unset if [ -z "$DEFAULT_BRANCH" ]; then DEFAULT_BRANCH=$(git remote show origin 2>/dev/null | grep 'HEAD branch' | sed 's/.*: //') fi git diff --stat git diff --stat --cached gh auth status ``` Determine: - What is the default branch? (detect from remote ref, do not assume `main`) - Are there changes to commit? Include both modified tracked files (`git diff`) and untracked files (`git ls-files --others`). If nothing at all, abort with message. - Are we on the default branch? (I