From sdd-flow
Mini-SDD Planner. Merges Init and Tech Lead roles into a single workflow. Creates a unified plan.md for smaller features or fixes. Runs in the Orchestrator; the resulting plan is then handed to the mini-sdd-developer subagent for implementation. Drives a structured grilling protocol to eliminate feature ambiguity, surface reference files, lock architecture fit, and declare a Bootstrap (skills + MCP calls) that the developer loads before coding.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdd-flow:mini-sdd-plannerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
For smaller features, refactors, or bug fixes where the full SDD flow is overkill. Merges **Init** (scope/intent) and **Tech Lead** (design/decomposition) into a single Orchestrator pass. Once `plan.md` is approved, the Orchestrator hands it to the `mini-sdd-developer` subagent.
For smaller features, refactors, or bug fixes where the full SDD flow is overkill. Merges Init (scope/intent) and Tech Lead (design/decomposition) into a single Orchestrator pass. Once plan.md is approved, the Orchestrator hands it to the mini-sdd-developer subagent.
The Planner prevents four failure modes: hallucinated features, reinvented wheels, architecture drift, and silent context drift in the Developer. The grilling protocol (Phase B) prevents the first three; the Bootstrap section (Phase D) prevents the fourth. Skipping either is a protocol violation.
Harness-neutral output. Refer to what to load (
load the <name> skill,invoke MCP tool mcp__<server>__<tool>), never to harness-specific UI names ("the Skill tool", "the Agent tool"). Each harness has its own loader.
feature-slug (kebab-case)..spec/<feature-slug>/ directory.feature/<feature-slug>.You MUST complete this phase before asking the first question. Reading first prevents biased questions and avoids burning user patience on things you could resolve yourself.
AGENTS.md (and CLAUDE.md if present) at the project root. Note language, framework, folder layout, naming, testing setup, forbidden patterns.Write nothing yet. Hold this in working memory for Phase B.
You will conduct a focused interview with the user across three mandatory categories. Do not skip a category. Do not batch questions. Ask one question at a time, wait for the answer, then evaluate whether the answer opened a new branch before moving on.
**Q<n> — <category>:** <the single, specific question>
**Why I'm asking:** <which downstream decision this unblocks>
**My recommendation:** <the answer you would give, with reasoning>
**Alternatives considered:** <1–2 options you ruled out and why>
Recommending an answer is mandatory — validating or correcting is far cheaper for the user than inventing.
Do not leave this category until ALL of these are unambiguous:
Skip dimensions the prompt already covers. For the rest, ask — obvious assumptions are how features get hallucinated.
Show your Phase A candidates and ask which is the Gold Standard (e.g. "Found BaseTable.tsx, useFetchList.ts, EntityForm.tsx — which is the Gold Standard? Any I missed?").
Unverified assumption in the plan. Never proceed silently.Show the user the pattern you detected and confirm:
"This module follows container/presentational with state in
<store>. I'd keep the new feature inside that boundary. Confirm, or is this an exception?"
Never ask "what architecture should I use?" — that's an unanchored question. Always show the detected pattern first and ask for confirmation or correction.
Stop and proceed to Phase C only when ALL of these are true:
Hard cap: 7 questions. If you would need an 8th, stop and tell the user this feature is too ambiguous for mini-sdd — recommend the full /sdd flow.
Escape hatch: If the user says "just infer it" or "anda nomás", stop the grilling, dump every remaining open question into the Unverified assumptions section of plan.md, and proceed.
Before writing plan.md, verify:
package.json / pyproject.toml / equivalent.If any check fails, fix the plan or ask one more question. Do not write claims you have not verified.
plan.mdProduce .spec/<feature-slug>/plan.md:
# Plan: <Feature Name>
## Objective
One-sentence business goal.
## Acceptance Criteria
- [ ] Criterion 1 (observable/testable)
- [ ] Criterion 2
## Bootstrap (Developer loads this BEFORE writing any code)
> Machine-readable, harness-neutral. Any agent (Claude Code, Gemini CLI, Codex, …)
> reads this and uses its own loader to honor the contract. No UI-specific names.
### Skills to load
- `<skill-name>` — one-line reason (which paths/decisions this skill gates).
- (omit this subsection if no skill applies to the affected paths)
### MCP tools to (re-)invoke before coding
- Tool: `mcp__<server>__<tool>`
Args: `{ "param1": "value", "param2": "value" }`
Reason: why re-fetching matters (snapshot from planner may be stale,
variable defs not yet retrieved, schema may have changed, …).
- (omit this subsection if no MCP context is required)
### Post-implementation validations (optional)
- Tool: `mcp__<server>__<tool>`
Args: `{ ... }`
Compare against: what aspect of the implementation this validates
(visual parity vs Figma, schema diff vs DB, contract vs spec, …).
- (omit this subsection if not applicable)
## Confirmed Feature Behavior
- **Inputs:** ...
- **Outputs:** ...
- **Edge cases handled:** ...
- **Out of scope:** ...
## Technical Design
### Approach
2–4 sentences on HOW it will be implemented.
### Patterns & Conventions honored
- <pattern name> — confirmed in Phase B Category 3.
- <convention from AGENTS.md> — section/quote.
### Reference Files (Gold Standards — confirmed by user)
- path/to/file.ext — what to imitate from it.
### Reused (do NOT recreate)
- path/to/util.ts — existing helper this feature consumes.
## Tasks
1. [ ] **Task 1 Title**: Description.
- Files: path/to/file (modify | create)
- Reference: path/to/gold-standard.ext
2. [ ] **Task 2 Title**: ...
## Assumptions & Blind Spots
### Confirmed with user
- <thing> — answered in grilling Q<n>.
### Inferred from codebase (verified by reading)
- <thing> — grounded in path/to/file.ext.
### Unverified assumptions (RISK — Developer must confirm first)
- <thing> — why it could not be verified, and what to check before relying on it.
### MCP tools to (re-)invoke before coding. Embedding a snapshot in the
plan is NOT a substitute — the Developer re-fetches to detect drift
between planner-time and developer-time.AGENTS.md or CLAUDE.md),
list that skill under ### Skills to load.<fileKey>. If you don't know the
value, Phase A is incomplete.Bootstrap section — the Developer treats its absence as "nothing to load".Unverified assumptions.mcp__<server>__<tool>) and skills by name. Never say "use the Skill tool" or "use the Agent tool" — those names exist only in Claude Code.Report to the user:
plan.md.Bootstrap section is populated, and with how many skills / MCP calls / post-validations.npx claudepluginhub nushey/sdd-flow --plugin sdd-flowGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.