BMAD-METHOD/tools/installer/ide
jheyworth 75e1fa2323 fix(installer): detect personas via customize.toml [agent] section
Per maintainer review on PR #2324: the `-agent-` naming convention isn't
a load-bearing contract anywhere else in the codebase, and the bmad-tea
allowlist already shows it starting to break. A future persona that
doesn't follow the convention would silently disappear from the Copilot
Custom Agents picker.

Replaces the name-based filter with a behavior-based signal: read each
skill's source `customize.toml` and check for an `[agent]` section. This
is the actual configuration source of truth — every BMAD persona is
configured under `[agent]`, every workflow under `[workflow]`, every
standalone skill has no customize.toml.

Verified on disk against the full installed manifest (114 skills):

- 20 personas detected — exactly the description-confirmed count across
  BMM, CIS, GDS, WDS, TEA. bmad-tea is caught natively (no allowlist).
- 94 workflows/tools correctly excluded.
- `bmad-agent-builder` (meta-skill that builds agent skills) is now
  CORRECTLY excluded — its canonical id contains `-agent-` but its
  customize.toml has [workflow], not [agent], because it isn't a
  persona itself. The previous naming-based filter was including it in
  the agents picker, which would have been a silent UX bug.

`NON_CONVENTIONAL_AGENT_IDS` constant is removed entirely — the toml
signal subsumes it.

Tests: extends Suite 17 with a 4-skill fixture that covers persona +
non-conventional persona + workflow + meta-skill cases. 388 tests pass.

Refs #2267

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 08:00:01 +01:00
..
shared feat(installer): expand to 42 platforms with shared target_dir coordination (#2313) 2026-04-25 21:14:00 -05:00
_config-driven.js fix(installer): detect personas via customize.toml [agent] section 2026-04-29 08:00:01 +01:00
manager.js feat(installer): expand to 42 platforms with shared target_dir coordination (#2313) 2026-04-25 21:14:00 -05:00
platform-codes.js fix(installer): require --tools for fresh --yes installs; remove --tools none (#2346) 2026-04-27 23:01:23 -05:00
platform-codes.yaml fix(installer): detect personas via customize.toml [agent] section 2026-04-29 08:00:01 +01:00