Prompt file imported from I7T5/Edmund (
.claude/commands/ship.md). Fill in{{arguments}}before use. Copyright stays with the author.
Ship the current uncommitted changes in this repo as a self-merging PR. The change is described as: {{arguments}}
Run all git/gh commands from the repository root. Follow these steps exactly, stopping and reporting if any step fails:
-
Survey.
git status --shortandgit diff --stat. Confirm there are changes to ship. If{{arguments}}is empty, infer a concise description from the diff. -
Test first (project rule). Run
swift test. If anything fails, stop and show the failure — do not commit. -
Branch. If currently on
main, create a topic branch namedfix/…,feature/…,ci/…, orchore/…as fits the change (kebab-case, derived from the description). If already on a non-main branch, reuse it. -
Commit. Stage only the files that belong to this change (surgical — no unrelated files). Write a commit message: a concise imperative subject line and a body explaining the why. No attribution trailer. Keep it one logical change per commit.
-
Push.
git push -u origin <branch>. -
Open the PR.
gh pr createwith a title matching the subject and a body that explains what and why. No generated-by / attribution footer. -
Auto-merge.
gh pr merge <#> --auto --merge --delete-branch. Branch protection requires thetestcheck, so this queues the PR to merge itself the moment CI passes — no manual merge needed. -
Report. Print the PR URL and state that it will merge automatically when CI is green. Do not sit and poll CI unless asked.
Never force-push, never touch main directly, and never bypass the failing-test
stop in step 2.
