Skip to content

Installer should deploy custom/*.toml from custom-source modules to _bmad/custom/ #2562

Description

@sirmax2

Summary

When installing a custom module via --custom-source ./my-module, the installer deploys skills from the module's skills/ directory but ignores the custom/ directory. Team TOML overrides (agent/workflow customizations) are not copied to _bmad/custom/.

Current behavior

npx bmad-method install --custom-source ./ea-sdlc

Deploys: ea-sdlc/skills/* to IDE skill directories (OK)
Does NOT deploy: ea-sdlc/custom/*.toml to _bmad/custom/ (missing)

Expected behavior

If the custom-source module contains a custom/ directory with .toml files, the installer should copy them to _bmad/custom/ (without overwriting .user.toml files).

Workaround

Custom modules must ship their own post-install script that copies TOML overrides manually. For example, ea-sdlc has a deployTomlOverrides() function in its setup script for this purpose.

Why it matters

The three-layer customization system ({skill-root}/customize.toml -> _bmad/custom/{name}.toml -> .user.toml) works correctly at runtime via resolve_customization.py. But there is no built-in mechanism to populate the team layer from a custom module - this is a gap in the installer's responsibility.

Modules that need to override agent behavior (activation_steps_prepend, persistent_facts, finalize_reviewers, etc.) currently have no way to deploy those overrides without a separate post-install step.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions