Files
octopus-workflow/core/checklists/bugfix.md
T

5.6 KiB
Raw Blame History

Core 中立版(Increment 6a 改写,原 deferHard verbatim)。编号与条目结构严格不变(C-2 不变量);实例术语按 core/adapters/TERMINOLOGY.md 绑定。

Bugfix 检查清单

开发者在修复 Bug 时自检使用。确保修复的是根因而非症状,且不引入新问题。

维度命名空间(dimension namespace: 本清单中的维度代码(如 TST/BEH/GATE/REG)是**清单局部(checklist-local)**标识符,仅在本文档内唯一;其他清单可能对相同字母串绑定不同概念(如 code-review.md 的 TST=Test Quality、verification.md 的 TST=Test Suite Completeness、port.md 的 TST=Test Porting)。跨清单引用时必须带清单限定(如 code-review.md TST 5.8),不得使用裸代码。


使用说明

  1. Phase 1-4 每阶段结束时检查对应项;
  2. Phase 5 完成后检查全部项;
  3. 所有项通过后方可提交。

1. 复现确认(REPRO — Reproduction

# 检查项 通过 不通过 备注
1.1 Bug 可以稳定复现(有明确的复现步骤)
1.2 实际行为与 Bug 报告一致
1.3 如果无法复现,已向用户反馈原因并等待补充信息
1.4 已捕获环境快照(ps auxlsof -p PID、日志文件大小、进程树 — pipeline 模式强制,standalone 建议)
1.5 复现置信度评级 1–5(≥3 方可进入 pipeline 设计阶段;<3 → abort
1.6 已检索 Gitea wiki {slug}/repro-notes / {slug}/bugfix-report 中是否存在同类症状的先前调查报告,复用已知根因而非重新推导(via wiki 读写 API(见 TERMINOLOGY

2. 根因分析(ROOT — Root Cause

# 检查项 通过 不通过 备注
2.1 根因已定位到具体代码行(非模块级别)
2.2 根因是底层逻辑缺陷,非表面症状
2.3 如果根因来自数据/环境/配置,已注明具体差异

3. 回归测试(TEST — Regression Test

# 检查项 通过 不通过 备注
3.1 已编写针对性的回归测试
3.2 回归测试在修复前 FAIL(确认覆盖了 Bug)
3.3 回归测试在修复后 PASS
3.4 如果无法编写自动化测试,已标注 [flaky] 并说明原因

4. 修复质量(FIX — Fix Quality

# 检查项 通过 不通过 备注
4.1 修复是最小变更——只改了必须改的部分
4.2 未混入重构、风格调整或不相关的"顺手改"
4.3 修复的是根因而非症状
4.4 同一模块的已有测试全部通过(修复未引入退化)
4.5 Commit 消息使用常规提交前缀(fix: / refactor: / docs:)并位于 [{chunk-id}][{iteration}] 之后

5. 全面回归(REG — Full Regression

# 检查项 通过 不通过 备注
5.1 bun run test:parallel 全部通过(零失败)
5.2 bun typecheck 无错误
5.3 bun lint 无错误
5.4 如果有集成/端到端测试,已运行并全部通过
5.5 移交评审前已按 core/checklists/code-review.md 的 A11Y(§8)与 PERF(§4)节自检本次变更,并对全部改动文件跑 bunx prettier --checkpre-commit 钩子只扫提交时的 staged 文件,CR-COMMIT 把提交推迟到评审收敛后,移交前的工作区漂移没有任何钩子拦截——出处:sticky-diff-error 复盘 action item 2

6. 闭环(CLOSURE — Fix Linked to Commit

防止"幽灵 artifact"bugfix 报告已写出但代码修复从未提交/合并,导致 bug 复发并重复调查。参见 core/skills/retrospective/SKILL.md 了解该规则的 复盘出处。

# 检查项 通过 不通过 备注
6.1 standalone bugfix 的 {slug}/bugfix-report 必须在同一周期内有已合并提交背书;若仅调查未应用修复,必须显式标注 "investigation only — no fix applied"
6.2 若本次修复取代了先前的同类 {slug}/bugfix-report,已在该先前报告顶部标注 SUPERSEDED 并指向新 PR