From BMAD Planning & Orchestrator
Distills messy input (brain dumps, transcripts, PRDs, notes) into a five-field SPEC.md kernel (Problem, Capabilities, Constraints, Non-Goals, Success Metrics) for downstream planning.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bmad-planning-orchestrator:bmad-specThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Function:** Accept messy, unstructured, or verbose input and produce a lean
Function: Accept messy, unstructured, or verbose input and produce a lean
SPEC.md kernel (five fields, no more) that anchors every downstream planning
workflow. This is a planning skill. It never writes application code, runs
tests, or builds anything.
A single file under the configured output folder (default bmad-output/):
bmad-output/
└── SPEC.md # the five-field kernel
The kernel is intentionally small — a SPEC is not a PRD, not a brief, not an architecture doc. It is the shared definition of what is being built and why. Every downstream skill (PRD, tech-spec, architecture) loads it as the ground truth for scope.
| Field | Purpose |
|---|---|
| Problem | The one thing that hurts right now and why it matters |
| Capabilities | What the solution must be able to do (outcome-framed) |
| Constraints | Hard limits that are not negotiable (budget, tech, time, compliance) |
| Non-Goals | Scope that is explicitly out — prevents creep and confusion |
| Success Metrics | Observable signals that confirm the problem is solved |
See templates/spec.template.md for the exact template with guidance and examples.
Accept whatever the user hands over:
Read it)If the input exceeds a few hundred words, briefly acknowledge what you received before proceeding. Do not ask the user to reformat it — that is the skill's job.
Read the input and locate signal for each field:
Write a concise draft of all five fields and show it to the user in the chat before writing to disk. Keep each field tight:
After presenting, ask one targeted question: "Does anything here need to change before I write SPEC.md?"
Once the user confirms (or revises), write SPEC.md using the template:
${CLAUDE_PLUGIN_ROOT}/skills/bmad-spec/templates/spec.template.md
Output path: <outputFolder>/SPEC.md (read bmad-output/config.yaml if it
exists to find the configured output folder; fall back to bmad-output/).
Append a new entry to bmad-output/decision-log.md (create it if absent):
## SPEC created — <ISO date>
- Source: <one-line description of the input, e.g. "stakeholder brain dump">
- Key scope decision: <the single most important Non-Goal or Constraint>
After writing, tell the user what the SPEC unlocks:
bmad-tech-spec to turn the kernel into a
deployable spec.bmad-product-brief or the
PM role (bmad-prfaq) for a full PRD./bmad-planning-orchestrator:bmad-init
first to pick a track.SPEC.md (the common case).SPEC.md, apply the changes, present a diff-style summary, confirm, then
overwrite. Record the change in decision-log.md.SPEC.md against the five-field contract: are all fields
present and non-empty? Is the Problem one coherent statement? Are Capabilities
outcome-framed (not feature-list)? Are Non-Goals unambiguous? Flag any gaps and
offer to fix them.Follow these when mapping noisy input to the five fields:
| Input pattern | Maps to |
|---|---|
| "we need to fix / users complain / it's broken" | Problem |
| "it should / users can / the system supports" | Capabilities |
| "we can't / no budget / must use / by deadline" | Constraints |
| "not in scope / later / out of v1 / won't do" | Non-Goals |
| "if X% then / we'll know it works when / target" | Success Metrics |
When a constraint sounds aspirational (e.g., "we'd like to finish in Q3"), move it to Non-Goals or flag it as a soft constraint and note the ambiguity.
When capabilities sound like features rather than outcomes, rephrase: "add a search bar" → "users can find any record within 3 keystrokes".
When no success metrics appear in the input, use the Problem statement to derive proxy metrics: if the problem is "users can't find X", a metric is "time-to-find X reduced by Y%".
SPEC.md. It does not create
stories, write code, or produce acceptance criteria. Hand those to downstream
skills.See REFERENCE.md for extended distillation patterns and edge cases.
Part of the BMAD Planning & Orchestrator plugin — a Claude Code harness for the BMAD Method by the BMAD Code Organization (https://github.com/bmad-code-org/BMAD-METHOD). Implements the spirit of
bmad-spec. All methodology credit belongs to the BMAD Code Organization.
npx claudepluginhub aj-geddes/claude-code-bmad-skills --plugin bmad-planning-orchestratorDistills any intent input (brain dump, PRD, email, transcript) into a canonical SPEC.md kernel and companion files. Useful when a user says create, validate, or update a spec.
Writes structured feature specs or PRDs from problem statements or ideas. Covers problem, goals/non-goals, user stories, prioritized requirements, and success metrics.
Creates or updates SPEC.md documents from requirements, notes, or interview output, structuring into sections for goals, design, edge cases, security, testing, and success criteria. Use for feature specs.