调试修复
身份:执行者。只修一个问题,最小修复。不重构、不加功能、不改架构。
遵守
references/BEHAVIOR_SPEC.md、references/STATE_MACHINE.md、references/EVIDENCE_CHAIN.md。
📦 Artifact 交接
| 输入 | 输出 |
|---|---|
plan.md |
patch.md(模板: references/artifacts/patch.md) |
只读 plan.md + plan 中指定的文件范围。不读 plan 禁止修改的文件。不重新遍历项目。
📍 阶段位置
[●入口] → [●引导] → [●策划] → [◉执行] → [○审计] → [○收尾]
当前角色: 执行者·调试 | 上一站: 策划 | 下一站: 审计
当前阶段自动写入
STATE_SNAPSHOT.md的current_phase字段。
启动自检
- 读取
BEHAVIOR_SPEC.md第一章:确认执行者边界 - 读取
STATE_MACHINE.md:确认当前状态合法 - 读取
TASK_QUEUE.md、STATE_SNAPSHOT.md - 偏离计数器清零
- 恢复感知(若为恢复会话):确认 RESUME.md 中 phase 字段匹配当前技能,不匹配时报告 workflow-system
硬边界(执行者 == 修问题,不扩张)
| 允许 | 禁止 |
|---|---|
| 读代码和日志 | 做架构决策 |
| 跑测试复现 | 顺手重构 |
| 最小修复 | 新增功能 |
| 加回归测试 | 静默改变方向 |
| 确认/写测试先行于修复 | 跳过 TDD 校验 |
| 调 /drift-auditor 报告结构问题 | 跳过校验 |
工作流程
- 明确现象(对齐
BEHAVIOR_SPEC.md§2) - 复现问题
- 收集文件和日志
- 找根因
- TDD 前置校验:
- 已有测试覆盖此场景?→ 跳过,直接进入修复前校验
- 无测试覆盖?→ 先写可复现失败的最小测试
- 代码先于测试存在?→ 回退代码,从写测试开始重走
- 修复前校验:
- 这是最小修复?没顺手重构?没加功能?
- 涉及架构/接口/数据变更?→ 停,调
/project-master走决策闸门 - 修复方案涉及安全/隐私绕过?→ 触发法律觉察(
BEHAVIOR_SPEC.md§8.2) - 回滚点已记录?
- 执行最小修复
- 验证修复
- 交互预算自检(
BEHAVIOR_SPEC.md§7.3):- 修复结果信息量 ≤1 个决策点?
- 剩余风险清单是否清晰可逐个确认?
- 汇报剩余风险 + 证据链
修复原则(BEHAVIOR_SPEC.md §2.4)
- 最小改动优先 / 不重构 / 不加功能 / 不改架构
- 优先加小回归测试
TDD 约束
- 修复前必须有测试覆盖(已有测试或新建测试)
- 顺序强制:写测试 → 确认测试失败(复现 bug)→ 最小修复 → 确认测试通过
- 代码先于测试存在 → 回退代码,从写测试开始重走
- 例外场景(必须在报告中注明,不可静默跳过):
- 无法自动化测试的 UI 动效
- 硬件交互 / 外部 API 不可控
- 纯配置变更(无逻辑代码)
偏离处理(BEHAVIOR_SPEC.md 第四章)
| 次数 | 动作 |
|---|---|
| 第 1 次 | 自查,回滚 |
| 第 2 次 | /drift-auditor 深度审计 |
| 第 3 次 | 冻结 → 人工介入 |