---
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 命令，用于撤销最后一次提交。
