Ship
Run the full workflow: name the branch, commit, push, and open a PR. Each step runs unconditionally — the step itself decides whether to act or skip. Stop immediately if any step fails.
If the user says "ship draft" or "draft", create the PR as a draft.
Pre-run state
These commands run automatically when the skill loads — output replaces each line below:
- Working tree status: !
git status - Current branch: !
git branch --show-current - Workflow count: !
gh api repos/{owner}/{repo}/actions/workflows --jq '.total_count' 2>/dev/null || true
Step 1 — Name the branch
Follow the branch-name skill to analyze the branch contents and rename if needed.
- If the branch already has a good descriptive name (matches
<type>/<description>pattern and accurately describes the work), keep it. - Otherwise, the
branch-nameskill will rename it.
Record
Note for the summary: Branch: <name> (or Branch: <name> (kept) if unchanged).
Step 2 — Commit
Follow the commit skill to analyze changes and create commits.
If there are no staged or unstaged changes, skip this step. Record: Commit: nothing to commit (skipped).
Record
Note for the summary: Commit: "<message>" (or multiple lines if split into multiple commits).
Step 3 — Squash commits
Follow the commits-squash skill to combine related commits into logical groups. If there are 0 or 1 commits, or commits are already clean, the skill will skip automatically.
Record
Note for the summary: Squash: N commits into M (or Squash: already clean (skipped)).
Step 4 — Push
Follow the push skill to push the branch to remote safely. It will handle tracking, safety checks, and updating any open PR description.
Record
Note for the summary: Push: N commits to origin/<branch> (or Push: already up to date (skipped)). If PR was updated: PR #N: description updated.
Step 5 — Create PR
Follow the pr-create skill to create the pull request. If the user requested a draft, pass that through.
If an open PR already exists, skip creation. Record: PR: #N already exists — <url>.
Record
Note for the summary: PR: Created #N — <url> (add (draft) if applicable).
Final Summary
After all steps complete, print a compact summary:
Shipped:
Branch: feat/add-user-avatar
Commit: "feat(avatar): add upload endpoint"
Squash: 5 commits into 2
Push: 1 commit to origin/feat/add-user-avatar
PR: Created #42 — https://github.com/org/repo/pull/42
Replace any skipped steps with their skip message (e.g., Commit: nothing to commit (skipped)).
After the summary, use the workflow count from the pre-run:
- If workflows exist (count > 0): invoke the
pr-watchskill on the PR immediately — do not ask. - If no workflows (count is 0): ask "Merge?" — if yes, follow the
pr-watchskill's Merge Procedure. It detects the repository's enabled merge methods; never assume squash, merge commit, or rebase.