Summary
BMAD-METHOD 6.13 ships as Claude Code plugins rather than as skills vendored into the project. bmad-loop discovers every skill under {project}/{skill_tree}/ (.claude/skills for claude), with no awareness of plugin paths, so on a 6.13 install validate fails and run never starts.
Two of the skills the preflight demands were deleted outright in 6.13, so this cannot be worked around by installing anything — there is nothing left to install.
Environment
bmad-loop 0.11.1, git c47333d1bf3f1f779445fa70378685831610cf5b (current main at time of writing)
- BMAD-METHOD 6.13.0-next, installed via the
bmad plugin marketplace
- Claude Code, Linux
6.13 lays the method down as two plugins:
~/.claude/plugins/cache/bmad/bmad-method/6.13.0-next/skills/ # 21 skills, incl. bmad-build-auto
~/.claude/plugins/cache/bmad/bmad-toolbox/6.13.0-next/skills/ # 8 skills, incl. bmad-review
The project keeps only:
_bmad/config.toml
_bmad/scripts/…
.claude/skills/ contains no bmad-* entries other than the three bmad-loop-* skills bmad-loop init installs.
Reproduction
- Install BMAD-METHOD 6.13 as a plugin (no per-project skill install).
bmad-loop init --project <project>
bmad-loop validate --project <project>
Actual
Exits 1 with four FAILs:
FAIL: BMAD config not found: <project>/_bmad/bmm/config.yaml (is BMAD installed here?)
FAIL: .claude/skills/bmad-build-auto not found — the orchestrator drives this upstream dev primitive
directly; it ships with the bmm module (BMAD-METHOD >= 6.10.0); install or update bmm in this
project (older installs name it bmad-dev-auto)
FAIL: .claude/skills/bmad-review-adversarial-general not found — …
FAIL: .claude/skills/bmad-review-edge-case-hunter not found — …
Why each of these is now structurally unsatisfiable
1. _bmad/bmm/config.yaml is gone. 6.13 has no per-module directory at all; project config is _bmad/config.toml. This is the surface already described in #154, which is still open.
2. bmad-build-auto is not under .claude/skills/. It lives in the bmad-method plugin. grep -rn 'plugins/cache\|claude-plugin' bmad_loop/*.py returns nothing, so no code path can currently find it.
3. bmad-review-adversarial-general and bmad-review-edge-case-hunter no longer exist in any form. 6.13 deleted them along with bmad-review-verification-gap, bmad-create-story, bmad-dev-story, bmad-quick-dev and bmad-dev-auto. (#260 already observed that bmad-review-verification-gap never shipped; 6.13 removed the other two as well.)
Root cause — one cascade, not four independent failures
install.resolve_review_layers's own docstring describes this exact degradation:
On a renamed project the legacy paths are simply absent, so without this the resolution silently returns None and the caller degrades to the static catalog — quietly seeding a worktree with the wrong reviewers instead of the ones this project configured.
That is what happens here:
resolve_dev_primitive looks for {project}/{tree}/bmad-build-auto/SKILL.md → absent (it is in the plugin) → None
- review-layer resolution therefore returns
None
_review_findings falls back to the static catalog
- the static catalog names the pre-consolidation review skills, which 6.13 deleted
So FAILs 2–4 are all one bug: skill discovery does not consult plugin paths.
Worth noting the code is otherwise already correct for 6.13's topology. The MERGED_REVIEW_SKILL comment block anticipates it exactly:
On 6.11 sources the same four layers (blind-hunter, edge-case-hunter, verification-gap, intent-alignment) invoke no skill at all — two of them read the primitive's own review-prompts/*.md, two carry their prompt inline — so that tree derives an empty required map, which is satisfied rather than unsatisfiable
6.13 keeps that same four-layer topology in bmad-build-auto/customize.toml, each layer ending "Do not invoke any skill." So once the primitive is found, the derived required map is empty and the review preflight passes on its own. Only the discovery step is missing.
Suggested fix
Make skill discovery plugin-aware: when {project}/{tree}/<skill>/SKILL.md is absent, also look under the installed Claude Code plugin roots (e.g. ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/skills/<skill>/), resolving the version the way the host does. Worktree provisioning would need the same treatment, or to skip seeding skills that resolve from a plugin (they are global, so a worktree already sees them).
Pairing that with #154 (read _bmad/config.toml as primary, bmm/config.yaml as fallback) clears all four FAILs.
Notes
Summary
BMAD-METHOD 6.13 ships as Claude Code plugins rather than as skills vendored into the project.
bmad-loopdiscovers every skill under{project}/{skill_tree}/(.claude/skillsfor claude), with no awareness of plugin paths, so on a 6.13 installvalidatefails andrunnever starts.Two of the skills the preflight demands were deleted outright in 6.13, so this cannot be worked around by installing anything — there is nothing left to install.
Environment
bmad-loop0.11.1, gitc47333d1bf3f1f779445fa70378685831610cf5b(currentmainat time of writing)bmadplugin marketplace6.13 lays the method down as two plugins:
The project keeps only:
.claude/skills/contains nobmad-*entries other than the threebmad-loop-*skillsbmad-loop initinstalls.Reproduction
bmad-loop init --project <project>bmad-loop validate --project <project>Actual
Exits 1 with four FAILs:
Why each of these is now structurally unsatisfiable
1.
_bmad/bmm/config.yamlis gone. 6.13 has no per-module directory at all; project config is_bmad/config.toml. This is the surface already described in #154, which is still open.2.
bmad-build-autois not under.claude/skills/. It lives in thebmad-methodplugin.grep -rn 'plugins/cache\|claude-plugin' bmad_loop/*.pyreturns nothing, so no code path can currently find it.3.
bmad-review-adversarial-generalandbmad-review-edge-case-hunterno longer exist in any form. 6.13 deleted them along withbmad-review-verification-gap,bmad-create-story,bmad-dev-story,bmad-quick-devandbmad-dev-auto. (#260 already observed thatbmad-review-verification-gapnever shipped; 6.13 removed the other two as well.)Root cause — one cascade, not four independent failures
install.resolve_review_layers's own docstring describes this exact degradation:That is what happens here:
resolve_dev_primitivelooks for{project}/{tree}/bmad-build-auto/SKILL.md→ absent (it is in the plugin) →NoneNone_review_findingsfalls back to the static catalogSo FAILs 2–4 are all one bug: skill discovery does not consult plugin paths.
Worth noting the code is otherwise already correct for 6.13's topology. The
MERGED_REVIEW_SKILLcomment block anticipates it exactly:6.13 keeps that same four-layer topology in
bmad-build-auto/customize.toml, each layer ending "Do not invoke any skill." So once the primitive is found, the derivedrequiredmap is empty and the review preflight passes on its own. Only the discovery step is missing.Suggested fix
Make skill discovery plugin-aware: when
{project}/{tree}/<skill>/SKILL.mdis absent, also look under the installed Claude Code plugin roots (e.g.~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/skills/<skill>/), resolving the version the way the host does. Worktree provisioning would need the same treatment, or to skip seeding skills that resolve from a plugin (they are global, so a worktree already sees them).Pairing that with #154 (read
_bmad/config.tomlas primary,bmm/config.yamlas fallback) clears all four FAILs.Notes
bmad-dev-auto→bmad-build-autorename in 6.10.1. This is the same class of change — the method moved again, one layer further out.