Skip to content
Agent Orchestration
Skill

/shipping

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

From plugin
superlite
24912 skills8 agents19 commands6 hooks

Claude Code

$ npx -y skills add iha2/superlite --skill shipping --agent claude-code

SKILL.md

shipping.SKILL.md
name: shipping
description: Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Shipping

Never push, merge or publish without the human. The human's choice is the only authorization.

1. Verify

Read `**Full suite:**` in the plan header. `yes`: run `bash <skill-dir>/../swarm/scripts/superlite-cli run_tests --full --reuse`. `no` or missing: run `bash <skill-dir>/../swarm/scripts/superlite-cli run_tests --affected --base <start sha>` (the sha is the `- start <sha>` line in `.superlite/progress.md`). After `finish`, the run's files live in the folder its `run: archived to <dir>` line names: read the start sha from `<dir>/progress.md`, and pass `--summary <dir>/tests/summary.json` with `--full --reuse` so it can see the last green run. It prints one line: `passed failed skipped seconds`. `--reuse` skips a rerun when nothing has changed since a green run (see `superlite:proof`). Red blocks merge and PR: report the failures and stop. Do not offer to merge failing work.

2. Detect the base branch yourself

No question. Take the first that works:

  • `git symbolic-ref --short refs/remotes/origin/HEAD` (strip `origin/`)
  • `main`, then `master`, if it exists locally (`git rev-parse --verify`)
  • otherwise the local branch with the closest `git merge-base` to HEAD

Also note the current branch, `git status --short` (a superlite build is uncommitted by design, see `finish`; step 4 asks about it), and whether a remote exists.

3. Summarize

Prepare: branch, base, commits ahead (`git log --oneline <base>..HEAD`), `git diff --stat <base>..HEAD`, the test counts line, and the rulings list recorded during the work (including review findings left unfixed). When the work was a superlite build, also the build report summary from `finish` (or `superlite-cli report --plan <plan>`); print it before the options and name `<plan>.report.md` (next to the plan) as the full report, to show on request.

4. Decide

**Attended:** ask ONE question with AskUserQuestion, three options, with the summary in the question text:

1. Merge locally into the base branch 2. Push and open a pull request 3. Keep the branch as is

Merge and PR options apply to commits already on the session branch. A superlite build leaves its work uncommitted in the folder, so first ask once at session end: "Commit to <session branch>" / "Leave uncommitted". On "Commit": make one commit of the finished work on `superlite/sessions/<slug>` only, with the message = the session topic plus the first line of the report summary. Never commit on main or on another branch: if the current branch is not the session branch, skip the commit and say so. Without a session branch there is no commit offer. On "Leave uncommitted" only option 3 applies.

No further menus or typed confirmations. Act on the answer.

**Unattended** (the user is away or said to decide yourself): keep the branch. Do not push, merge or open a PR. Print the summary and the rulings list as the closing message. Do not commit: uncommitted work stays uncommitted.

5. Execute the choice

  • **Merge locally:** from the main checkout, inspect `bash <skill-dir>/../swarm/scripts/superlite-cli session status`, `git status --short`, and `git worktree list --porcelain` before choosing the merge location. Do not switch or merge in a checkout hosting another session, even if its run is finished, or one with uncommitted work. If the base branch is already checked out in such a checkout, stop and ask the user to finish or park that work before continuing; never force a second checkout. Otherwise use the base branch's existing clean, unoccupied checkout, or create a temporary checkout when the main checkout cannot be used (`.claude/worktrees/merge-<base>`; enter it with `EnterWorktree path=` under Claude Code, else `cd`; the plain `git worktree add` form is under "Other harnesses (fallback)" below). If the main checkout is safe to use and the base is not checked out elsewhere, check out the base there. Record the base branch's HEAD SHA before merging, then merge the feature branch in the chosen checkout. If the merge was not a fast-forward or had conflicts, read `**Full suite:**` in the plan header: for `yes`, run `bash <skill-dir>/../swarm/scripts/superlite-cli run_tests --full --reuse`; otherwise run `bash <skill-dir>/../swarm/scripts/superlite-cli run_tests --affected --base <pre-merge base sha>` there again. Remove any temporary merge checkout created by this step. Close the session (step 6), then remove the worktree (step 7), then delete the feature branch with `git branch -d`. Finish by running `bash <skill-dir>/../swarm/scripts/superlite-cli session status`: each session now behind main shows `main:+N`, and is offered the update in its own chat. Nothing is synced automatically.
  • **Push and PR:** `git push -u origin <branch>`, then `gh pr create` with a title and a body holding the summary and test evidence. Report the PR URL and that `/superlite:merged` cleans up once it merges (`superlite:merged`). Keep the branch. Close the session (step 6), then remove the worktree (step 7).
  • **Keep:** report the branch name. If the worktree is clean, close the session (step 6), then remove it (step 7). If it has uncommitted work, leave it and report the path.

6. Close the session

Once the work is merged, has a PR, or is kept, and the agent is back in the main checkout, run `bash <skill-dir>/../swarm/scripts/superlite-cli session close --slug <slug> --keep-branch`. It marks the session finished, puts the main checkout back on the base branch when `<slug>` was its active session, and removes a parallel worktree that `ensure` cut (the branch stays). Run it before the worktree cleanup below. Skip it when the run has no session.

If it prints an `ASK` line (exit 4, nothing changed), ask exactly what its `ask:` line says, then do exactly what the chosen answer's `on ...:` line says (on a refusal, stop; nothing changed).

7. Worktree clea

Read more
@iha2
Ships withsuperlite

A fast software factory workflow for Claude Code: one approval gate, parallel waves, routed models

24912 skills8 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
249
Star history of iha2/superlite on GitHub, a chart by star-history.com

Other skills on superlite.

diagnosis

diagnosis

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes

@iha2@iha2Install Skill
drafting

drafting

Use when you have an approved design or requirements for a multi-step task and need an implementation plan, before touching code.

@iha2@iha2Install Skill
feature-prototype

feature-prototype

Use in feature mode after the feature plan is approved, to cut the smallest runnable container of an existing app for the…

@iha2@iha2Install Skill
inventing

inventing

Use when the user asks to build a feature or component, add functionality, or change behavior, before any implementation code is…

@iha2@iha2Install Skill
mvp-prototype

mvp-prototype

Use in MVP mode (/superlite:mvp), after the .mvp.md feature plan is written, to make the one-file clickable prototype, check it,…

@iha2@iha2Install Skill
proof

proof

Use when about to claim work is complete, fixed, or passing, before committing or creating PRs

@iha2@iha2Install Skill

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis2w393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca2w111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip2w109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about shipping.

Which coding agents can use shipping?
shipping installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.