Ship
Land completed Fallow work after review, run pre-push parity, monitor merged-commit CI...
Install
npx skills add fallow-rs/fallow --skill ship -g -a claude-code -y- Repository
- fallow-rs/fallow5.3k
- Category
- Git and review
- Updated
- 3d ago
- License
- MIT
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
Land completed Fallow work after review, run pre-push parity, monitor merged-commit CI, and leave repositories clean. Use when asked to ship, merge, or move approved work to main.
Ship
-
Confirm the branch and diff exactly match the reviewed scope. Then run
node scripts/ship-rebase.mjs --pr <number> --if-needed --push, also for one pull request. Do not rebase by hand. The required checks ofmaindo not require an up-to-date branch, so a rebase is only necessary when a squash merge is not safe as it is. With--if-needed, the script rebases only when the merge intomainconflicts, when the branch changesCHANGELOG.md, when the branch andmainboth change a generated file, or when the merge loses a version bump of the branch. Otherwise it prints the merge command for the current head, and no new CI run is necessary. The checks of the pull request then ran against an oldermain. A change onmainthat breaks the branch without a text conflict shows only in steps 6 and 7. After a rebase, the script compares the result with a merge and checks each version constant. A failed manualrebase --continueleaves commits on a detached HEAD. For a stacked branch after a squash merge of its parent, add--upstream(see "Serial merge of many pull requests"). -
Re-run the required checks from
docs/development/quality-gates.md. -
Verify that public contracts and generated files are pushed. Merge each companion change into the default branch of its repository (for example fallow-docs
main). A pushed feature branch is not enough: the release then must merge it. When the merged change touchesnpm/fallow/skills, runnode scripts/sync-skills-companion.mjs --pin <merge commit>right after the merge. Publish its commit with the commands that it prints.ship-wait-checks.mjsprints this step for such a change. -
Create signed conventional commits only.
-
Merge with pinned auto-merge. Do not wait for the checks in the foreground:
gh pr merge <number> --auto --squash --match-head-commit <reviewed sha> --subject "<type>: <summary> (#<number>)"

