name: ship description: Commit and push all local current-branch work, open a ready PR, babysit it, merge when clean, then create a fresh branch user-invocable: true scope: dev metadata: internal: true
Ship
Ship the current branch end-to-end: commit and push all local work, open a
ready PR, run /babysit-pr, merge when the babysit merge gates are satisfied,
then run /new-branch after the merge lands.
Non-Negotiable Shipping Invariant
/ship ships the branch, not just the agent's own edits. Commit and push
all non-gitignored local changes that are present on the current branch,
including work created by the user or other concurrent agents. Do not leave
local changes behind because you did not author them. The only routine
exceptions are learnings.md and ignored/personal files.
Invoking /ship is explicit authorization to merge this PR once the merge gates
below pass, unless the user says not to merge. Do not ask again just to merge a
clean PR. Do not stop after creating the PR; the default /ship outcome is a
merged PR and a fresh post-merge branch.
If the branch updates templates or publishable packages, shipping does not stop at merge. Treat the work as shipped only after the affected templates are live in production and affected packages have successfully published/released. If a production template deploy or package publish fails, retrigger the failed job when the existing code already contains the fix; otherwise make the necessary code/config fix and ship that follow-up until production is live.
Steps
Stay on the current branch: never create, switch, rebase, reset, or stash before opening the PR. This repo uses shared/platform-managed branches; ship the branch you are already on.
Check local changes: run
git status --shortandgit diff --statto understand all modified/untracked files. Multiple agents may have added work; include all non-gitignored local files in shipment instead of stashing, skipping, or reverting them.Validate enough to avoid obvious breakage: run focused tests for the changed area. Run
pnpm run prepwhen it is practical. If prep is slow, flaky, or contaminated by concurrent in-flight edits, do not stall shipment: push and let GitHub Actions be the validation gate that/babysit-prmonitors.Stage and commit: stage all changed/untracked files except
learnings.mdor gitignored personal files. Write a concise, descriptive commit message based on the actual diff. Never addCo-Authored-Byor other agent attribution.Push: push the current branch. If the branch has no upstream, set it with
git push -u origin <branch>.Open or update a ready PR: use the current branch. PRs are ready for review by default, not drafts. Do not put
codex,[codex], or similar agent labels in the title/body.Babysit immediately: run
/babysit-pr <number>and follow that skill’s tick loop exactly. Treatbabysit-pras the source of truth for how to watch the PR; do not duplicate, shorten, or invent a lighter monitoring loop. Its Step 0 is authoritative: every tick starts by committing and pushing all local files and any unpushed commits, then checking mergeability, every unaddressed review comment by reply state, and CI. Keep going until the PR is either merged/closed or the user explicitly tells you to stop.Merge when allowed: because
/shipincludes merge authorization, merge withgh pr merge <number> --squash --adminonly after/babysit-pr’s merge requirements are simultaneously true for 10 consecutive minutes: clean working tree, no unpushed commits, GitHub Actions green, all review comments addressed/replied, and mergeable.Verify production is live when needed: if the branch changed
templates/*, docs/sites that publish templates, or any deployment config that affects templates, verify the affected template production deploys finish successfully and the live site is serving the new build. If a deploy fails because of a transient infra/build pickup issue, retrigger it; if it fails because of code, config, dependency, or generated-file problems, fix the issue and ship the follow-up. If the branch changed publishable packages such aspackages/core,packages/dispatch,packages/scheduling,packages/pinpoint, orpackages/skills, verify the release/publish workflow completes and the package version is available from the registry or package host. Retrigger transient publish failures; fix and ship code/config failures.Create the next branch after merge: after the PR is merged and
origin/maincontains the merge commit, run/new-branch. Follow that skill’s preflight, stash gate, branch naming, and stash-reporting rules. This is the only branch movement in the ship flow.Report: summarize the PR URL, merge result, new branch name, validation, production deploy/publish verification when applicable, and any feedback/CI fixes handled.
Important
- Multiple agents run concurrently. There will often be locally changed files you didn't generate. This is normal. Include everything and move forward. Don't revert other agents' work; fix real bugs if CI or review feedback flags them.
- Never commit
learnings.mdor files in.gitignore. - If feedback appears in inline comments or review bodies, every item needs a fix or a reply before merge.
- Treat
/babysit-pras the source of truth for CI/review monitoring cadence, comment handling, local-file push discipline, and merge gates. Updatebabysit-prfirst if the watcher behavior changes. - Treat production deploy/publish verification as part of
/shipwhenever templates or publishable packages changed. A green PR is not enough if the affected template build or package publish later fails. - Treat
/new-branchas mandatory after a successful merge so the workspace is ready for the next task on freshmain.