Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Land the winning experiment from an evo run as a clean, mergeable change -- open a PR when the repo has a remote, otherwise merge into the working branch.
$ npx skills add evo-hq/evo --skill ship -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install evo-hq/evo ship --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/evo-hq/evo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/evo/skills/ship .claude/skills/ship && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ship" agent skill from https://github.com/evo-hq/evo/tree/main/plugins/evo/skills/ship into .claude/skills/ship/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ship", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/evo-hq/evo/tree/main/plugins/evo/skills/shipType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add evo-hq/evo --skill ship -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install evo-hq/evo ship --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/evo-hq/evo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/evo/skills/ship .agents/skills/ship && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ship" agent skill from https://github.com/evo-hq/evo/tree/main/plugins/evo/skills/ship into .agents/skills/ship/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ship", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add evo-hq/evo --skill ship -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install evo-hq/evo ship --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/evo-hq/evo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/evo/skills/ship .cursor/skills/ship && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ship" agent skill from https://github.com/evo-hq/evo/tree/main/plugins/evo/skills/ship into .cursor/skills/ship/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ship", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/evo-hq/evo.git --path plugins/evo/skills/ship--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add evo-hq/evo --skill ship -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install evo-hq/evo ship --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/evo-hq/evo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/evo/skills/ship .gemini/skills/ship && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ship" agent skill from https://github.com/evo-hq/evo/tree/main/plugins/evo/skills/ship into .gemini/skills/ship/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ship", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install evo-hq/evo shipInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add evo-hq/evo --skill ship -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/evo-hq/evo.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/evo/skills/ship .github/skills/ship && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ship" agent skill from https://github.com/evo-hq/evo/tree/main/plugins/evo/skills/ship into .github/skills/ship/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ship", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add evo-hq/evo --skill ship -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install evo-hq/evo ship --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/evo-hq/evo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/evo/skills/ship .opencode/skills/ship && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ship" agent skill from https://github.com/evo-hq/evo/tree/main/plugins/evo/skills/ship into .opencode/skills/ship/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ship", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
shipLand the winning experiment from an evo run as a clean, mergeable change -- open a PR when the repo has a remote, otherwise merge into the working branch.
Ship is an agent skill from evo-hq/evo. Land the winning experiment from an evo run as a clean, mergeable change -- open a PR when the repo has a remote, otherwise merge into the working branch. Distills the best-scoring experiment down to the minimal diff that reproduces its behaviour, shaped for the qualities a maintainer merges on (scope discipline, test integrity, style adherence), then attaches an advisory mergeability report. Use when the user invokes /evo:ship, asks to land/merge/ship the best result, or wants to turn a finished optimization…
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Pull requests. The repository describes itself as: turns your codebase into an autoresearch loop — discovers what to measure, instruments the benchmark, then runs tree search with parallel subagents. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c70c04b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ship loads about 1.7k tokens when it runs. Until then it costs about 135 tokens; SKILL.md has 853 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from evo-hq/evo at commit c70c04b, republished under its Apache-2.0 licence (© evo-hq). 853 words, ~1,678 tokens.
.claude/skills/ship/SKILL.md (or your agent's skills folder).Turn a finished evo run into a change a maintainer would merge.
The optimize loop leaves a tree of committed experiments. The winning worktree diff is not mergeable as-is: it carries debug prints, search-process churn, over-broad edits, and sometimes a test that was relaxed to clear a gate. Shipping is the step that re-derives the minimal clean change reproducing the winning behaviour, lands it the way the repo expects (PR or merge), and reports how mergeable it is.
Correctness is the floor, not the goal. The score says the behaviour works; this skill decides whether the diff is fit to merge.
/evo:ship # ship the auto-selected winner
/evo:ship exp_0042 # ship a specific experiment insteadPick the experiment to ship, then confirm it with the user before touching their tree.
evo status # current best valid score + counts
evo report # top valid experiments table + score chartevo frontier is for choosing where to branch next; it can
exclude an exhausted branch whose score is still the right thing to ship. An
explicit exp_id argument overrides auto-selection.committed, or pruned with
prune_kind=exhausted, with a commit and score, no gate_result === false,
and no invalid-pruned ancestor. Never select discarded, failed, active,
evaluated, legacy-pruned nodes with no prune_kind, prune_kind=invalid, or
descendants of invalid-pruned nodes. If no valid candidate exists, stop and
report why nothing is safe to ship.evo diff <root_id> <winner_id> # target-scoped cumulative diff, baseline -> winnergit diff <baseline_commit> <winner_commit>); each node carries .commit.Work on a fresh branch off the user's current HEAD, not in the experiment worktree. Re-derive the change so it stands on its own:
Then confirm the behaviour survived the distillation:
evo run <winner_id> --check # or the project's benchmark / test commandIf the distilled change no longer reproduces the winning score, do not paper over it -- report the gap (which part of the experiment diff was load-bearing) and let the user decide. Best-effort means honest about what could not be cleaned up, not silently shipping the raw worktree.
Detect how the repo expects changes to arrive:
git remote -vgh pr create with the mergeability report (Stage 4) as the
body. Do not push or open the PR without the user's go.The landed commit message carries provenance: the winning experiment id, the score delta, and the one-line hypothesis. State what changed and why it is safe; do not narrate the search process.
Always produce the report. It never blocks the merge -- it tells the user, and a future reviewer, how mergeable the change is across the axes a maintainer judges on:
Lead with a plain-language summary: what changed and why it is safe to merge. On a remote repo this is the PR body. With no remote, print it and save it alongside the run so the user can paste it into a review later.
Everything above is method you can adapt to the repo. These are not:
© evo-hq, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/evo/skills/ship of evo-hq/evo.
Open the folder on GitHubat commit c70c04b
Ship next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ship this skillevo-hq/evo | 1.5k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Check PRonyx-dot-app/onyx | 32k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Understand Diff AnalysisEgonex-AI/Understand-Anything | 86k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| PR Design DocOpenHands/OpenHands | 90k | — | ~2.4k | Automated safety check: Pass | MIT |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
onyx-dot-app/onyx
Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
OpenHands/OpenHands
For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
evo-hq/evo
Initialize evo for the current repository by exploring the codebase, proposing unexplored optimization dimensions, constructing the benchmark inside a baseline worktree, and running the first…
evo-hq/evo
Read-only evo run reporting. An agent skill from evo-hq/evo.
evo-hq/evo
This skill should be used when picking or diagnosing a training move (SFT, LoRA, DPO/KTO/ORPO, RFT, GRPO/PPO/RLOO, RLHF), or when the user mentions fine-tuning, post-training, training recipe…
evo-hq/evo
Non-user-invocable provider/setup reference for evo backend switching, prerequisite checks, and auth/install guidance.
evo-hq/evo
Protocol that evo optimization subagents follow when dispatched from /optimize.
evo-hq/evo
Drive structured autoresearch iteration after evo:discover and the baseline commit.
Categories
Land the winning experiment from an evo run as a clean, mergeable change -- open a PR when the repo has a remote, otherwise merge into the working branch. Ship is an agent skill from evo-hq/evo. Land the winning experiment from an evo run as a clean, mergeable change -- open a PR when the repo has a remote, otherwise merge into the working branch.
Ship fits situations like: the user invokes /evo:ship; asks to land/merge/ship the best result; wants to turn a finished optimization into a pull request.
Run `npx skills add evo-hq/evo --skill ship -a claude-code`. Or copy the skill folder (plugins/evo/skills/ship in evo-hq/evo) into .claude/skills/ship in your project. Claude Code loads it when a task matches its description.
Run `npx skills add evo-hq/evo --skill ship -a codex`. Or copy the skill folder (plugins/evo/skills/ship in evo-hq/evo) into .agents/skills/ship in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add evo-hq/evo --skill ship -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ship, .gemini/skills/ship, .github/skills/ship and .opencode/skills/ship in your project.
Going by SKILL.md and its folder, Ship needs the command-line tools its instructions call (git and gh).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ship is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ship: Finishing a Development Branch (obra/superpowers, 296k stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars) and Understand Diff Analysis (Egonex-AI/Understand-Anything, 86k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
evo-hq (a GitHub organization) maintains it in evo-hq/evo, which has 1,466 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 5, 2026.
Source: evo-hq/evo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.