BMAD 6.11.0 with Ultracode: A how-to
TLDR/BLUF
What this is. BMAD-METHOD 6.11.0 is a persona-based skill framework for Claude Code. This page compares it to Ultracode and answers whether combining them is worth doing.
Why you should care. Yes, and there is one thing to avoid: never run a BMAD skill that writes its state file as two or more concurrent Ultracode subagents. Not for you if you want a tutorial: read the upstream docs.
How to use it. Read the diagram, then the how-to at the end. Everything else is the reasoning behind both.
What is BMAD
BMAD (Breakthrough Method for Agile AI-Driven Development) and Ultracode are two different philosophies for running Claude Code at scale.
BMAD turns Claude Code into a governed, human-directed team working from Markdown specifications.
Ultracode lets Claude Opus decide on its own when to fan out into parallel sub-agents, at maximum
(xhigh) reasoning effort.
BMAD: governed and spec-driven. You work with named personas – analyst, product manager, architect – to produce a PRD and an architecture document before any code is written.
Work then stays scoped to version-controlled files under _bmad-output/, not chat memory, which
is what keeps context from drifting across a long build. A developer, a UX designer, and a
party-mode aggregator that runs several personas at once round out the 49 installed skills.
Ultracode: autonomous and parallel. Activated with /effort ultracode, it combines xhigh
reasoning with automatic workflow orchestration: Claude decides on its own when a task is big
enough to fan out into parallel sub-agents, rather than you dictating the process.
Each sub-agent’s result is held in a script variable until the run finishes, keeping the main context window clean.
BMAD’s persona work also writes a file to disk – a PRD, an architecture document, story files, a sprint status file – and those files persist after the session ends.
Install BMAD with:
npx bmad-method@6.11.0 install --yes --tools claude-code --modules bmm --directory .
That puts 3.0MB and 248 files into .claude/skills/ and _bmad/, none of it gitignored by
default.
Two of the 49 skills also run Python, not just prompts. sprint_status.py writes the work-tracking
file, atomically but without a lock – two writers racing it can lose an update.
config_utils.py resolves the project root fail-closed: run BMAD from the wrong place and it
errors instead of guessing.
The 49 skills:
bmad-advanced-elicitation bmad-agent-analyst bmad-agent-architect
bmad-agent-dev bmad-agent-pm bmad-agent-ux-designer
bmad-architecture bmad-brainstorming bmad-build
bmad-build-auto bmad-checkpoint-preview bmad-code-review
bmad-correct-course bmad-create-architecture bmad-create-epics-and-stories
bmad-create-prd bmad-create-story bmad-customize
bmad-deep-recon bmad-dev-auto bmad-dev-story
bmad-document-project bmad-domain-research bmad-edit-prd
bmad-editorial-review bmad-editorial-review-prose bmad-editorial-review-structure
bmad-forge-idea bmad-generate-project-context bmad-help
bmad-market-research bmad-party-mode bmad-prd
bmad-prfaq bmad-product-brief bmad-project-context
bmad-qa-generate-e2e-tests bmad-quick-dev bmad-retrospective
bmad-review bmad-review-adversarial-general
bmad-review-edge-case-hunter bmad-review-verification-gap bmad-spec
bmad-sprint-planning bmad-sprint-status bmad-technical-research
bmad-ux bmad-validate-prd
BMAD vs Ultracode
Does BMAD augment Ultracode
Yes, for two things Ultracode does not keep on its own: a written project spec, and named review passes.
Run BMAD’s planning skills once, before the first fan-out. They each produce a file, not a concurrent writer, so the lock issue above does not apply yet. Route BMAD’s review skills into the fan-out once you have checked they do not write the state file.
No, if the plan is to run BMAD’s whole persona set as a fan-out. Its personas are sequential by design, and forcing concurrency onto them is the exact combination that races the state file.
How to use them together
- Run the planning skills, in this order:
bmad-create-prd,bmad-create-architecture,bmad-create-epics-and-stories. Each writes one file under_bmad-output/. - Hand the resulting story files to Ultracode.
/effort ultracodefans out across them, one subagent per story. - Check that a review skill –
bmad-review,bmad-review-adversarial-general,bmad-review-edge-case-hunter,bmad-review-verification-gap– does not touchsprint-status.yamlbefore routing it into the fan-out. - Never run
bmad-sprint-status,bmad-dev-story,bmad-build, or any other skill that writessprint-status.yaml, as two or more concurrent subagents sharing one worktree. Give each its own worktree, or keep it sequential. - For unattended runs across a whole epic – native Ultracode is session-scoped, so it will not
advance to the next story on its own – a third-party extension exists:
bmad-module-ultracode-goal.- It gates each story’s advancement on a deterministic pass from BMAD’s own Test Architect module, not the model’s self-assessment.
- It is unofficial: published by an individual, not by
bmad-code-org. Read its source before trusting it with an unattended run.