Summary
The BMAD A0 GUI dashboard can incorrectly report bmad-init missing even when the plugin is installed correctly and the active project context resolves normally.
Impact
- Misleading blocker in BMAD dashboard
- Suggests broken installation when the real issue is plugin code
- Causes wasted debugging effort around project names, symlinks, and init state
Observed environment
- Active project:
/a0/usr/projects/soar
- Dashboard context resolution after frontend fixes:
- Frontend ctxid:
lLzQ79fD
- Backend ctxid:
lLzQ79fD
- Resolved project:
/a0/usr/projects/soar
- Resolution source:
context:soar
This confirms the project/context path is working and the false missing-module warning is independent of project naming.
Root cause
In /a0/usr/plugins/bmad_method/helpers/bmad_status_core.py, check_modules() only checks for:
But bmad-init stores its module file at:
/a0/usr/plugins/bmad_method/skills/bmad-init/core/module.yaml
So the health check marks bmad-init as missing even though it exists.
Filesystem evidence
| Module |
Actual module file |
bmad-init |
/a0/usr/plugins/bmad_method/skills/bmad-init/core/module.yaml |
bmad-bmm |
/a0/usr/plugins/bmad_method/skills/bmad-bmm/module.yaml |
bmad-bmb |
/a0/usr/plugins/bmad_method/skills/bmad-bmb/module.yaml |
bmad-tea |
/a0/usr/plugins/bmad_method/skills/bmad-tea/module.yaml |
bmad-cis |
/a0/usr/plugins/bmad_method/skills/bmad-cis/module.yaml |
Minimal fix
Allow either module layout:
<skill>/module.yaml
<skill>/core/module.yaml
Suggested patch
--- a/helpers/bmad_status_core.py
+++ b/helpers/bmad_status_core.py
@@
def check_modules(skills_dir: Path):
ok, broken = [], []
for n in SKILL_NAMES:
- (ok if (skills_dir / n / "module.yaml").exists() else broken).append(n)
+ candidates = [skills_dir / n / "module.yaml", skills_dir / n / "core" / "module.yaml"]
+ (ok if any(p.exists() for p in candidates) else broken).append(n)
return ok, broken
Expected result after fix
The BMAD dashboard should no longer report bmad-init missing when the plugin is installed correctly and bmad-init/core/module.yaml exists.
Summary
The BMAD A0 GUI dashboard can incorrectly report
bmad-init missingeven when the plugin is installed correctly and the active project context resolves normally.Impact
Observed environment
/a0/usr/projects/soarlLzQ79fDlLzQ79fD/a0/usr/projects/soarcontext:soarThis confirms the project/context path is working and the false missing-module warning is independent of project naming.
Root cause
In
/a0/usr/plugins/bmad_method/helpers/bmad_status_core.py,check_modules()only checks for:<skill>/module.yamlBut
bmad-initstores its module file at:/a0/usr/plugins/bmad_method/skills/bmad-init/core/module.yamlSo the health check marks
bmad-initas missing even though it exists.Filesystem evidence
bmad-init/a0/usr/plugins/bmad_method/skills/bmad-init/core/module.yamlbmad-bmm/a0/usr/plugins/bmad_method/skills/bmad-bmm/module.yamlbmad-bmb/a0/usr/plugins/bmad_method/skills/bmad-bmb/module.yamlbmad-tea/a0/usr/plugins/bmad_method/skills/bmad-tea/module.yamlbmad-cis/a0/usr/plugins/bmad_method/skills/bmad-cis/module.yamlMinimal fix
Allow either module layout:
<skill>/module.yaml<skill>/core/module.yamlSuggested patch
Expected result after fix
The BMAD dashboard should no longer report
bmad-init missingwhen the plugin is installed correctly andbmad-init/core/module.yamlexists.