Skip to content

Bugfix Specs 模拟有经验开发者处理 Bug 的方式:识别根本原因、明确需要改变的内容,并显式保留不应改变的行为。通过 bugfix.md 记录当前(错误)行为、预期(正确)行为和不变行为,Kiro 生成带属性测试的实现任务,同时验证修复效果和回归预防。适合关键路径 Bug、多次修复失败的历史 Bug 或需要合规留档的场景。

什么是 Bugfix Specs?

Bugfix Specs 模拟有经验的开发者处理 Bug 的方式:识别根本原因,明确哪些内容需要改变,并显式保留哪些不应改变。通过结构化工作流,Bugfix Specs 引导你完成根本原因分析、修复设计和回归预防,确保手术式、可靠的修复。

核心优势

精确修复:明确约束确保只做必要改动

回归预防:不变行为被文档化并通过测试验证

留档记录:完整记录 Bug、修复方案和决策依据,供后续参考

可靠性:结构化工作流避免临时修复的常见陷阱

适用场景

Bugfix Specs 最适合:

  • 需要根本原因分析的复杂 Bug
  • 关键代码路径上代价高昂的 Bug
  • 需要合规或团队知识留存文档的 Bug
  • 之前修复尝试导致回归的情况

工作原理

Bugfix Specs 遵循与 Feature Specs 相同的三阶段工作流(需求 → 设计 → 任务),但内容专为精确 Bug 修复量身定制。

第一阶段:Bug 分析

创建 bugfix.md,记录以下三类行为:

当前行为(缺陷)

WHEN [触发条件] THEN 系统 [错误行为]

预期行为(正确)

WHEN [触发条件] THEN 系统 SHALL [正确行为]

不变行为(回归预防)

WHEN [触发条件] THEN 系统 SHALL CONTINUE TO [现有行为]

这种显式结构确保 Kiro 不只知道哪里坏了,还清楚哪些必须继续正常工作。

第二阶段:设计

Kiro 探索代码库,定位问题根源,并生成 design.md,包含:

  • 根本原因分析
  • 建议的修复方案
  • 需要测试的属性
    • 当前实现产生错误行为(验证 Bug 确实存在)
    • 修复后实现产生正确行为(验证修复有效)
    • 不变实现继续正常工作(防止回归)

第三阶段:任务

生成带属性测试(PBTs)的实现任务,验证以下三点:

  • Bug 可以被复现
  • Bug 已被修复
  • 没有引入回归

快速开始

  1. 在聊天框中选择 Spec
  2. 描述 Bug,包括:
    • Bug 触发的时机(复现步骤)
    • 应有的正确行为
    • 任何约束(不应被修改的代码)
  3. Kiro 询问意图时选择 Bugfix
  4. 跟随分析、设计、实现三个阶段完成修复

进一步学习

常见问题

Q:Bugfix Spec 和直接在聊天里修复 Bug 有什么区别?

直接对话修复适合简单、已充分理解的问题(如拼写错误、单行逻辑修复)。Bugfix Spec 适合根本原因不明显、之前修复失败过、或位于关键路径需要文档留存的 Bug。结构化工作流强制进行根本原因分析,并通过属性测试提供更强的正确性保证。

Q:bugfix.md 中的"不变行为"是必须填写的吗?

强烈建议填写。"不变行为"是 Bugfix Spec 的核心价值所在——Kiro 会据此生成属性测试,确保修复不会破坏现有功能。如果跳过这部分,就失去了系统性防回归的能力。

Q:根本原因分析发现需要大量重构,该怎么办?

如果分析发现修复需要引入重大新功能,建议为新工作单独创建 Feature Spec,让 Bugfix Spec 聚焦在最小必要修复上。这样可以保持修复的精确性,同时通过独立 Spec 管理更大范围的改动。