PluginResolver strategy 1 only checked the skills' common parent for module.yaml + module-help.csv. For the canonical BMad layout (module files at src/, skills under src/skills/<name>/) the common parent is src/skills, so the files were missed and the resolver fell through to strategy 5 — synthesizing a degenerate module named after the marketplace plugin (e.g. bmad-creative-intelligence-suite) and discarding the real `code` (cis) and `agents:` roster. That mismatch then made resolveInstalledModuleYaml fail, emitting the collectAgentsFromModuleYaml and writeCentralConfig "could not locate module.yaml" warnings. Strategy 1 now walks up from the skills' common parent to the repo root (bounded, deepest-first) and uses the first directory with both files, so src/module.yaml resolves correctly. Also match on `pluginName` in resolveInstalledModuleYaml's resolution-cache fallback so a module tracked under its marketplace plugin name still resolves. Adds a regression test mirroring the bmad-creative-intelligence-suite layout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs | ||
| installer | ||
| build-docs.mjs | ||
| bundle-web-bundles.js | ||
| fix-doc-links.js | ||
| format-workflow-md.js | ||
| javascript-conventions.md | ||
| migrate-custom-module-paths.js | ||
| skill-validator.md | ||
| validate-doc-links.js | ||
| validate-file-refs.js | ||
| validate-sidebar-order.js | ||
| validate-skills.js | ||
| validate-svg-changes.sh | ||