Take a feature request from idea to reviewed, ready-to-commit code in one run — spec → plan → coding → review (+ debug on defects) — without asking at each stage. Use when given a request like "/ss-ship implement login", "ship this feature", "do the whole flow for X", "làm hết flow cho chức năng X". Orchestrator over the stage skills; never runs ss-explore-source.
Scanned 8/31/2026
Install to Claude Code
npx -y skills add bonnguyenitc/specship --skill ss-ship --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ss Ship?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bonnguyenitc-ss-ship)More formats (shields.io, HTML) on the badges page.
---
name: ss-ship
description: Take a feature request from idea to reviewed, ready-to-commit code in one run — spec → plan → coding → review (+ debug on defects) — without asking at each stage. Use when given a request like "/ss-ship implement login", "ship this feature", "do the whole flow for X", "làm hết flow cho chức năng X". Orchestrator over the stage skills; never runs ss-explore-source.
---
# Ship
Goal: given a feature request (e.g. `/ss-ship thực hiện chức năng login`), drive the task through the **whole pipeline** in a single run — **spec → plan → coding → review**, attaching `debug` whenever a defect appears — stopping only when genuinely blocked.
`ss-ship` is an **orchestrator, not a stage**: it doesn't replace the stage skills, it invokes them in order and carries the user's consent across the handoffs where each stage would normally stop and ask. Invoking `ss-ship` *is* that consent, granted once for the whole task.
## When to use
- The user hands you a feature request, ticket, or PRD — anything the `ss-spec` skill could consume — and wants it taken all the way to reviewed code.
- Also works mid-pipeline: if the task already has artifacts (a confirmed `spec.md`, an approved `plan.md`), start from the first incomplete stage instead of redoing finished ones.
- Not for codebase exploration: this skill never runs `ss-explore-source`. If `docs/onboarding/*` is missing and the codebase is unfamiliar, tell the user to run it first rather than shipping blind.
## Shared task state
Part of the task pipeline — see `../WORKFLOW.md` for the full contract. Every rule there (artifacts, IDs, preconditions, traces, lessons) applies unchanged; the only thing `ss-ship` overrides is the per-handoff "ask the user" step.
- **Hydrate:** if the request matches an existing task (explicit `TASK-<ID>`, or one in conversation), resume it from its current stage; otherwise the `spec` stage will open a new task. If that named task is shelved (`status: paused`, or found under `tasks/archive/`), un-shelve it first exactly as `ss-resume-task` does (restore the folder and/or flip `paused`→`active`, with the dated log trace) before advancing. Read `tasks/LESSONS.md` if present.
- **Checkpoint:** each stage skill does its own checkpointing. Additionally, log every auto-advance as a dated Pipeline Log line in `task.md`, e.g. `- <YYYY-MM-DD HH:MM +TZ> ship: auto-advanced spec → plan` — carrying your agent label (format: `../WORKFLOW.md` → Agent handoff).
## Method — run the stages
Invoke each stage skill via the Skill tool, in order, starting from the first incomplete stage. Follow its playbook fully — artifacts, templates, gates, traces — **except its "ask the user" points, which `ss-ship` overrides as follows:**
1. **`ss-spec`** — formalize the request into `tasks/TASK-<ID>/spec.md` (opens the task). Resolve what the request and the codebase answer; anything underspecified but non-blocking becomes an entry in **Assumptions** (or a non-blocker `Q#` with its proposed default taken). Set `status: confirmed` and continue. An open **blocker** `Q#` is a hard stop — blocker questions are the one thing autopilot never answers itself. **Verifiability gate (replaces the skipped human confirmation):** before auto-advancing, every `AC#` must carry a concrete `verify:` check **and every `R#` must be covered by at least one `AC#`** (per the `ss-spec` skill's confirmation gate). Autopilot has no human sign-off to lean on here, so these objective checks stand in for it — an `AC#` with no runnable verify or an uncovered `R#` is a hard stop, not an auto-advance.
2. **`ss-plan`** — produce `plan.md` as the skill specifies. Approval is delegated: set `status: approved` directly (don't use EnterPlanMode) and log it. If planning surfaces something that changes the spec's scope, that's a hard stop, not a silent re-plan. **Verifiability gate:** before auto-advancing to `coding`, every `S#` must list at least one `covers:` ID **and an executable `verify:`** (a runnable command/test, not prose), and — coverage running both ways per the `ss-plan` skill's approval gate — **every `R#`/`AC#` in `spec.md` must be covered by at least one step**. A step whose check can't be run, or a spec ID no step covers, is a hard stop — autopilot won't hand the coding loop a blurry target.
3. **`ss-coding`** — don't ask TDD vs conventional: apply the skill's own default (whatever the codebase already does). Implement every `S#`, verify, tick. **Deviation under autopilot:** small deviations follow the `ss-coding` skill unchanged (inline note + Change History). A **structural** deviation (the approach doesn't work) triggers the plan re-approval the `ss-coding` skill requires — under `ss-ship` that re-approval is delegated like the original: re-run `ss-plan` for the affected steps, log `ship: re-planned (approach change)`, and continue. **Once per run** — a second structural re-plan means the spec's ground truth is off, and that's a hard stop, not another silent pivot. If the deviation touches the spec's scope, it's a hard stop regardless.
4. **`ss-debug`** — on a non-obvious failure at any point, invoke `ss-debug`, fix to root cause, then resume the interrupted stage directly — no "resume?" question.
5. **`ss-review`** — full gate + `AC#` verification.
- `approved` → done.
- `changes-requested` → loop back to `ss-coding` (or `ss-debug` for a defect) automatically with the Findings as input, then re-run `ss-review`. **Cap: 2 loop-backs.** A third `changes-requested` is a hard stop.
## Hard stops — hand back to the user
Stop, checkpoint, and report (never push through) when:
- A **blocker `Q#`** is open, or a stage reveals the spec's scope is wrong.
- The request is **too big for one run**: the spec turns out to hold multiple unrelated goals, or the plan balloons past what one review can meaningfully verify (roughly >10 steps). Propose a split into separate `TASK-<ID>`s with a suggested order instead — small verifiable increments beat one mega-run whose review rubber-stamps.
- The **structural re-plan budget** is spent (one per run — see `ss-coding` above).
- The **verifiability gate fails**: an `AC#` with no runnable `verify:`, or an `S#` with no executable `verify:` — autopilot can't self-confirm an unverifiable criterion, so it hands back instead of advancing blind.
- The next action is **destructive or hard to reverse**: data/schema migrations on real data, deleting things the task didn't create, anything outward-facing.
- The **review loop cap** is hit, or a gate can't be made green.
- As always: **never run `git add` / `commit` / `push`** — `review.md` carries the drafted commit/PR message for the user.
On a hard stop, make sure `task.md` reflects the true stage/status and the Pipeline Log says why autopilot stopped — any stage skill can then resume manually from that state.
## Not an external phase
`ss-ship` is autopilot: it deliberately runs the *whole* pipeline in one go. That makes it the opposite of external orchestration, where the launcher owns the pipeline and each agent runs exactly one phase and stops (`../WORKFLOW.md` → External phase execution). An orchestrator therefore never launches `ss-ship`, and `ss-ship` is never a value of `--phase` — it launches `spec`/`plan`/`coding`/`review`/`debug` individually instead. Nothing here changes for interactive users: `ss-ship` stays the normal autopilot entry point.
## When done
One final report covering the whole run: stages executed, key assumptions made in the spec, `AC#` verification results, gate results, files changed, bugs hit (`BUG#`), deviations from the plan, the drafted commit message from `review.md`, and follow-ups. The task is `done` only when `review` says `approved`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!