BMAD-METHOD/docs/GUIDING-PRINCIPLES.md

3.9 KiB
Raw Blame History

BMad方法指导原则

BMad方法是一个用于AI辅助软件开发的自然语言框架。这些原则确保贡献能保持该方法的有效性。

核心原则

1. 开发代理必须精简

  • 最小化开发代理的依赖: 在IDE中工作的开发代理必须有最小的上下文开销
  • 为代码节省上下文: 每一行都很重要 - 开发代理应专注于编码,而不是文档
  • Web代理可以更大: 在Web UI中使用的规划代理PRD编写者、架构师可以有更复杂的任务和依赖
  • 小文件,按需加载: 多个小的、专注的文件比包含许多分支的大文件更好

2. 自然语言优先

  • 一切都是markdown: 代理、任务、模板 - 都用纯英文编写
  • 核心中没有代码: 框架本身不包含编程代码,只有自然语言指令
  • 自包含的模板: 模板被定义为YAML文件具有结构化的部分包括元数据、工作流配置和内容生成的详细说明

3. 代理和任务设计

  • 代理定义角色: 每个代理都是一个具有特定专业知识的角色例如前端开发人员、API开发人员
  • 任务是程序: 代理为完成工作而遵循的逐步说明
  • 模板是输出: 带有生成说明的结构化文档
  • 依赖关系很重要: 明确声明只需要什么

实践指南

何时添加到核心

  • 仅限通用的软件开发需求
  • 不增加开发代理的上下文负担
  • 遵循现有的代理/任务/模板模式

何时创建扩展包

  • 软件开发之外的特定领域需求
  • 非技术领域(商业、健康、教育、创意)
  • 专业技术领域(游戏、基础设施、移动)
  • 大量的文档或知识库
  • 任何会使核心代理膨胀的东西

有关详细示例和想法,请参阅扩展包指南

代理设计规则

  1. Web/规划代理: 可以有更丰富的上下文、多个任务、广泛的模板
  2. 开发代理: 最小的依赖、专注于代码生成、精简的任务集
  3. 所有代理: 清晰的角色、特定的专业知识、明确定义的能力

任务编写规则

  1. 编写清晰的逐步程序
  2. 使用markdown格式以提高可读性
  3. 保持开发代理任务的专注和简洁
  4. 规划任务可以更详尽
  5. 倾向于多个小任务,而不是一个大的分支任务
    • 而不是一个有许多条件路径的任务
    • 创建多个专注的任务供代理选择
    • 这使上下文开销保持最小
  6. 重用通用任务 - 不要创建新的文档创建任务
    • 使用现有的create-doc任务
    • 传递带有结构化部分的适当YAML模板
    • 这保持了一致性并减少了重复

模板规则

模板遵循使用YAML格式的BMad文档模板规范:

  1. 结构: 模板在YAML中定义具有清晰的元数据、工作流配置和章节层次结构
  2. 关注点分离: LLM的指令在instruction字段中,与内容分开
  3. 可重用性: 模板与代理无关,可以在不同的代理之间使用
  4. 关键组件:
    • 用于元数据的templateid、name、version、output设置
    • 用于交互模式配置的workflow
    • 定义文档结构的sections数组,带有嵌套的子部分
    • 每个部分都有idtitleinstruction字段
  5. 高级功能:
    • 使用{{variable_name}}语法进行变量替换
    • 带有condition字段的条件部分
    • 带有repeatable: true的可重复部分
    • 带有ownereditors字段的代理权限
    • 用于指导的示例数组(从不包含在输出中)
  6. 干净的输出: YAML结构确保所有处理逻辑与生成的内容分开

请记住

  • 力量在于自然语言的编排,而不是代码
  • 开发代理编码,规划代理规划
  • 保持开发代理精简以实现最大的编码效率
  • 扩展包处理专业领域