oil-bug-fix 是一个面向缺陷修复的开发技能,核心目标是处理“原因还不清楚”的缺陷:先复现,再找到能解释全部现象的根因,在坏数据产生的地方修复;判断是个例还是普遍问题,普遍问题全仓排查,并提议自动检查或审查重点防止再犯。
用途:当用户报告报错、崩溃、结果不对、偶发失败或“以前好好的现在坏了”且原因不明时使用。原因和改法已经明确的小修补(例如“文案写错了,改成某某”)不走本流程,应交给 oil-plan;审查已写完的修复交给 oil-code-review。
主要能力:
- 复现:先写一个能复现问题的测试并确认失败;写不了测试时用可重复运行的命令或明确的手动步骤代替。
- 根因排查:提供多种方法,包括在好版本和坏版本之间缩小到具体提交(提交多时用 git bisect,在临时 worktree 里跑)、从错误输出往回追并加临时日志、用能正常工作的对照逐项缩小差异。同时满足完整因果链和解释所有观察现象才算找到根因。
- 个例还是普遍问题:问“为什么会写错”,判断是手滑/漏分支还是某种写法或误解。普遍问题在全仓搜索命中位置并逐个确认。
- 在源头修:在找到的位置做最小改动,禁止在报错处加空值判断、try/catch、重试、sleep、加大超时等挡症状的做法,也禁止只对报告输入写特判、放宽或删除失败测试。
- 防再犯:个例靠回归测试;普遍问题提议一种防线,优先写成项目内自动检查(交给 oil-govern),识别不了则在 AGENTS.md 或 REVIEW.md 加审查重点。
- 汇报:按根因、因果链、引入时间、个例/普遍、改了什么、验证、防再犯、没验证的部分组织;提交说明沿用同样内容。
使用方式:按工作流逐步执行,诊断期间不改产品代码,只加复现测试和临时日志,交付前删除临时日志。修改常驻规范(新增自动检查、改 AGENTS.md 或 REVIEW.md)前先征得用户同意。修复要改到高风险目录、对外接口或数据格式时,先告知用户并确认。出现连续两三个猜测被推翻、修了两轮测试仍失败、对话堆满矛盾猜测时立即止损,整理已确认事实、已排除猜测和复现方式,可借助 oil-delegate 派发两路只读分析(未安装则开两个全新只读子 Agent),并确认 git status 无变化。
适用场景:原因不明的缺陷定位与修复;偶发问题;跨版本回归;需要判断是否普遍问题并做全仓排查的情况。
限制:不适用于原因和改法已明确的小修补;诊断期间不得改产品代码;根因未找到前不下结论、不宣布修好;临时日志必须删除;新增常驻规范需用户同意;高风险目录、对外接口或数据格式的修改需先确认。下游衔接包括进入 oil-plan 写方案、oil-code-review 审查、oil-govern 编写自动检查等。