用途:为已安装的 BMad 技能编写和更新定制覆盖(override),把用户的自然语言意图翻译成正确放置的 TOML 文件,写入 {project-root}/_bmad/custom/。适用于用户提出“customize bmad”“override a skill”“change agent behavior”等需求。
主要能力:v1 范围包括按技能的 [agent] 覆盖(bmad-agent-<role>.toml / .user.toml)和按技能的 [workflow] 覆盖(bmad-<workflow>.toml / .user.toml)。流程为发现、路由、编写、写入、验证。若目标 customize.toml 未暴露用户想要的字段,会明确说明,不虚构字段。
使用方式:先做预检——无 {project-root}/_bmad/ 表示未安装 BMad,停止;缺少 {project-root}/_bmad/scripts/resolve_customization.py 仍可继续,但验证回退为手动合并。发现阶段运行:uv run {skill-root}/scripts/list_customizable_skills.py --project-root {project-root},可用 --extra-root <path> 指定额外安装位置。随后读取目标 customize.toml 判断 surface,编写稀疏覆盖(只写被改字段),选择团队({skill-name}.toml,提交)或用户({skill-name}.user.toml,gitignore)放置,展示完整 TOML 与 diff,等待明确确认后写入。验证运行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill <install-path> --project-root {project-root} --key <agent-or-workflow>。
合并语义:标量(icon、role、*_template、on_complete)覆盖优先;追加数组(persistent_facts、activation_steps_prepend/append、principles)按顺序追加;带 code 或 id 键的表数组按键替换或追加。
限制:中央配置 {project-root}/_bmad/custom/config.toml 不在范围内,需参考 How to Customize BMad 指南;customize.toml 未暴露的步骤逻辑、顺序等无法覆盖,可考虑 activation_steps_prepend/append、persistent_facts 近似,或用 bmad-builder 创建自定义技能;无 customize.toml 的技能不可定制。验证未生效时通常因字段名、合并模式或作用域错误,需回到编写步骤修正。