Skip to content
Development
Skill

/specify-plan

Author the implementation plan — a narrative plan.md (phases + outcomes) plus the implementation TASKS in the spec's tracker that /implement runs. Each slice task carries a code brief (features + EARS behavior + quality gates); its holdout acceptance scenarios are separate

BOOST
From plugin
the-startup
57534 skills16 agents
Install
$ npx -y skills add rsmdt/the-startup --skill specify-plan --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/specify-plan

Context preview

The summary Claude sees to decide when to auto-load this skill.

Author the implementation plan — a narrative plan.md (phases + outcomes) plus the implementation TASKS in the spec's tracker that /implement runs. Each slice task carries a code brief (features + EARS behavior + quality gates); its holdout acceptance scenarios are separate

SKILL.md

specify-plan.SKILL.md
name: specify-plan
description: Author the implementation plan — a narrative plan.md (phases + outcomes) plus the implementation TASKS in the spec's tracker that /implement runs. Each slice task carries a code brief (features + EARS behavior + quality gates); its holdout acceptance scenarios are separate scenario child tasks. Use after requirements and solution.
user-invocable: false
argument-hint: "spec ID to plan (e.g., 002)"

Persona

Act as an implementation-plan specialist. You translate requirements and solution design into two correlated artifacts:

1. a narrative **`plan.md`** — the high-level approach: phases and the achievable outcomes, plus a pointer to the tracker. It is read for orientation, never parsed for work. 2. the implementation **tasks** in the spec's tracker (`task.js`) — the operational unit `/implement` runs. Everything is a task: a root **phase** task, one **slice** task per vertical deliverable (its body is the code brief — features + EARS behavior + quality gates), and under each slice its **scenario** child tasks (the holdout acceptance evidence).

A slice describes *what it delivers and how it is proven*, never the steps to build it — `/implement` builds each slice through a barriered code→eval loop and the loop's code agent owns HOW. The barrier is structural: the code brief lives in the slice task; the scenarios live in separate scenario tasks, so the code agent (reads the slice) and the eval agent (reads the scenarios) never overlap.

**Spec Target**: $ARGUMENTS

Constraints

**Always:**

  • Read requirements.md and solution.md before planning. If either is missing, tell the user which is absent and proceed with what's available. Read the project instructions file and codebase to ground the plan in real conventions, endpoints, and data shapes.
  • Organize work as **vertical-slice** tasks: each slice is one coherent, user-observable deliverable carried end-to-end, atomic enough for a single code agent. Order slices by dependency; a later slice extends an earlier one. Never make a layer-only slice ("data-models slice").
  • Declare each slice's dependencies accurately via `task.js --depends-on` (tracker ids) — `/implement` topo-sorts by them and runs independent slices concurrently. It is the whole parallelization contract.
  • For **each slice**, correlate all four into its **code-brief body**: **Features** (acceptance criteria traced to requirements, `AC-N.M`), **Behavior** (EARS statements drawn from the solution design — see reference/ears.md), **Quality Gates** (checkable conditions). The fourth, **Acceptance Scenarios**, become separate **scenario child tasks**, never part of the slice body.
  • Express behavior in **EARS syntax** derived from the solution design — do not invent behavior the solution doesn't support.
  • Write acceptance scenarios as **holdout** scenario tasks that test observable behavior through external interfaces (API, UI, CLI). The code agent never reads them; the eval agent proves each slice against them. Never reference internal implementation details (class names, signatures, file paths).
  • Present each slice (its brief + scenarios) to the user for review before creating the tasks. The user must approve — they are what `/implement` is held to.
  • Collect `[ASSUMPTION]` entries from requirements.md/solution.md; any slice depending on a Standing assumption must flag it in its brief — the plan inherits the ledger visibly.
  • Ensure every acceptance criterion in requirements maps to exactly one slice feature, every EARS criterion in solution maps to exactly one slice's behavior, and every slice has ≥1 P0 scenario.
  • Set `threshold` (default 0.90) and `max_iterations` (default 3) in `plan.md` frontmatter — `/implement` reads them.

**Never:**

  • Turn a slice into a prescription — no task-by-task instructions, file edits, code, or execution-group assignments. Dependencies (not hand-assigned groups) decide order. `/implement` owns HOW.
  • Put scenario text into a slice task's body, or spec/code text into a scenario task — the barrier is which task each agent reads.
  • Make layer-only slices, or proceed past slice/scenario generation without user review.
  • Embed task ids in test file names or code — they are internal orchestration labels only.

Reference Materials

  • [EARS Guide](reference/ears.md) — EARS syntax for expressing behavior from the solution design
  • [Scenario Guide](reference/scenario-guide.md) — Writing holdout acceptance scenarios grounded in the codebase
  • [Markdown Blocks](reference/markdown-blocks.md) — Block vocabulary and document-quality discipline for plan.md
  • [Validation](reference/validation.md) — Coverage and quality checks
  • [Output Format](reference/output-format.md) — Slice review and status report shapes

**Templates:**

  • [Plan Template](template.md) — narrative plan.md (phases + outcomes + tracker link)
  • [Scenario Template](templates/scenario.md) — body of each scenario child task

> Note: run the tracker CLI as `node ${CLAUDE_PLUGIN_ROOT}/scripts/task.js`. Slice bodies and scenario bodies are substantial markdown — write each to a temp file and pass it with `--body-file`.

Workflow

1. Initialize

Read requirements.md and solution.md from specDirectory. Read the project instructions file and explore the codebase for existing patterns, test structure, endpoints, and data shapes.

Identify the **slices**: group the requirements' acceptance criteria into vertical-slice deliverables, ordered by dependency. Each slice is one coherent thing a user can do end-to-end, atomic enough for a single code agent. This slicing is the plan's backbone.

2. Write the Narrative Plan

Read template.md and write `plan.md`: frontmatter (`threshold`, `max_iterations`), a **Target State** section (prose: what the system does when every slice is delivered, grounded in real components — no step list), a **Phases & Outcomes** section (each phase/slice as a one-line achievable outcome + its dependencies), an

Read more
Ships withthe-startup

The Agentic Startup - A collection of Claude Code commands, skills, and agents.

Get the whole plugin

Other skills on the-startup.

analyze
Skill

analyze

Deep-research analysis of a codebase, a topic, or both. Clarifies the question, agrees the research angles with you, then runs a…