ship
Skill400 starsChanged 8 days agoMITView on GitHub
Take a finished change from local gates to a merged PR — pick the gates the diff needs, self-review, open the PR, get CI to run, choose the merge strategy, handle stacks and fork PRs, clean up. Asks before merging.
- Commits and pushes
194 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- haiggoh/run-to-completiontheir own version, first seen Nov 8, 2026
- sanmidable/skillstheir own version, first seen Nov 8, 2026
- Yesterday-AI/ytstacktheir own version, first seen Nov 8, 2026
- gaoyu06/harnesstheir own version, first seen Nov 8, 2026
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- caidanw/skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use ios-sync, open-gstack-browser and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Saqlain-811Skillios-sync
Regenerate the iOS debug bridge against the latest upstream gstack templates. (gstack)
Also in 6 projects that use this
seek888Skillopen-gstack-browser
Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".
Also in 10 projects that use this
ayudaySkillsetup-deploy
Configure deployment settings for /land-and-deploy. Detects your deploy platform (Fly.io, Render, Vercel, Netlify, Heroku, GitHub Actions, custom), production URL, health check endpoints, and deploy status commands. Writes the configuration to CLAUDE.md so all future deploys are automatic. Use when: "setup deploy", "configure deployment", "set up land-and-deploy", "how do I deploy with gstack", "add deploy config".
Also in 19 projects that use this
ShreyRaviSkilllanding-report
Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing report", "what's in the queue", "show me open PRs", or "which version do I claim next". (gstack)
Also in 9 projects that use this
zebbernSkilldebug-fix
Find and fix a bug or issue — from any source (GitHub issue, error message, user report, or observed behavior)
Also in 4 projects that use this
ramybarsoumSkilldocument-release
Post-ship documentation update. Reads all project docs, cross-references the diff, updates README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md to match what shipped, polishes CHANGELOG voice, cleans up TODOS, and optionally bumps VERSION. Use when asked to "update the docs", "sync documentation", or "post-ship docs". Proactively suggest after a PR is merged or code is shipped.
Also in 23 projects that use this
Other versions194 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- thefrederiksen/cc-director★ 11014% same
- thefrederiksen/devthrottle★ 11014% same
Wrote their own version · 192
- garrytan/gstack★ 141ksame name
- rtk-ai/rtk★ 86ksame name
- simstudioai/sim★ 30ksame name
- millionco/react-doctor★ 15ksame name
- BuilderIO/agent-native★ 7.6ksame name
- nightly-labs/openbot★ 6.3ksame name
- fallow-rs/fallow★ 5.3ksame name
- puncsky/system-design-and-architecture★ 3.6ksame name
- plugin87/ux-ui-agent-skills★ 3.1ksame name
- ShenSeanChen/waku-agent★ 2ksame name
182 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- add-tws-featureSkill
- coverageSkill
- live-probeSkill
- releaseSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 3 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 180 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 19
Never commit to main. Substantive changes go branch → push → PR.
- Distinctive: line 27
Always run the full list in pre-PR checks, on the pinned toolchain.
- Very specific: line 48
Read the full diff as a reviewer would (/code-review or the review-code skill for a second read).
- Very specific: line 51
Duplication: no helper re-implementing one that exists (ToField, some_str, shared test helpers).
- Very specific: line 53
Tests: every new pub / pub(crate) fn has one that exercises production code.
- Very specific: line 55
Leftovers: no PR-narrative comments ("added in this PR"), no plans/ paths, no file.rs:NNN citations, no temp #[ignore] probe tests, no …
- Very specific: line 78
Retargeting does not start CI: After gh pr edit <N> --base main, push something: git merge origin/main && git push on the branch.
- Very specific: line 81
Fork PRs: wait at action_required until approved: gh api -X POST repos/wboayue/rust-ibapi/actions/runs/<id>/approve.
- Distinctive: line 96
Ask first unless told to merge.
- Very specific: line 133
Follow-ups deferred during review go in GitHub issues, cited as #N in the PR (plans and issues).
“Common” is measured: kept by at least 6 in 10 of the 180 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ship a change
From "the code is done" to merged on main. Releases are a separate flow: /release.
Outward-facing steps are asked first: push, gh pr create, and merge each need the
user's go-ahead unless they already gave it for this change ("open a PR", "merge it").
Approval for one PR doesn't carry to the next.
$S is your scratchpad directory.
1. Branch
- Never commit to
main. Substantive changes go branch → push → PR; a direct push can't be undone (force-push tomainis blocked even for admins). If it happens anyway:git revertonmain, re-land via PR. - Work in a worktree on its own branch. Other agents may share the main checkout and switch its branch under you.
2. Gates
Always run the full list in pre-PR checks, on the pinned toolchain. Then add what the diff touches:
git diff --name-only origin/main...HEAD| Diff touches | Also |
src/proto/, decoders, encoders, subscriptions/, any public signature | integration crate builds (no CI job builds them) |
AGENTS.md, docs/rules/, docs/wire-facts/, .claude/skills/ | just rules-check |
A new pub / pub(crate) fn | test + coverage floor; pub fn also needs a doc example |
| Behavior a user would notice | changelog entry under ## [Unreleased], same PR |
| Removed or renamed public item | user docs sync; grep -rn <old name> README.md docs/ examples/ |
| Deleted or renamed any symbol | grep -rn <symbol> docs/rules/ docs/wire-facts/ .claude/skills/ |
| A breaking change | stop and ask: it queues for the next major |
Docs-only diffs (*.md, skills) skip the cargo gates but not rules-check.
3. Self-review
Read the full diff as a reviewer would (/code-review or the review-code skill for a
second read). At minimum:
- Duplication: no helper re-implementing one that exists (
ToField,some_str, shared test helpers); no logic written twice across sync/async. - Tests: every new
pub/pub(crate)fn has one that exercises production code. - Consistency: the touched module matches its siblings' layout and idiom.
- Leftovers: no PR-narrative comments ("added in this PR"), no
plans/paths, nofile.rs:NNNcitations, no temp#[ignore]probe tests, no unused imports.
Fix what you find before opening the PR, not in review rounds.
4. Commit and PR
- Messages: concise, technical, say what changed and why. No AI attribution lines or footers.
- Anything longer than one line, or containing quotes/backticks, goes through a file:
git commit -F $S/msg.txt,gh pr create --body-file $S/pr.md. Inline heredocs inside chained commands have failed and taken the commit down with them. - PR body: why first, then what. Cite issues as
#N;Closes #Nfor the one it resolves. Say what was verified and how (which gates, a live probe), so claims are checkable. - Title scoped like the log:
<area>: <change>.
5. CI
gh pr checks <N> --watch --interval 30- CI runs only on PRs whose base is
main(orv2-stable). A stacked child gets no CI until retargeted; rely on local gates meanwhile. - Retargeting does not start CI. After
gh pr edit <N> --base main, push something:git merge origin/main && git pushon the branch. - A red leg: reproduce locally with that leg's exact flags before pushing a fix.
- Fork PRs wait at
action_requireduntil approved:gh api -X POST repos/wboayue/rust-ibapi/actions/runs/<id>/approve. Approve the run for the current head SHA (gh api "repos/wboayue/rust-ibapi/actions/runs?head_sha=<sha>"). Approving an older run tests a stale commit, so cancel it. - A conflicting PR gets no CI at all. Pushes to a PR with
mergeable: CONFLICTINGstart no run. Resolve the conflict first (§6 Fork PRs). - Confirm green against the head you'll merge. A
--watchstarted right after a push can report the previous head's checks:gh api repos/wboayue/rust-ibapi/commits/<sha>/check-runs --jq '.check_runs[]|"\(.name) \(.conclusion)"'. Merge with--match-head-commit <sha>so a later push can't slip in. - A failure unrelated to the diff, like
No space left on deviceon the runner, is infrastructure:gh run rerun <id> --failed.
6. Merge
Ask first unless told to merge. State the strategy and why. Take the first row that matches:
| Branch holds | Command |
| A child PR stacked on it | gh pr merge <N> --merge (see Stacks) |
| One commit | gh pr merge <N> --squash |
| Several commits forming one change, each builds | gh pr merge <N> --merge |
| Several independent small commits, nothing stacked on top | gh pr merge <N> --rebase |
| Fixup / review-response / merge-from-main commits, or a fork PR | gh pr merge <N> --squash |
| …and an abandoned approach among the commits | --squash --body-file $S/body.md describing only the final design (the default body concatenates every commit) |
Stacks, in this order:
gh pr edit <child> --base mainwhile the child is open. Merging the parent first deletes its branch, which can close the child for good: it then can't be reopened or retargeted (#723 was lost this way and reopened as #724).- Merge the parent with
--merge(a squashed parent leaves the child with duplicate commits). - Push to the child to start its CI (§5), wait for green, merge it.
Fork PRs with conflicts: merge main into the contributor's branch, never rebase. A
rebase needs a force-push over their history. Check gh pr view <N> --json
isCrossRepository,maintainerCanModify first.
Verify with gh pr view <N> --json state,mergedAt. When gh pr merge errors on local
cleanup ('main' is already used by worktree), the server-side merge has usually succeeded;
check before re-running.
7. Clean up
The repo deletes merged branches on GitHub (delete_branch_on_merge), so don't pass
--delete-branch.
git worktree remove <path>
git branch -D <branch>
git fetch -pFollow-ups deferred during review go in GitHub issues, cited as #N in the PR
(plans and issues).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

