这是一个系统化根因调试技能,适用于错误、崩溃、回归、失败测试、“以前能用现在不行”以及偶发/间歇性行为。它不提供调试方法论,而是纠正调试中的错误惯性,并指向无法直接推导的经验资料。
主要约束与用法:修改前必须说出根因,格式为文件:函数:行,并附证据;“状态问题”不算根因。诊断只有在存在一个可失败、确定性、快速、可被代理运行且已执行的命令时才结束,并需说明看到了其输出。未运行并查看结果前不得声称已修复;“应该能用”不算证据。对于 UI、原生或生成产物的缺陷,仅编译通过不够,要打开查看,生成输出需读其内容而非源改动。无法在此运行时要明确说明并交接确切的检查步骤。
声称修复前,需按特征搜索同类问题,避免只修一处而遗留 N-1 处。原因不明显时可查阅经验资料:skills/engineering/debug/lib/diagnosis.md,包含已知缺陷类型(监听器持有生命周期、O(N²) 累积、schema 类别泄漏,以及 CLI 典型问题:PATH 漂移、stdout/stderr 契约、管道背压、冷启动)、按缺陷类型优先插桩、带工作树安全的二分查找,以及三次失败假设的交接模板。先按症状/缺陷类型从宿主项目配置的学习路径回忆,再作假设。新的可复用缺陷类型按 lib/learning-format.md 生成候选,命中则输出一行“再次出现”候选。此处不写入或更新学习存储,持久化归宿主/项目负责。资料未提供收费、平台支持等更多信息。