--- title: "快速修复" description: 如何进行快速修复和临时更改 sidebar: order: 5 --- 直接使用 **DEV 智能体**进行 bug 修复、重构或小型针对性更改,这些操作不需要完整的 BMad Method 或 Quick Flow。 ## 何时使用此方法 - 原因明确且已知的 bug 修复 - 包含在少数文件中的小型重构(重命名、提取、重组) - 次要功能调整或配置更改 - 探索性工作,以了解不熟悉的代码库 :::note[前置条件] - 已安装 BMad Method(`npx bmad-method install`) - AI 驱动的 IDE(Claude Code、Cursor 或类似工具) ::: ## 选择你的方法 | 情况 | 智能体 | 原因 | | --- | --- | --- | | 修复特定 bug 或进行小型、范围明确的更改 | **DEV agent** | 直接进入实现,无需规划开销 | | 更改涉及多个文件,或希望先有书面计划 | **Quick Flow Solo Dev** | 在实现前创建 quick-spec,使智能体与你的标准保持一致 | 如果不确定,请从 DEV 智能体开始。如果更改范围扩大,你始终可以升级到 Quick Flow。 ## 步骤 ### 1. 加载 DEV 智能体 在 AI IDE 中启动一个**新的聊天**,并使用斜杠命令加载 DEV 智能体: ```text /bmad-agent-bmm-dev ``` 这会将智能体的角色和能力加载到会话中。如果你决定需要 Quick Flow,请在新的聊天中加载 **Quick Flow Solo Dev** 智能体: ```text /bmad-agent-bmm-quick-flow-solo-dev ``` 加载 Solo Dev 智能体后,描述你的更改并要求它创建一个 **quick-spec**。智能体会起草一个轻量级规范,捕获你想要更改的内容和方式。批准 quick-spec 后,告诉智能体开始 **Quick Flow 开发周期**——它将实现更改、运行测试并执行自我审查,所有这些都由你刚刚批准的规范指导。 :::tip[新聊天] 加载智能体时始终启动新的聊天会话。重用之前工作流的会话可能导致上下文冲突。 ::: ### 2. 描述更改 用通俗语言告诉智能体你需要什么。具体说明问题,如果你知道相关代码的位置,也请说明。 :::note[示例提示词] **Bug 修复** -- "修复允许空密码的登录验证 bug。验证逻辑位于 `src/auth/validate.ts`。" **重构** -- "重构 UserService 以使用 async/await 而不是回调。" **配置更改** -- "更新 CI 流水线以在运行之间缓存 node_modules。" **依赖更新** -- "将 express 依赖升级到最新的 v5 版本并修复任何破坏性更改。" ::: 你不需要提供每个细节。智能体会读取相关的源文件,并在需要时提出澄清问题。 ### 3. 让智能体工作 智能体将: - 读取并分析相关的源文件 - 提出解决方案并解释其推理 - 在受影响的文件中实现更改 - 如果存在测试套件,则运行项目的测试套件 如果你的项目有测试,智能体会在进行更改后自动运行它们,并迭代直到测试通过。对于没有测试套件的项目,请手动验证更改(运行应用、访问端点、检查输出)。 ### 4. 审查和验证 在提交之前,审查更改内容: - 通读 diff 以确认更改符合你的意图 - 自己运行应用程序或测试以再次检查 - 如果看起来有问题,告诉智能体需要修复什么——它可以在同一会话中迭代 满意后,使用描述修复的清晰消息提交更改。 :::caution[如果出现问题] 如果提交的更改导致意外问题,请使用 `git revert HEAD` 干净地撤销最后一次提交。然后启动与 DEV 智能体的新聊天以尝试不同的方法。 ::: ## 学习你的代码库 DEV 智能体也适用于探索不熟悉的代码。在新的聊天中加载它并提出问题: :::note[示例提示词] "解释此代码库中的身份验证系统是如何工作的。" "向我展示 API 层中的错误处理发生在哪里。" "`ProcessOrder` 函数的作用是什么,什么调用了它?" ::: 使用智能体了解你的项目,理解组件如何连接,并在进行更改之前探索不熟悉的区域。 ## 你将获得 - 已应用修复或重构的修改后的源文件 - 通过的测试(如果你的项目有测试套件) - 描述更改的干净提交 不会生成规划产物——这就是这种方法的意义所在。 ## 何时升级到正式规划 在以下情况下考虑使用 [Quick Flow](../explanation/quick-flow_cn.md) 或完整的 BMad Method: - 更改影响多个系统或需要在许多文件中进行协调更新 - 你不确定范围,需要规范来理清思路 - 修复在工作过程中变得越来越复杂 - 你需要为团队记录文档或架构决策 --- ## 术语说明 - **agent**:智能体。在人工智能与编程文档中,指具备自主决策或执行能力的单元。 - **quick-spec**:快速规范。一种轻量级的规范文档,用于快速捕获和描述更改的内容和方式。 - **Quick Flow**:快速流程。BMad Method 中的一种工作流程,用于快速实现小型更改。 - **refactoring**:重构。在不改变代码外部行为的情况下改进其内部结构的过程。 - **breaking changes**:破坏性更改。可能导致现有代码或功能不再正常工作的更改。 - **test suite**:测试套件。一组用于验证软件功能的测试用例集合。 - **CI pipeline**:CI 流水线。持续集成流水线,用于自动化构建、测试和部署代码。 - **async/await**:异步编程语法。JavaScript/TypeScript 中用于处理异步操作的语法糖。 - **callbacks**:回调函数。作为参数传递给其他函数并在适当时候被调用的函数。 - **endpoint**:端点。API 中可访问的特定 URL 路径。 - **diff**:差异。文件或代码更改前后的对比。 - **commit**:提交。将更改保存到版本控制系统的操作。 - **git revert HEAD**:Git 命令,用于撤销最后一次提交。