MCPInstall

bmad-spec

Distills ANY messy input — brain dump, transcript, long PRD, stakeholder notes, feature request, voice memo — into a tight five-field SPEC.md kernel that any downstream planning skill can consume. The five fields are: Problem, Capabilities, Constraints, Non-Goals, Success Metrics. Use when the user says "create a spec", "write a spec for", "distill this into a spec", "I have a brain dump", "turn this into something structured", "clean up these notes", "make a SPEC from", "I want to define the problem", "help me scope this", "summarize what we're building", "I have a PRD but need a kernel", "what are we actually solving?", or drops raw text/transcript and asks for structure. Also use when starting any new initiative and a clean shared definition is missing.

Installs
99
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill bmad-spec
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads bmad-spec automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

BMAD Spec — Five-Field Kernel Distiller

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.

What it produces

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.

The five fields

FieldPurpose
ProblemThe one thing that hurts right now and why it matters
CapabilitiesWhat the solution must be able to do (outcome-framed)
ConstraintsHard limits that are not negotiable (budget, tech, time, compliance)
Non-GoalsScope that is explicitly out — prevents creep and confusion
Success MetricsObservable signals that confirm the problem is solved

See templates/spec.template.md for the exact template with guidance and examples.

Workflow

1. Ingest

Accept whatever the user hands over:

  • Paste of raw text, notes, or a transcript
  • A path to an existing file (Read it)
  • Verbal description in the chat

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.

2. Extract (silent analysis)

Read the input and locate signal for each field:

  • Problem: What pain, gap, or failure state is described? Who experiences it?
  • Capabilities: What outcomes or abilities are requested? Rephrase features as capabilities ("users can …", "the system supports …").
  • Constraints: What is fixed? Look for budget figures, tech mandates, deadlines, regulatory mentions, team-size limits.
  • Non-Goals: What is the input silent about that a reader might assume? What is explicitly ruled out? What is deferred?
  • Success Metrics: What does "done" or "working" look like? Numbers, observable behaviors, thresholds.

3. Draft and present

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:

  • Problem: 2–5 sentences max.
  • Capabilities: 3–7 bullet points, outcome-framed.
  • Constraints: 2–6 bullet points, hard limits only.
  • Non-Goals: 2–6 bullet points, clear and unambiguous.
  • Success Metrics: 2–5 bullet points, each with a measurable signal.

After presenting, ask one targeted question: "Does anything here need to change before I write SPEC.md?"

4. Write

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>

5. Hand off

After writing, tell the user what the SPEC unlocks:

  • Quick Flow track → hand off to bmad-tech-spec to turn the kernel into a deployable spec.
  • BMad Method / Enterprise track → hand off to bmad-product-brief or the PM role (bmad-prfaq) for a full PRD.
  • If no workspace exists yet, suggest running /bmad-planning-orchestrator:bmad-init first to pick a track.

Three intents

  • Create — distill fresh input into a new SPEC.md (the common case).
  • Update — the user has new information or changed scope. Read the existing SPEC.md, apply the changes, present a diff-style summary, confirm, then overwrite. Record the change in decision-log.md.
  • Validate — review 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.

Distillation heuristics

Follow these when mapping noisy input to the five fields:

Input patternMaps 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%".

Guardrails

  • Lean by design. Resist adding a sixth field. If important information does not fit the five fields, note it as context in the file header and direct the user to expand it in the PRD or tech-spec stage.
  • No solutioning. The Capabilities field names outcomes, not implementation choices. Architecture, tech stack, and approach live downstream.
  • No story points, velocity, or burndown anywhere in the SPEC.
  • Scope law. This skill's last artifact is 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.

FAQ

What does the bmad-spec skill do?

Distills ANY messy input — brain dump, transcript, long PRD, stakeholder notes, feature request, voice memo — into a tight five-field SPEC.md kernel that any downstream planning skill can consume. The five fields are: Problem, Capabilities, Constraints, Non-Goals, Success Metrics. Use when the user says "create a spec", "write a spec for", "distill this into a spec", "I have a brain dump", "turn this into something structured", "clean up these notes", "make a SPEC from", "I want to define the problem", "help me scope this", "summarize what we're building", "I have a PRD but need a kernel", "what are we actually solving?", or drops raw text/transcript and asks for structure. Also use when starting any new initiative and a clean shared definition is missing.

How do I install bmad-spec?

Run npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill bmad-spec in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/bmad-spec/ (personal) or .claude/skills/bmad-spec/ (project).

Which AI agents can use bmad-spec?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is bmad-spec safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains bmad-spec?

It is published by aj-geddes in aj-geddes/claude-code-bmad-skills. It has 99 recorded installs.

More from aj-geddes/claude-code-bmad-skills

View all →

business-analyst

aj-geddes/claude-code-bmad-skills

Product discovery and requirements analysis specialist. Conducts stakeholder interviews, market research, problem discovery, and creates product briefs. Use for product brief, brainstorm, research, discovery, requirements gathering, problem analysis, user needs, competitive analysis, and setting foundation before product planning. Hands off to product manager when analysis complete.

Business & Finance2.2K installs

product-manager

aj-geddes/claude-code-bmad-skills

Product requirements and planning specialist. Creates PRDs and tech specs with functional/non-functional requirements, prioritizes features using MoSCoW/RICE frameworks, breaks down epics into user stories, and ensures requirements are testable and traceable. Use for PRD creation, requirements definition, feature prioritization, tech specs, epics, user stories, and acceptance criteria.

system-architect

aj-geddes/claude-code-bmad-skills

Designs system architecture, selects tech stacks, defines components and interfaces, addresses non-functional requirements. Trigger words - architecture, system design, tech stack, components, scalability, security, API design, data model, NFR, patterns, microservices, monolith

ux-designer

aj-geddes/claude-code-bmad-skills

Designs user experiences, creates wireframes, defines user flows, ensures accessibility. Trigger keywords - UX design, wireframe, user flow, accessibility, WCAG, mobile-first, responsive, UI design, user journey, interface design, user experience, design system, component design, interaction design

Frontend & Design717 installs

creative-intelligence

aj-geddes/claude-code-bmad-skills

Facilitates structured brainstorming sessions, conducts comprehensive research, and generates creative solutions using proven frameworks. Trigger keywords - brainstorm, ideate, research, SCAMPER, SWOT, mind map, creative, explore ideas, market research, competitive analysis, innovation, problem solving, feature generation

Media & Creative589 installs

scrum master

aj-geddes/claude-code-bmad-skills

Sprint planning and agile workflow specialist. Breaks epics into user stories, estimates complexity using story points, plans sprint iterations, and tracks velocity. Trigger keywords - sprint planning, user story, story points, velocity, backlog, sprint, epic breakdown, estimation, burndown, agile planning.

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.