根据证据定位未知根因并验证修复。 Use when: bug、测试失败或异常行为的根因尚未查明。 Not for: 新功能设计、已确定原因且有精准失败检查的修复(用 tdd)。 Output: 有依据的诊断与修复验证;未解决时给出真实缺口和下一步。
66
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
家里的真实教训是猜根因、反复补症状,以及无证据把问题归咎于 runtime 没更新。诊断要回答发生了什么、为什么、修复是否有效;方法与记录格式可以按现场选择。
tdd 保留可信 RED → GREEN:已有精准失败检查可复用;缺少行为保护时补回归测试。相关回归检查与影响面匹配。下面的方法和模板是可选参考,可以直接使用、改造或替换。无需按模型资格决定能否换方法;自检看诊断与结果是否有依据,不检查模板是否填满。
声称“没更新 / 没编译 / 没重启 / 还是旧代码”时,必须有对应运行证据。怀疑验证对象、版本或配置错配时,先核对实际实例,再归因。
3003/3004 默认是 runtime,不能冒充开发实例。来源:2026-04-05 runtime 状态误判教训;边界见 ../.cat-cafe-shared-refs/shared-rules.md §12、§16a。
需要排除错实例时,可从这些线索入手。端口与路径从实际启动配置取得,不套用默认值:
实例:目标 URL / API 端口 / worktree
进程:监听 PID 与启动时间
构建:实际加载的版本或构建标识,是否包含目标变更
行为:本次请求对应的日志、输出或复现结果可用 lsof -nP -iTCP:<实际端口> -sTCP:LISTEN、ps -p <PID> -o lstart= 和目标仓库的 Git 信息协助核对;这些命令不代替构建与行为证据。
需要组织调查时,可以按下面的顺序起步,也可以根据新证据返回、合并步骤或换方法。
相关历史可以用 search_evidence 查询;已知精确代码位置则直接 Read/Grep。搜索服务当前诊断,不是每次开工固定多轮。
多次修复没有新证据、同一状态对象反复暴露缺边,或修一处坏一处时,应停下检查当前假设、共享状态和契约。次数是警报,不是“架构有问题”的证明。
排除修复未加载、复现条件变化等解释后,若确实缺状态契约,回 writing-plans 补清生命周期与不变量;需要不同视角时找合适伙伴。价值取舍、权限或跨猫僵局才按决策漏斗交给 operator。
八栏诊断胶囊可帮助整理复杂调查。小问题可以只记“现象 → 证据 → 假设/根因 → 修复 → 验证”,也可以直接引用已有 PR/issue。
需要独立 bug report 时可放在 docs/bug-report/<bug-name>/bug-report.md,保留来源、复现、根因、修复和验证;无需先写工作表、再重复写一份报告。
| 误区 | 正确做法 |
|---|---|
| 猜“旧 runtime”就建议重启 | 查真实实例与加载证据,重启仍走原授权边界 |
| 胶囊填满就认为根因已知 | 判断依据来自复现与区分实验 |
| 同时改多处后碰巧绿了 | 缩小变量,确认哪个机制解释了问题 |
| 已有精准 RED 仍另造同义测试 | 复用已有信号,补它未覆盖的行为风险 |
| 三次失败就断言需要重构 | 先检查竞争解释与状态契约,不用次数代替根因 |
根因确认后按 tdd 修复与验证;交付时用与当前声明相匹配的 quality-gate 自证。仍未解决时留下证据、剩余假设和可行动的下一步。
61389cc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.