通用修复闭环(通用问题修复循环)
把"修东西"抽象成一个可复用的闭环,而不只是修代码。
快速上手(30 秒)
遇到"坏了"就直接描述现象,例如:「这个测试又挂了」「配置改完起不来」「构建报 module not found」。
本 skill 会按 6 步闭环处理:捕获 → 确定性扫描 →(必要时)AI 推理 → 最小修复 → 验证 → 记经验。
- 想看真实案例:references/examples.md
- 常见疑问:references/faq.md
- 验证该跑什么命令:references/validators.md
- 常见错误模式库:references/rule-patterns.md(已预置 15 条高频启发式)
何时使用
- 出现可观察的偏差信号:报错、测试失败、lint 警告、日志异常、配置不生效、构建挂、流程卡住。
- 用户描述"坏了/不对/失败了"且能提供现象或复现步骤。
- 需要可追溯、可回滚、能自我积累经验的修复。
- 触发词都是同义入口(修 bug / 修配置 / 为什么报这个错 等),无优先级之分;真正触发条件是"出现可观察偏差信号",而非你用了哪个词。详见
references/faq.mdQ1。
不用于
- 主观创作、无"现状 vs 期望偏差"的开放任务。
- 不可逆且未确认的操作(如删库、强推、生产写入、清空目录)——必须先显式询问并获得确认。
- 越权访问他人系统或凭据。
核心循环(6 步)
1. 捕获问题
- 整理"现象 / 偏差 / 信号":报错原文、复现步骤、期望行为、环境信息。
- 信息不足时只问最关键的 1–2 个问题,不要反复盘问(参考 skill-creator:别用压迫式提问)。
2. 确定性扫描定位(规则优先)
- 先跑确定性检查,能直接定位就不调 AI:
- 报错模式匹配(已知错误 → 已知根因规则库)
- 重跑测试 / lint / 类型检查
- 配置校验、依赖树、环境变量核对
- 已知反模式库(借鉴 bug-fixer 的 FP-001~FP-020 思路,自维护一份
references/rule-patterns.md) - 输出:候选根因列表 + 置信度(高 = 确定性命中,低 = 需 AI 推理)。
- 原则:确定性命中直接进步骤 4,只在低置信时进步骤 3。 这能省掉大量无谓的 AI 裸修。
3. AI 根因分析(兜底)
- 仅当确定性扫描无法定位时使用。
- 基于步骤 2 收集的信号 + 代码/上下文,反推根因。
- 用"轨迹复盘"思路(借鉴 SWE-agent trajectory):记录 假设 → 验证 → 结论,避免乱猜。
4. 施加最小修复(带边界)
- 改动能小则小;先用 git / 备份建立可回滚边界(借鉴 Aider:每次改动可 diff、可撤销)。
- 不引入与问题无关的重构。
5. 验证闭环(测试驱动)
- 修复后强制重跑验证器(测试 / lint / 规则重扫 / 手动复现),见
references/validators.md。 - 失败则回到步骤 2–4 返修,设上限(默认 3 轮)防死循环。
- 验证通过才算修好,不交付"看起来修了"。
- 修复后评估测试覆盖(eval 教训):若本次修复涉及①跨模块调用、②语义歧义、③边界/异常分支,主动建议补一条针对性测试(覆盖该调用链 / 假设 / 边界),并将其纳入验证闭环;无法用测试覆盖的点,用代码注释显式记录假设。
- 理由:eval 显示只跑"看到的那个测试"会漏掉同模块其它失败(如
mean([])),且跨模块根因(真 bug 在被调方)测试未必暴露——补测试是把"修好"变成"可验证地修好"的关键。
5.1 异常处理兜底(验证失败 / 扫描无果时)
- 验证失败:回到步骤 2–4 重新扫描、修复;累计 3 轮仍失败,停下来如实报告现状与已尝试项,绝不强行乱改或谎称"修好了"。
- 扫描无候选根因:进步骤 3(AI 推理);若 AI 仍无法确定,只问你 1–2 个最关键的澄清问题(环境 / 复现 / 近期改动),不反复盘问。
- 超出范围:遇主观创作、不可逆未确认操作(删库/强推/生产写入/清空目录)、越权访问 → 明确拒绝或先求确认(见「不用于」)。
- 回滚边界命令见
references/validators.md文末。
6. 经验记忆(自进化)
- 把"信号模式 → 根因 → 修复"写入经验库(
memory/),标注置信度。 - 下次同类信号直接命中,跳过 AI 推理(呼应 skill-evolution 的"扩散成功模式")。
- 经验库按 VFM 优先级维护:高频 × 高影响优先沉淀。
配置外置(借鉴 SWE-agent)
- 规则库、验证器命令、模型路由放在可配置位置(references/ 或配置文件),不写死在正文。
- 默认验证器可插拔:代码 → 测试/lint;配置 → 校验命令;脚本 → dry-run。
质量标准
- 必须先确定性扫描,再调 AI(避免"AI 裸修")。
- 每次修复可回滚(git / 备份)。
- 必须验证闭环,不交付未验证的修复。
- 经验必须沉淀,否则下次重复劳动。
版本演化纪律
- 当前 v1.1.0:先覆盖"确定性问题"(有信号 + 可验证),模糊问题暂缓。v1.1.0 已补齐验证器清单、预置 15 条规则启发式、FAQ 与示例,开箱即用度显著提升。
- 每个修复后复盘:哪些该进规则库、哪些该进经验库。
- 体积控制:SKILL.md 不超过 500 行,重内容放 references/(progressive disclosure)。
参考文件
references/validators.md:各问题类型的验证器/排查命令清单(开箱即用)+ 回滚边界命令references/rule-patterns.md:常见错误 → 根因规则库(预置 15 条高频启发式 + 沉淀区)references/faq.md:常见问题与触发/边界疑问references/examples.md:代码 bug / 配置错误 / 构建失败三类真实修复走查