141 lines
5.8 KiB
Markdown
141 lines
5.8 KiB
Markdown
---
|
||
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 命令,用于撤销最后一次提交。
|