Port bug fixes that landed on main after this branch forked:
1. Remove dead .agent.yaml/.xml fallback logic from skill-manifest.js
and simplify scanInstalledModules to hasAgents || hasSkills
2. Fix config paths (issue 55): add resolveConfigValue,
cleanPromptValue, normalizeExistingValueForPrompt to prevent
template duplication on re-prompt
3. Fix empty agent-manifest.csv: replace collectAgents/getAgentsFromDir
with getAgentsFromDirRecursive that walks full module trees, fix 9
BMM manifests type: skill → type: agent, add dead-code TODO to
bmad-artifacts.js
4. Fix custom module install crash: discoverPaths was receiving the
clean Config (which strips customContent) instead of customConfig
The entire CLI exists to serve the installer. Rename the directory to
reflect its purpose and collapse the two redundant lib/ directories
(cli/lib/ and cli/installers/lib/) into the top level.
- tools/cli/ -> tools/installer/
- tools/installer/installers/lib/{core,ide,modules}/ -> tools/installer/{core,ide,modules}/
- tools/installer/lib/*.js -> tools/installer/*.js
- Update all require() paths, package.json bin/main, CI workflow, tests, and docs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>