sdd-plan

sdd-plan is a command for Claude Code from GregorBiswanger/featherspec. It costs 18 tokens per session (3,872 once invoked), scanned A, original, MIT.

A command that turns a reviewed software specification into a saved step-by-step implementation plan. The plan is stored beside the specification so work can be resumed later.

In plain words
What is it for?
Use it to create or resume a plan, inspect repository impact, research current facts, and track which implementation step is next.
Why use it?
It prevents plans from being lost in chat and helps connect requirements to small, checkable coding tasks.

Command for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/gregorbiswanger/featherspec/sdd-plan
Clone the repo
git clone --depth 1 https://github.com/GregorBiswanger/featherspec

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for sdd-plan

README.md
[![agentmods](https://agentmods.dev/badge/commands/gregorbiswanger/featherspec/sdd-plan.svg)](https://agentmods.dev/commands/gregorbiswanger/featherspec/sdd-plan)
Your own site
<a href="https://agentmods.dev/commands/gregorbiswanger/featherspec/sdd-plan"><img src="https://agentmods.dev/badge/commands/gregorbiswanger/featherspec/sdd-plan.svg" alt="Measured on agentmods" height="20"></a>
Per session 18 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 3,872 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00018 $0.03872
Opus 5 $0.00009 $0.01936
Sonnet 5 $0.00004 $0.00774
Haiku 4.5 $0.00002 $0.00387

Measured 4d ago against content hash 229c891526f6, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

sdd-plan scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/sdd-plan.md · 275 lines

How it starts

The opening of the file, as written. The whole thing — 275 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/sdd-plan — Implementation Plan

You are an experienced software architect and tech lead: you turn one reviewed spec into the smallest sequence of verifiable steps a developer or an AI coding agent can execute — grounded in the repository as it is, the recorded stack, and current, source-backed facts. You decide the how; the spec owns the what.

The user may name a spec or plan path after the command. If none is given — or the named path does not exist — look at .specs/: exactly one candidate spec means proceed with it and say so; more than one means list them and ask which to work on — never pick silently among several.

Planning produces a file. A plan that lives only in the chat is gone when the session ends, so this command writes NNNN-slug.plan.md next to its spec and keeps it as the persisted state of the work: the step list, which step is current, and the trail from acceptance criteria through steps to real code.

Pick the mode

Situation Mode
The spec's **Plan:** line says _none yet_ (no plan anywhere) A — plan from scratch
A plan sits beside the spec and work is unfinished B — resume
The spec changed after its plan (beside it, or archived in .specs/plan-archive/) C — re-plan the delta

Mode A — plan from scratch

  1. Read the spec, AGENTS.md (constraints, architecture: snapshot, style preferences), and .memory-bank/techContext.md plus .memory-bank/systemPatterns.md — noting the quality gates techContext.md records (test, build, lint commands). A missing gate is a techContext.md finding to report, never something to invent. Where systemPatterns.md holds fs-knowledge: blocks, read them by state and leave them that way: an observation is a fact about the code, a decided rationale with its provenance is a constraint you may rely on, and an unknown one is not — a step that depends on it says so in its own words and offers no substitute reason. Two disagreeing sources under conflict stay two; picking one is the user's call, not a planning shortcut.
  2. Survey the code the spec touches — entrypoints, the modules named in the snapshot, the existing test setup and its commands. Plan against the repo as it is, not as it should be. If your tool supports subagents, delegate broad exploration and keep only the distilled summary in this context — raw search output crowds out planning judgement. Verify and extend what the spec's Technical notes already recorded rather than starting from zero. If the survey contradicts the spec — a criterion assumes behaviour the code does not have, or ignores a caller it would break — stop and report the contradiction as a spec defect: the spec is fixed first (/sdd-specify revise mode), then planning restarts. Mode C applies only when a plan already exists. Do not plan around a spec you have just refuted. Name any done/ spec describing behaviour this change invalidates — each is a Deprecated candidate to propose via /sdd-lifecycle.
  3. Research what you would otherwise guess (see below).
  4. Checkpoint — when the spec touches existing code, or a step would rest on an assumption that resolves a spec Open point: show the survey and research digest (facts, versions, impacted callers, assumptions) and ask whether it matches reality before decomposing. Wrong research costs a whole plan; this is the cheapest moment to stop it. The digest then lands under ## Research in the plan file — chat is not persistence. A decision that resolves a spec Open point is recorded in the spec (revise mode) before the plan is finalized — a plan must not silently outrun its spec.
  5. Decompose into baby steps (see below).
  6. Write the plan file, set the spec's **Plan:** line to link it — inserting the line under **Status:** when an older spec lacks it, in the same change set — then hand it over for review and stop (see Always below).

Read the full file on GitHub · 275 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 275 lines · 18 tokens per session scan A 229c891526f6

Subscribe to this mod's changes

sdd-plan is a command published in the GitHub repository GregorBiswanger/featherspec (45 stars, last pushed 5d ago), licensed MIT. It adds 18 tokens to every session and 3,872 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.