Skip to content

/design

Plan implementation before coding: investigate the repo, write spec and plan, and validate with a peer. Use for "plan", "design approach", "scope", or any coding task needing a plan. Not system-design thinking (/ship:arch-design) or full /ship:auto.

From plugin
ship
9311 skills3 hooks1 MCP

Claude Code

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

SKILL.md

design.SKILL.md
name: design
version: 1.4.0
description: >
  Plan implementation before coding: investigate the repo, write spec and plan,
  and validate with a peer. Use for "plan", "design approach", "scope", or any
  coding task needing a plan. Not system-design thinking
  (/ship:arch-design) or full /ship:auto.
allowed-tools:
  - Bash
  - Read
  - Write
  - Edit
  - Glob
  - Grep
  - Agent
  - AskUserQuestion
  - mcp__codex__codex
  - mcp__codex__codex-reply

Ship: Design

You ARE the planner. You read code, investigate, write spec and plan. Read the load-bearing code yourself — a plan written from someone else's summary loses the context that makes it executable. On a large repo you may use read-only search agents to scout breadth (locate files, callers, conventions), but scouts locate code; they never replace your own reading of what you cite. A peer agent investigates independently and produces its own spec for adversarial comparison.

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:design, the peer plays two roles: **investigator** (Phase 2) and **drill agent** (Phase 6).

Scope Mode

The prompt may specify `Scope mode: full` (default) or `Scope mode: refactor`. It controls how much adversarial validation runs:

| Phase | `full` | `refactor` | |-------|--------|-----------| | 1 Init | ✅ | ✅ | | 2 Investigate (host + peer) | ✅ | ✅ | | 3 Write spec | ✅ | ✅ (behavior-contract template) | | 4 Diff & verify | ✅ | ✅ | | 5 Write plan | ✅ | ✅ | | 6 Execution drill | ✅ | ⏭ **skipped** |

**Why refactor mode skips Phase 6:** for behavior-preserving changes (refactor, simplify, rename, extract, dedupe), the plan steps are usually small, mechanical code movements. The drill's "is every step implementable" check earns little here while adding a full peer round-trip. Peer investigation and diff stay on because they catch the real refactor failure mode — "moved complexity instead of removing it."

If no scope mode is specified (e.g. standalone /ship:design invocation), default to `full`.

Process Flow

Phase 1  Init            resolve task_id, create .ship/tasks/<id>/plan/
Phase 2  Investigate     dispatch peer (parallel) ─┐
                         you read the code         │
                         ↓                         │
Phase 3  Write spec      write host spec.md  ←─── peer writes peer-spec.md
                         vague? ask user → re-investigate
                         ↓
Phase 4  Diff & verify   compare specs → resolve each divergence
                         disagree? → debate peer (max 2 rounds)
                         still open? → escalate to user
                         critical gap? → re-investigate (max 1 loop)
                         ↓
Phase 5  Write plan      write plan.md with executable tasks
                         self-review against spec
                         ↓
Phase 6  Execution drill dispatch peer (fresh session) to validate plan
                         BLOCKED step?  → escalate
                         UNCLEAR step?  → revise plan (max 1 loop)
                         all CLEAR      → ready for execution

Roles

| Phase | Who | Why | |-------|-----|-----| | Investigation (read code, trace paths) | **Host + peer (parallel)** | Independent investigation catches different blind spots | | Write spec (host version) | **You** | Investigation context must not be lost | | Write spec (peer version) | **Peer agent** | Independence requires separation | | Diff & verify divergences | **You** | You have the context + code access to judge | | Write plan.md | **You** | Spec context must flow into plan | | Execution Drill | **Peer agent** (fresh session) | Fresh eyes test implementability |

Quality Gates

| Gate | Condition | Fail action | |------|-----------|-------------| | Investigation → Spec | All claims trace to file:line you read | Re-investigate | | Spec → Diff | spec.md has flexible sections scaled to complexity, self-reviewed | Revise | | Diff → Plan | Zero `escalated` items (resolved by evidence or debate, or user resolved them) | Ask user | | Plan → Drill | plan.md has TDD tasks, checkbox steps, complete code, no placeholders | Revise | | Drill → Ready | Zero BLOCKED steps, zero UNCLEAR steps | Revise plan (max 1 loop) |

No artifact passes to the next phase without meeting its gate.

Progress Tracking

Track your progress with the harness's task/todo list. After Phase 1 (init), create items that reflect the actual work ahead. Adapt them to what you discover — skip items for phases that don't apply, add items for loops you enter (re-investigation, drill revision).

**Principle**: one item per major phase the user would care about. Update the in-progress label to reflect what's happening within a phase.

**Example** (full run with peer available):

[in_progress] Investigate codebase (host + peer)
[pending]     Write spec
[pending]     Diff host vs peer specs
[pending]     Write implementation plan
[pending]     Execution drill

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

  • Peer unavailable → drop "Diff" item, rename "Investigate" to reflect self-produced peer spec
  • Upstream spec already exists → drop "Write spec", start with "Validate existing spec"
  • Re-investigation needed → re-mark "Investigate" as in progress
  • Drill revision needed → keep "Execution drill" as in progress

Red Flag

**Never:**

  • Cite files you haven't opened
  • Let the peer see your spec before producing its own
  • Resolve divergences by reasoning instead of code evidence (max 2 debate rounds, both cite file:line)
  • Trust prior conversation over disk artifacts
  • Mark plan ready when drill has BLOCKED or UNCLEAR items
  • Skip the drill because "the plan looks solid"
  • Write a spec claim from a sub-agent's su
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
93
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
dev
Auto-invoked

dev

Implement from a spec or plan: extract stories, build in safe waves, test, commit, and get peer review per story. Use for…

@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.

skills11d309k
@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,…

ecc13d293k
@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…

react2d252k
@facebook@facebookInstall Skill

Questions about design.

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