BMAD-METHOD/docs/how-to
Brian 7ee5fa313b
fix(installer): require --tools for fresh --yes installs; remove --tools none (#2346)
* fix(installer): require --tools for fresh --yes installs; remove --tools none (closes #2326)

Fresh non-interactive installs without --tools previously produced a
config-only install (~35 files vs ~1400 in the manifest) with no warning
and a "BMAD is ready to use" success card, leaving slash commands
unreachable. --tools none was an explicit opt-in for the same broken
state.

Now: fresh install + -y without --tools throws a helpful error pointing
at --list-tools. --tools none is rejected as an unknown ID. Empty and
typo'd tool IDs are also rejected. Existing-install paths (--action
update, quick-update, modify) are unchanged - they continue to reuse
previously-configured tools when --tools is omitted.

Adds --list-tools flag that prints all 42 supported tool IDs (id, name,
target_dir, preferred star) sourced from platform-codes.yaml.

English docs updated; localized docs (vi-vn, fr, cs, etc.) will sync via
the normal translation pass.

* fix(installer): address review for #2326 — single source of truth, drop dead code, add tests

- Refactor formatPlatformList to use IdeManager so --list-tools and --tools
  validation see the same set of platforms. Eliminates the drift where suspended
  platforms appeared in --list-tools but were rejected at validation.
- Drop unused getValidPlatformIds export.
- Flatten redundant block scope around the throw in the --yes-without-tools
  branch (refactor leftover).
- Drop dead String() defensive cast (Commander always passes a string).
- Add Test Suite 42: 8 unit tests covering _parseToolsFlag empty/whitespace/
  unknown/typo cases plus an integration check that --list-tools output and
  --tools validation agree on the ID set.

* fix(installer): close --tools "" bypass and drop hardcoded tool count

- Replace truthy `if (options.tools)` guard with `!== undefined` in both
  upgrade and fresh-install branches. Empty string now reaches
  _parseToolsFlag and produces the specific "passed empty" error
  instead of falling through to a generic message (fresh-install) or
  being silently ignored (existing-install).
- Drop the hardcoded "42 supported tools" count from the prereqs in
  install-bmad.md so the doc doesn't drift as platform-codes.yaml
  changes.

Addresses augment / coderabbit review on #2346.
2026-04-27 23:01:23 -05:00
..
customize-bmad.md feat(core-skills): add bmad-customize — guided authoring for _bmad/custom overrides (#2289) 2026-04-20 22:14:54 -05:00
established-projects.md feat(installer): universal source support for custom module installs (#2233) 2026-04-09 18:44:40 -05:00
expand-bmad-for-your-org.md feat(core-skills): add bmad-customize — guided authoring for _bmad/custom overrides (#2289) 2026-04-20 22:14:54 -05:00
get-answers-about-bmad.md feat(installer): universal source support for custom module installs (#2233) 2026-04-09 18:44:40 -05:00
install-bmad.md fix(installer): require --tools for fresh --yes installs; remove --tools none (#2346) 2026-04-27 23:01:23 -05:00
install-custom-modules.md Fix installer custom modules http (#2344) 2026-04-27 19:58:38 -05:00
non-interactive-installation.md feat(installer): channel-based version resolution + interactive channel management (#2305) 2026-04-24 08:20:30 -05:00
project-context.md feat(installer): universal source support for custom module installs (#2233) 2026-04-09 18:44:40 -05:00
quick-fixes.md feat(installer): universal source support for custom module installs (#2233) 2026-04-09 18:44:40 -05:00
shard-large-documents.md feat(installer): universal source support for custom module installs (#2233) 2026-04-09 18:44:40 -05:00
upgrade-to-v6.md feat(installer): universal source support for custom module installs (#2233) 2026-04-09 18:44:40 -05:00