MCPInstall

bmad-handoff

Emits a dev-tool-agnostic handoff manifest from ready-for-dev stories so an external dev plugin or runner can pick up and execute the work. Use when the user says "generate a handoff", "create handoff manifest", "export stories for dev", "hand off to dev tool", "produce handoff manifest", "ready to hand off", "prepare handoff for external tool", "export ready-for-dev stories", or "create the handoff package". Also trigger when the user asks "what stories are ready for dev?" and wants an exportable artifact rather than a status report. Produces: handoff-manifest.json listing all ready-for-dev stories with id, story file path, status, owned file/module scope, wave/parallelset, dependencies, acceptance-criteria summary, locked-sections note, and a schemaVersion field. See REFERENCE.md (bundled) for the full manifest schema and adapter notes for git-worktree parallel development and autonomous dependency-graph orchestrators.

Installs
87
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-handoff
  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-handoff 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 Handoff

Purpose: Scan the planning output folder for all stories at status ready-for-dev, compile them into a single handoff-manifest.json, and leave it where any downstream dev tool can read it — without coupling to any specific runner.

This is the last artifact the planning plugin produces. What happens next is owned by the external dev tool, not by this skill.

When to Run

Run this skill after the story-writing phase is complete and you (or the user) have confirmed that at least one story carries status ready-for-dev. The manifest is a point-in-time snapshot; re-run the skill to refresh it.

Workflow

Use TodoWrite to track progress through these steps.

1. Locate the output folder

Look for bmad-output/project-context.md (the default output folder) or ask the user for the output folder. Default: bmad-output/.

2. Discover story files

Glob for **/{epic}.{story}.*.story.md under the output folder. Accept alternative flat layouts (stories/*.story.md) if the glob turns up nothing.

3. Filter to ready-for-dev

Read the **Status:** header field of each story file (in the story header block, not a ## Status heading). Include only stories whose status value is exactly ready-for-dev.

If none are found, report which statuses were seen and stop — do not produce an empty manifest.

4. Extract per-story fields

For each qualifying story file, extract:

FieldSource in story file
idFilename stem or ## Story heading ID
storyFilePathRelative path from project root
status**Status:** header field value
epicFirst segment of filename, e.g. "2" in 2.1.stripe.story.md
storyNumberSecond segment, e.g. "1"
titleFirst H1 or ## Story heading text
ownedScope## Owned File/Module Scope — list every path verbatim
wave## Dependency Maps → wave/parallel_set annotation (integer or null)
parallelSetSame section — parallel set label if present (string or null)
dependencies## Dependency Maps → blocked-by story IDs (array, may be empty)
acceptanceCriteriaSummaryFirst 3 AC items from ## Acceptance Criteria, each ≤120 chars
lockedSectionsNoteStatic string — see schema
devAgentRecordStatic null — placeholder for the dev tool to populate

5. Compute wave order

If stories do not already carry explicit wave annotations:

  • Stories with empty dependencies arrays are wave 1.
  • A story whose every dependency is in wave N or lower is wave N+1.
  • Add the computed wave value; leave parallelSet null when not annotated.

6. Write the manifest

Write to {outputFolder}/handoff-manifest.json.

Use the schema from ${CLAUDE_PLUGIN_ROOT}/skills/bmad-handoff/templates/handoff-manifest.schema.json as the structural contract. Populate schemaVersion: "1.0".

Sort stories by wave ascending, then by id ascending within each wave.

7. Report to the user

Print a compact summary:

Handoff manifest written → bmad-output/handoff-manifest.json
  schemaVersion : 1.0
  stories       : <N> ready-for-dev
  waves         : <W>  (wave 1 has <X> stories, can start immediately)
  output path   : bmad-output/handoff-manifest.json

If any story was missing required sections (e.g. no ## Owned File/Module Scope), list those as warnings — do not silently omit or fabricate data.

Manifest Field Definitions (Quick Reference)

See REFERENCE.md for the full schema narrative and adapter notes.

FieldTypeRequiredNotes
schemaVersionstringyesSemver string; current = "1.0"
generatedAtstringyesISO-8601 UTC timestamp
projectNamestringyesFrom project-context.md or user input
outputFolderstringyesRelative path used to find stories
storiesarrayyesOne object per ready-for-dev story
stories[].idstringyesUnique story identifier
stories[].storyFilePathstringyesRelative path to the .story.md file
stories[].statusstringyesAlways "ready-for-dev" in this manifest
stories[].epicstringyesEpic identifier
stories[].storyNumberstringyesStory number within epic
stories[].titlestringyesHuman-readable story title
stories[].ownedScopearrayyesFile/module paths this story may modify
stories[].waveintegeryesExecution wave (1 = no dependencies)
stories[].parallelSetstring|nullnoLabel if explicitly grouped
stories[].dependenciesarrayyesStory IDs that must complete first
stories[].acceptanceCriteriaSummaryarrayyesFirst 3 AC items, ≤120 chars each
stories[].lockedSectionsNotestringyesInstruction to dev tools
stories[].devAgentRecordnullyesDev tool populates; always null at emit time

lockedSectionsNote is always the string:

"Sections Acceptance Criteria, Dev Notes, and Testing are LOCKED. External dev tools must not edit them. Populate only the Dev Agent Record section."

Subagent Strategy

For small backlogs (≤15 stories), this skill runs single-threaded — the extraction loop is fast and context fits in one session.

For large backlogs (16+ stories), fan out story extraction in parallel:

AgentTask
Agent 1…NRead story files in their assigned slice; extract fields; return JSON fragment
CoordinatorMerge fragments; compute wave order; write manifest

Each agent receives the list of file paths for its slice plus the field extraction table above. It returns a JSON array of story objects (no wave field yet). The coordinator merges, computes waves, sorts, and writes the manifest.

Key Guidelines

  1. Never fabricate field values — if a field is missing from a story file, emit null and add a warning to the summary.
  2. Do not modify story files — this skill is read-only with respect to story content.
  3. ownedScope is critical for parallel-conflict safety; never collapse or summarize it.
  4. This manifest is a STABLE versioned interface. Increment schemaVersion (as a separate schema revision, not within this run) before adding or removing fields.
  5. Do not filter out stories based on anything other than ready-for-dev status — dependency resolution is the dev tool's job.
  6. If the user asks to "re-run" or "refresh" the manifest, overwrite the existing file.


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-handoff. All methodology credit belongs to the BMAD Code Organization.

FAQ

What does the bmad-handoff skill do?

Emits a dev-tool-agnostic handoff manifest from ready-for-dev stories so an external dev plugin or runner can pick up and execute the work. Use when the user says "generate a handoff", "create handoff manifest", "export stories for dev", "hand off to dev tool", "produce handoff manifest", "ready to hand off", "prepare handoff for external tool", "export ready-for-dev stories", or "create the handoff package". Also trigger when the user asks "what stories are ready for dev?" and wants an exportable artifact rather than a status report. Produces: handoff-manifest.json listing all ready-for-dev stories with id, story file path, status, owned file/module scope, wave/parallelset, dependencies, acceptance-criteria summary, locked-sections note, and a schemaVersion field. See REFERENCE.md (bundled) for the full manifest schema and adapter notes for git-worktree parallel development and autonomous dependency-graph orchestrators.

How do I install bmad-handoff?

Run npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill bmad-handoff 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-handoff/ (personal) or .claude/skills/bmad-handoff/ (project).

Which AI agents can use bmad-handoff?

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-handoff 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-handoff?

It is published by aj-geddes in aj-geddes/claude-code-bmad-skills. It has 87 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.