BMAD-METHOD/docs/GUIDING-PRINCIPLES.md

92 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# BMad方法指导原则
BMad方法是一个用于AI辅助软件开发的自然语言框架。这些原则确保贡献能保持该方法的有效性。
## 核心原则
### 1. 开发代理必须精简
- **最小化开发代理的依赖**: 在IDE中工作的开发代理必须有最小的上下文开销
- **为代码节省上下文**: 每一行都很重要 - 开发代理应专注于编码,而不是文档
- **Web代理可以更大**: 在Web UI中使用的规划代理PRD编写者、架构师可以有更复杂的任务和依赖
- **小文件,按需加载**: 多个小的、专注的文件比包含许多分支的大文件更好
### 2. 自然语言优先
- **一切都是markdown**: 代理、任务、模板 - 都用纯英文编写
- **核心中没有代码**: 框架本身不包含编程代码,只有自然语言指令
- **自包含的模板**: 模板被定义为YAML文件具有结构化的部分包括元数据、工作流配置和内容生成的详细说明
### 3. 代理和任务设计
- **代理定义角色**: 每个代理都是一个具有特定专业知识的角色例如前端开发人员、API开发人员
- **任务是程序**: 代理为完成工作而遵循的逐步说明
- **模板是输出**: 带有生成说明的结构化文档
- **依赖关系很重要**: 明确声明只需要什么
## 实践指南
### 何时添加到核心
- 仅限通用的软件开发需求
- 不增加开发代理的上下文负担
- 遵循现有的代理/任务/模板模式
### 何时创建扩展包
- 软件开发之外的特定领域需求
- 非技术领域(商业、健康、教育、创意)
- 专业技术领域(游戏、基础设施、移动)
- 大量的文档或知识库
- 任何会使核心代理膨胀的东西
有关详细示例和想法,请参阅[扩展包指南](../docs/expansion-packs.md)。
### 代理设计规则
1. **Web/规划代理**: 可以有更丰富的上下文、多个任务、广泛的模板
2. **开发代理**: 最小的依赖、专注于代码生成、精简的任务集
3. **所有代理**: 清晰的角色、特定的专业知识、明确定义的能力
### 任务编写规则
1. 编写清晰的逐步程序
2. 使用markdown格式以提高可读性
3. 保持开发代理任务的专注和简洁
4. 规划任务可以更详尽
5. **倾向于多个小任务,而不是一个大的分支任务**
- 而不是一个有许多条件路径的任务
- 创建多个专注的任务供代理选择
- 这使上下文开销保持最小
6. **重用通用任务** - 不要创建新的文档创建任务
- 使用现有的`create-doc`任务
- 传递带有结构化部分的适当YAML模板
- 这保持了一致性并减少了重复
### 模板规则
模板遵循使用YAML格式的[BMad文档模板](../common/utils/bmad-doc-template.md)规范:
1. **结构**: 模板在YAML中定义具有清晰的元数据、工作流配置和章节层次结构
2. **关注点分离**: LLM的指令在`instruction`字段中,与内容分开
3. **可重用性**: 模板与代理无关,可以在不同的代理之间使用
4. **关键组件**:
- 用于元数据的`template`块id、name、version、output设置
- 用于交互模式配置的`workflow`块
- 定义文档结构的`sections`数组,带有嵌套的子部分
- 每个部分都有`id`、`title`和`instruction`字段
5. **高级功能**:
- 使用`{{variable_name}}`语法进行变量替换
- 带有`condition`字段的条件部分
- 带有`repeatable: true`的可重复部分
- 带有`owner`和`editors`字段的代理权限
- 用于指导的示例数组(从不包含在输出中)
6. **干净的输出**: YAML结构确保所有处理逻辑与生成的内容分开
## 请记住
- 力量在于自然语言的编排,而不是代码
- 开发代理编码,规划代理规划
- 保持开发代理精简以实现最大的编码效率
- 扩展包处理专业领域