Skip to content

/dev

Implement from a spec or plan: extract stories, build in safe waves, test, commit, and get peer review per story. Use for "implement", "build/code this plan", or targeted fix findings. If no plan exists, use /ship:design first.

From plugin
ship
9411 skills3 hooks1 MCP

Claude Code

$ npx -y skills add heliohq/ship --skill dev --agent claude-code

SKILL.md

dev.SKILL.md
name: dev
version: 0.7.0
description: >
  Implement from a spec or plan: extract stories, build in safe waves, test,
  commit, and get peer review per story. Use for "implement", "build/code this
  plan", or targeted fix findings. If no plan exists, use /ship:design first.
allowed-tools:
  - Bash
  - Read
  - Write
  - Edit
  - Glob
  - Grep
  - Agent
  - AskUserQuestion
  - mcp__codex__codex
  - mcp__codex__codex-reply

Ship: Implement

HOST IMPLEMENTS. PEER CROSS-VALIDATES.
EVERY FINDING NEEDS FILE:LINE + EVIDENCE.

Runtime Resolution

_Path note: `../shared/*.md` references resolve against this skill's base directory (announced as "Base directory for this skill" when the skill loaded), not your working directory._

See `../shared/runtime-resolution.md` for the host/peer concept and dispatch commands. In /ship:dev, the **host is the primary implementer** and the **peer is the independent reviewer** — the reviewer MUST differ from whoever implemented the story. Prefer a non-host provider for cross-model validation; if unavailable, use a fresh same-provider session and record the weaker independence in the report.

Two wave shapes, different dispatch patterns (fix routing — **whoever implemented, fixes** — is specified in Step C):

| Wave shape | Implementer | Reviewer | |---|---|---| | **Single-story** (most common) | Host (you), on current branch | Peer agent | | **Multi-story parallel** | Fresh Agent subagents per story, all on the current branch (dependency analysis guarantees their file scopes don't overlap — no worktrees needed) | Peer per story | | **Fix mode** (/ship:auto review_fix/qa_fix/e2e_fix dispatch) | Host — you | (next phase re-runs its own verification) |

Quality Gates

| Gate | Condition | Fail action | |------|-----------|-------------| | Spec + plan read | Acceptance criteria extracted, TEST_CMD found | AskUserQuestion | | Implement → Review | Story produced at least one commit (from subagent report, or HEAD moved since WAVE_BASE_SHA for single-story waves) | BLOCKED | | Review → Next story | Verdict is PASS or PASS_WITH_CONCERNS | Targeted fix (progress-governed — see Step C) | | All stories → Done | Full test suite passes | Targeted fix for regression |

Red Flag

**Never:**

  • Skip the peer review — every story goes through peer review (or fallback)

before the wave merges. This is the only cross-validation in the pipeline until /ship:review runs.

  • Parallelize stories that share files without dependency analysis
  • Re-implement a full story on FAIL — make targeted surgical fixes
  • Advance to next story without getting a reviewer verdict
  • Soften a test assertion to make it pass instead of fixing the code
  • Reuse a reviewer dispatch across stories — fresh peer call each time
  • Let the peer reviewer become your coder — if the reviewer suggests a

fix, YOU apply it; don't ask the reviewer to write patches

  • Tell a reviewer what not to flag, or pre-rate a finding's severity.

Tripwire: if the dispatch you are composing contains "do not flag", "don't treat X as a defect", or "at most minor" — stop; you are pre-judging, usually to spare yourself a review round. Let the reviewer raise it and adjudicate the verdict yourself.

  • Re-implement a story the dev ledger already marks complete — after a

compaction or resume, trust `dev-ledger.md` and `git log` over your own recollection

---

Progress Tracking

Track your progress with the harness's task/todo list. Build the list after Phase 1 (setup), once you know the actual wave/story structure. The items should reflect the real work — don't use a canned template.

**Principle**: one item per wave (not per story) to keep the list short. Set the item's in-progress label to show which story within a wave is active. Always end with a regression test item when there are multiple stories.

**Example** (3-wave normal run):

[in_progress] Wave 1: "Add User model", "Add Product model"  (implementing Story 1)
[pending]     Wave 2: "User API", "Product API"
[pending]     Wave 3: "Auth middleware"
[pending]     Cross-story regression test

**Adaptations** (not exhaustive — use judgment):

  • Fix mode (invoked with findings) → single item: `"Fix <review/QA> findings"`
  • Targeted fix within a wave → update that wave's in-progress label:

`"Fixing Story N (round R)"`

---

Phase 1: Setup

0. **Check for a ledger.** If `<task_dir>/dev-ledger.md` exists, stories listed there as complete are DONE — do not re-implement or re-review them; resume at the first story not marked complete. The commits the ledger names exist in git even when your context no longer remembers creating them. 1. Read **acceptance criteria** (from spec file, or derived from user request). 2. Read **implementation stories** (from plan file, or single story for small tasks). Accept any heading format: `## Story N`, `## Step N`, `## N. Title`, or numbered/bulleted lists. Normalize as ordered stories. Note the plan's `## Global Constraints` section if present — copy it verbatim into every implementer and reviewer dispatch; it is the reviewer's attention lens for what this project's spec demands. 3. Detect the repo's test command by inspecting project root (`Makefile`, `package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml`, CI configs, `CLAUDE.md`/`AGENTS.md`). If none found, AskUserQuestion. Record as `TEST_CMD`. 4. Extract code conduct from `CLAUDE.md`, `AGENTS.md`, lint/formatter configs, and existing code patterns. Record as `CODE_CONDUCT`. 5. **Build pattern references.** For each story, find the closest analogous implementation before anyone writes code:

  • Search adjacent directories, feature folders, test folders, and

shared component/module areas for similar files. Read the full files, not just matching snippets.

  • Record 1-3 references in `<task_dir>/dev-context.md` with:

file path, why it is analogous, patterns to mirror, and intentional deviatio

Read more
@heliohq
Ships withship

An agentic development harness for Claude Code & Codex: agent-routed workflows from raw requirement to green PR.

Stars on GitHub

Momentum

stars in total
94
Star history of heliohq/ship on GitHub, a chart by star-history.com

Other skills on ship.

arch-design
Auto-invoked

arch-design

System-design thinking before any doc or code: goals/non-goals, back-of-envelope numbers, components and contracts, failure…

@heliohq@heliohqInstall Skill
auto
Auto-invoked

auto

Run Ship's full production workflow from raw requirement to PR: design, dev, E2E, review, QA, refactor, and handoff. Use only for…

@heliohq@heliohqInstall Skill
design
Auto-invoked

design

Plan implementation before coding: investigate the repo, write spec and plan, and validate with a peer. Use for "plan", "design…

@heliohq@heliohqInstall Skill
e2e
Auto-invoked

e2e

Add durable end-to-end tests for user/API-visible behavior. Detect or scaffold the E2E framework, write tests, run the app, and…

@heliohq@heliohqInstall Skill
handoff
Auto-invoked

handoff

Ship completed work: verify locally, commit related changes, push, create or update the PR, watch CI/reviews, and fix until…

@heliohq@heliohqInstall Skill
qa
Auto-invoked

qa

Runtime QA of a change: start the app, test acceptance criteria and edge cases, and report evidence. Use for "test this", "QA",…

@heliohq@heliohqInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about dev.

Which coding agents can use dev?
dev 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.