Ship
A personal Claude Code skills library built around one deliberate, gated workflow: /spec → /plan → /build → /test → /review → /ship
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.
What its author says it does
Copied from the file, not written here
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.
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.