ship
Skill325 starsChanged 56 days agoMITView on GitHub
Run the full ship flow — verify quality, ensure test coverage, update artifacts, smoke test, push, create PR, and merge when CI is green. Trigger when user says "ship", "ship it", "fix and ship", asks to push and merge a branch, or runs Bashkit maintenance.
- Commits and pushes
194 other projects use a version of this.
Adopted by
Most recently taken up by
- wboayue/rust-ibapitheir own version, first seen Nov 9, 2026
- 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
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 · 0
None found.
Wrote their own version · 194
- 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
184 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 repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .deepsec/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- maintainSkill
- process-issuesSkill
- bashkitSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
24 rules. 0 are common, 16 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 180 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Run the full ship flow: verify quality, ensure test coverage, update artifacts, smoke test, then push, create PR, and merge when CI is …
- Very specific: line 22
If HEAD is detached and the current task has local changes ready to ship, create a branch first instead of stopping
- Distinctive: line 24
If the worktree is dirty only because of the current task, keep going: validate, commit, and ship those changes
- Distinctive: line 25
If unrelated uncommitted changes exist, stop and tell the user
- Very specific: line 36
Security tests: if change touches parser, interpreter, VFS, network, git, or user input — add tests per …
- Distinctive: line 37
Compatibility tests: if change affects Bash behavior parity — add differential tests comparing against real Bash
- Distinctive: line 39
If any test fails, fix the code or test until green
- Distinctive: line 47
AGENTS.md: if the change adds new knowledge, commands, or modifies development workflows — update the relevant section
- Distinctive: line 62
If simplification changes are made, loop back to Phase 2 to verify tests still pass.
- Very specific: line 75
If security issues are found, fix them, add regression tests, and update knowledge/security/threat-model.md if a new threat category is …
- Distinctive: line 90
If design issues are found, refactor, update tests (loop back to Phase 2), and update specs if the change alters documented behavior.
- Very specific: line 96
CLI changes: run just run with relevant commands, verify output
- Very specific: line 97
Builtin/interpreter changes: run example scripts via just run-script <file> to verify behavior
- Distinctive: line 98
Tool changes: if LLM tool interface changed, run a quick tool invocation test
- Very specific: line 99
Python bindings: if Python code changed, run ruff check crates/bashkit-python && ruff format --check crates/bashkit-python
- Distinctive: line 101
If smoke testing reveals issues, fix them and loop back to Phase 2 (tests must still pass).
- Distinctive: line 123
Check for existing PR:
- Distinctive: line 129
If no PR exists, create one:
- Very specific: line 132
Body: use .github/pull_request_template.md.
- Distinctive: line 136
If a PR already exists, update it if needed and report its URL.
- Distinctive: line 140
Check CI status with bounded waits.
- Distinctive: line 141
If all required CI is green and review comments are resolved, squash-merge and verify the PR actually merged.
- Distinctive: line 142
If CI fails, inspect logs, fix the root cause, push the fix, and wait for the new checks.
- Very specific: line 157
Never close a half-done issue: If the PR only covers a subset of the issue's tasks/checkboxes, use Part of #N instead of Closes #N or Fixes …
“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
Run the full ship flow: verify quality, ensure test coverage, update artifacts, smoke test, then push, create PR, and merge when CI is green.
This skill implements the complete "Shipping" definition and Pre-PR Checklist from AGENTS.md. When the user says "ship" or "fix and ship", execute ALL phases below — not just the push/merge steps.
Arguments
$ARGUMENTS- Optional: description of what is being shipped (used for PR title/body context and to scope the quality checks)
Instructions
Phase 1: Pre-flight
- Confirm we're NOT on
mainormaster - If
HEADis detached and the current task has local changes ready to ship, create a branch first instead of stopping - Confirm whether uncommitted changes belong to the task being shipped
- If the worktree is dirty only because of the current task, keep going: validate, commit, and ship those changes
- If unrelated uncommitted changes exist, stop and tell the user
Phase 2: Test Coverage
Review the changes on this branch (use git diff origin/main...HEAD and git log origin/main..HEAD) and ensure comprehensive test coverage:
- Identify all changed code paths — every new/modified function, module, builtin, tool
- Verify existing tests cover the changes — run
just testand check for failures (nevercargo test --all-featuresas a single invocation; see AGENTS.md) - Write missing tests for any uncovered code paths:
- Positive tests: happy path, valid inputs, expected state transitions
- Negative tests: invalid inputs, error conditions, boundary cases, permission failures, missing resources
- Security tests: if change touches parser, interpreter, VFS, network, git, or user input — add tests per
knowledge/security/security-testing.md - Compatibility tests: if change affects Bash behavior parity — add differential tests comparing against real Bash
- Run all tests to confirm green:
just test - If any test fails, fix the code or test until green
Phase 3: Artifact Updates
Review the changes and update project artifacts where applicable. Skip items that aren't affected.
- Knowledge (
knowledge/): if the change affects durable behavior, decisions, constraints, threats, tests, or operations, update the relevant OKF knowledge in the same change - Threat model (
knowledge/security/threat-model.md): if the change introduces new attack surfaces, external inputs, authentication/authorization changes, or data handling — add or update threat entries using theTM-<CATEGORY>-<NNN>format and add// THREAT[TM-XXX-NNN]code comments at mitigation points - AGENTS.md: if the change adds new knowledge, commands, or modifies development workflows — update the relevant section
- Limitations (
knowledge/operations/limitations.md): if a limitation was added or lifted, update the table; if builtins changed, runjust regen-builtinsand commit the JSON - Public documentation (
docs/): for every user-facing feature or behavior change, update the relevant public docs or create a new article when no suitable page exists; followknowledge/operations/documentation.mdfor site metadata and link requirements - Rustdoc guides (
crates/bashkit/docs/): if the change affects public APIs or tools, update the relevant guide markdown files
Phase 3b: Code Simplification
Review all changed code for opportunities to simplify:
- Identify duplication — look for repeated patterns that could share a helper or be consolidated
- Reduce complexity — simplify nested logic, long match arms, deeply indented blocks
- Remove dead code — unused functions, unreachable branches, commented-out code
- Check naming — ensure functions, variables, and types have clear, descriptive names
- Verify no over-engineering — remove unnecessary abstractions, feature flags, or indirection that don't serve the current change
If simplification changes are made, loop back to Phase 2 to verify tests still pass.
Phase 3c: Security Review
Analyze all changed code for security vulnerabilities:
- Input validation — check that user-supplied data (script input, file paths, environment variables, command arguments) is validated before use
- Injection risks — look for command injection, path traversal, environment variable injection, or shell metacharacter issues
- Sandbox escapes — if changes touch VFS, builtins, or process execution, verify they cannot escape the sandbox (see
knowledge/security/threat-model.md) - Resource exhaustion — check for unbounded loops, unbounded allocations, or missing limits on user-controlled sizes
- Error handling — ensure errors don't leak internal state, file paths, or sensitive information
- Unsafe code — review any
unsafeblocks for soundness; prefer safe alternatives
If security issues are found, fix them, add regression tests, and update knowledge/security/threat-model.md if a new threat category is identified.
Phase 3d: Design Quality Review
Review all changed code for shortcuts, lazy abstractions, and premature compromises. This is a greenfield project — correctness and clean design matter more than compatibility or speed of delivery. Take the time to find better abstractions.
- No shortcut abstractions — reject copy-paste patterns disguised as "good enough". If two things look similar, determine whether they are actually the same concept. If yes, unify properly. If no, keep them separate with clear names — don't force a bad shared interface.
- No lazy wrappers — every abstraction must earn its place. A wrapper that just forwards calls adds indirection without value. An enum variant that exists "just in case" is dead weight. If a layer doesn't add meaning, remove it.
- Right abstraction level — check that traits, types, and module boundaries model the actual domain, not implementation accidents. A
StringOrListenum is a parser leak; aPatterntype is a domain concept. Prefer the latter. - No stringly-typed interfaces — look for magic strings, string matching on variant names, ad-hoc parsing of structured data. Replace with enums, newtypes, or proper typed APIs.
- No premature generics — a function generic over three trait bounds used in one call site is harder to read than a concrete function. Generalize only when there are (or will immediately be) multiple real callers.
- No compatibility shims — this is greenfield. If an interface is wrong, change it. Don't add adapters, conversion layers, or deprecated alternatives. Fix call sites instead.
- Error types are first-class — check that error enums are specific and actionable, not catch-all
Other(String)buckets. Each variant should guide the caller's recovery logic. - Module boundaries enforce invariants — if a
pubfield or function lets outside code break a module's assumptions, tighten visibility. Constructors and accessors exist to protect invariants, not to be "nice".
If design issues are found, refactor, update tests (loop back to Phase 2), and update specs if the change alters documented behavior.
Phase 4: Smoke Testing
Smoke test impacted functionality to verify it works end-to-end:
- CLI changes: run
just runwith relevant commands, verify output - Builtin/interpreter changes: run example scripts via
just run-script <file>to verify behavior - Tool changes: if LLM tool interface changed, run a quick tool invocation test
- Python bindings: if Python code changed, run
ruff check crates/bashkit-python && ruff format --check crates/bashkit-python
If smoke testing reveals issues, fix them and loop back to Phase 2 (tests must still pass).
Phase 5: Quality Gates
git fetch origin main && git rebase origin/main- Resolve rebase conflicts and rerun affected checks. Ask only when an unresolved conflict requires a user decision.
just pre-pr- Diagnose failing checks, fix their root causes, and rerun. Do not bypass hooks or weaken tests/audit policy.
Phase 6: Push and PR
git push -u origin <current-branch>Check for existing PR:
gh pr view --json url 2>/dev/nullIf no PR exists, create one:
- Title: conventional commit style from the branch commits
- Body: use
.github/pull_request_template.md; center it on functional change and impact, not a code-location walkthrough - Evidence: attach a Before / After with proof — CLI output, differential-test results against real Bash, or a terminal recording (e.g. VHS/asciinema) for a CLI demo. Say so when there is no observable behavior change
- Use
gh pr create
If a PR already exists, update it if needed and report its URL.
Phase 7: Wait for CI and Merge
- Check CI status with bounded waits. Continue until the checks finish; elapsed time alone is not a blocker.
- If all required CI is green and review comments are resolved, squash-merge and verify the PR actually merged. Enabling auto-merge alone is not completion.
- If CI fails, inspect logs, fix the root cause, push the fix, and wait for the new checks.
- NEVER merge when CI is red
Phase 8: Post-merge
After successful merge:
- Report the merged PR URL
- Done
Rules
- Phases 2-4 (tests, artifacts, simplification, security review, smoke testing) are the quality core — do NOT skip them.
- The
$ARGUMENTScontext helps scope which tests, specs, and smoke tests are relevant. - For "fix and ship" requests: implement the fix first, then run
/shipto validate and merge. - Never close a half-done issue. If the PR only covers a subset of the issue's tasks/checkboxes, use
Part of #Ninstead ofCloses #NorFixes #N. Only use closing keywords when every task in the issue is complete. Premature closure hides remaining work.
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.

