Ship
Turns spec-conformant, reviewed work into shippable git state — branch, commit per task, draft PR — then hands off to code-review/security-review. Only runs when the user explicitly types /ship.From its SKILL.md
npx -y skills add bingelp/skills --skill shipAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.1 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Ship
Overview
The operational end of the pipeline. /review confirms the work matches the spec; /ship
turns it into reviewable git state — a feature branch, atomic commits mapped to the tasks,
and a draft PR whose narrative comes straight from spec.md and review.md — then points
you at the code-quality and security gates this pipeline deliberately leaves to dedicated
tooling. It does git mechanics and delegation; it does not itself review code.
When to Use
Explicit invocation only (/ship). Requires a passing /review: a specs/<slug>/review.md
with every acceptance criterion met. Don't ship a feature whose review found unmet criteria.
Where artifacts live
Every specs/<slug>/… path below resolves under the repo's shared git dir, not the working tree:
SPECS="$(git rev-parse --path-format=absolute --git-common-dir)/specs" # e.g. …/.git/specs
Storing artifacts there keeps them visible across every session and worktree — including the background-isolated steps Claude Code may switch into automatically — while making them impossible to accidentally commit. Outside a git repo, fall back to ./specs.
Process
- Preconditions. Find
specs/<slug>/. Requirereview.md; if it's missing, stop and tell the user to run/reviewfirst. Read its per-AC<n>verdicts: if any criterion is "not met" (or only "partially met" without explicit user sign-off), stop and surface which — don't ship a feature that failed its own conformance gate. Readspec.md(Problem/Goals) andreview.md(verdict, deviations, follow-ups) for the PR narrative. - Branch. Check the current branch. If it's the default branch (
main/master), create a feature branch first — never commit the feature straight onto the default branch. Derive the name from the slug (e.g.feat/<slug>) and confirm it with the user. If already on a feature branch, use it. - Commit. Map the checked tasks in
tasks.mdto commits:- If
/buildalready committed per task, leave those commits alone — skip to the PR. - If the work is sitting uncommitted, make one commit per task where the diff maps cleanly to that task's slice. Where it doesn't split cleanly, make honest, well-described commits and say so — don't fabricate per-task boundaries by chopping a single logical change across commits just to look tidy.
- End each commit message with the co-author trailer this environment requires.
- If
- Draft the PR body — don't create it yet. Compose it from the artifacts, not from memory:
- What & why — Problem/Goals from
spec.md. - Changes — high level, from
plan.md/tasks.md. - Spec conformance — the
/reviewverdict (allAC<n>met). - Follow-ups / out of scope — from
review.md's open follow-ups. End the body with the Claude Code attribution line this environment requires.
- What & why — Problem/Goals from
- Confirm before anything outward-facing. Show the user the branch, the commits, and the
drafted PR body. Pushing and opening a PR are public, outward-facing actions — get an
explicit go-ahead before each. Push and PR creation are separate capabilities; degrade by
whichever is available rather than treating them as one step:
- Remote +
gh— push (confirm), thengh pr createwith the drafted body (confirm). - Remote, no
gh— push the branch (confirm), then hand the user the PR body to open the PR manually. Don't skip the push just becauseghis absent. - No remote — stop after the local branch + commits and hand over the PR body as text.
- Remote +
- Hand off to the quality gates.
/reviewwas spec-conformance only. Once the PR is up (or the commits are ready), recommend the passes this pipeline deliberately delegates: "Run/code-reviewand/security-reviewon the diff before merging."/ship's job ends here — it does not run them itself, and it does not merge. - Worktree. If this session is still worktree-isolated when this step ends, ask the user whether to keep or remove the worktree before finishing, per docs/worktrees.md.
Red Flags
- Shipping a feature whose
/reviewleft an acceptance criterion unmet — stop and surface it. - Committing the feature directly onto
main/masterinstead of branching first. - Pushing or opening a PR without showing the user the commits and PR body and getting a go-ahead — these are public, outward-facing, hard-to-unsend actions.
- Fabricating artificial per-task commits by splitting one logical change across several — honest commits beat a fake-clean history.
- Running
/code-review//security-reviewyourself and calling them done, or merging the PR —/shipdelegates and stops; those are separate, deliberate gates. - Rewriting or squashing
/build's existing per-task commits without a reason to.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.