layered-defect-hunt 是一个用于系统性多轮缺陷排查的技能,核心原则是每轮只用一个视角。资料指出,单次“找 bug”扫描会锚定在第一类缺陷(通常是正确性)上,而并发、资源、安全类问题在此时不可见,因此该技能用固定的视角分类法,每次只对代码做一次全量专注阅读。
用途:在正确性、边界/极值、并发、错误处理、资源泄漏、安全六个维度上分层排查缺陷。顺序固定:正确性最先(它最响亮、会带偏后续判断),安全最后(依赖前面轮次建立的结构理解)。
主要能力:六种视角轮次,每轮对应一个问题,例如正确性问“正常路径是否算出正确结果”,并发问“两件事同时运行会不会破坏状态”,安全问“不可信输入能否造成危害”。每个候选缺陷必须先确认,给出具体触发条件(输入、交错执行或跟踪轨迹)后才能进入台账;未经证实的发现会污染台账并削弱可信度。停止条件是收敛,而非固定轮数:循环视角周期,直到完整一轮(六个视角)新增零个已确认缺陷;MAX_CYCLES = 4 只是逃生出口,命中说明目标过大或变动过频,应拆分后再查。
使用方式:先界定目标(文件、模块或 diff;若是 diff,还要检查周边调用方,因为缺陷常藏在接缝处);按顺序运行六轮视角,各做一次全量阅读;确认每个候选并记录;检查是否收敛;产出 bug-findings.md 去重台账。排查过程中不得编辑代码,查找与修复是分开的阶段,中途修改会改变行号与行为,令该轮失效。
输出规范:bug-findings.md 每行一个已确认缺陷,去重(同一根因跨视角只记一行,并列出涉及的视角),包含 ID、视角、严重程度、位置、缺陷、触发(证据)、建议修复,并以收敛说明结尾,记录运行周期数、是否收敛以及跳过的视角及原因。
适用场景:需要对文件、模块或 diff 进行系统性多轮缺陷排查时使用。
限制:资料未提供安装方式、平台支持、价格或运行环境信息;MAX_CYCLES = 4 不是目标值;不应用于单个已知缺陷的根因调查(对应 bug-hunt)、范围更小的 diff 正确性与清理审查(对应 review)或计划与设计的对抗性压力测试(对应 red-team)。该技能不修复代码,只产出去重后的缺陷台账。