其他
已发现一个漏洞或坏模式后…
当你已经找到一个漏洞、逻辑错误或坏模式,需要在整个代码库中定位同一根因的其他实例时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 48/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 53/100 ×0.15
适用场景
已发现一个漏洞或坏模式后,如何在代码库中通用
解决思路
- 理解原始问题:提取根因——代码为什么错,而不是它做了什么——并列举变体可能隐藏的方向:相关标识符、同一错误的其他表现形式、数据类型边界情况(参考 references/root-cause.md)
- 创建精确匹配:写一个只匹配已知实例的模式并确认它能命中。如果模式什么都匹配不到,说明你误解了这个 bug,之后所有基于它的搜索都会以错误的代码为基准进行校准
- 逐步泛化:从精确匹配向模式家族攀升,每次只改动一个元素,每次改动后运行并阅读所有匹配结果。当超过一半的匹配是噪声时停止(参考 references/searching.md——抽象阶梯、工具选择、误报过滤)
- 分诊:判断哪些候选是真实问题,并附上严重程度说明(参考 references/triage.md)
- 撰写报告:包括失败的模式以及一条防止回归的 CI 规则(参考 references/reporting.md)
- 大规模或根因表现多时,使用插件 /variant-analysis:variants 以并行子代理运行这五个步骤——每个扩展轴一个,循环直到扫描不再发现新内容;搜索范围窄或想对每次泛化有掌控时,直接手动执行这些步骤
- 避免常见失败:不要只搜索原始 bug 所在的模块;不要只搜索一个属性而漏掉其周围的家族;不要只追一种漏洞类别;不要只做正常路径测试而不试 null、空值和边界情况;不要一次抽象多个元素,否则无法将噪声归因到某一个元素
适用边界 · 注意事项
- 尚无已知 bug 时的初始漏洞发现——应使用 audit-context-building 或领域特定的审计
- 没有已知模式可搜索的一般代码审查
- 撰写修复建议——应使用 issue-writer
- 理解不熟悉的代码——应先用 audit-context-building