> 阅读本文件后，根据缺陷报告的主张特征，按需加载对应策略文件执行。

## 核心理念

**你的目标是推翻缺陷报告，而不是验证它。**

每个策略的目标是寻找推翻缺陷的理由。如果找不到推翻理由，缺陷才成立（Promote）。推翻需要代码证据，不接受推测性推翻。

## 策略加载指引

根据缺陷报告的**主张特征**，选择对应的策略文件加载执行。一条缺陷可能匹配多个策略，逐个加载。任一推翻成功（Kill），无需继续。

| 策略 | 核心问题 | 加载信号 | 推翻思路 |
|------|---------|---------|---------|
| [context-gap](context-gap.md)<br>上下文缺失推翻 | detection 漏看了什么？ | • "符号未定义"——可能通过继承链/Mixin/DI 隐式引入<br>• "类型不匹配"——可能存在子类型多态/隐式转换/类型收窄<br>• "资源未释放"——可能存在 finally/defer 等隐式管理<br>• 基于 Diff 片段而非完整函数得出结论 | 搜索隐式来源（继承链、Mixin、DI、动态特性、自动资源管理），找到 → Kill |
| [defense-existing](defense-existing.md)<br>已有防御推翻 | 已有什么机制处理了？ | • 声称存在注入/XSS/路径穿越等安全漏洞<br>• 声称存在竞态条件或并发问题<br>• 声称资源未正确管理或异常未处理<br>• 项目使用了成熟框架（Spring/React/Sequelize 等） | 在 Source→Sink 路径上搜索防御机制（输入验证、参数化查询、输出编码、锁、框架内置防护），找到有效防御 → Kill |
| [behavior-unreachable](behavior-unreachable.md)<br>行为不可达推翻 | 真的能触发吗？ | • 描述了触发路径，但路径上可能有条件阻断<br>• 假设了生产环境，但代码可能仅在 dev/test 运行<br>• 假设了多用户并发，但实际是单线程/管理后台<br>• 未考虑调用者已完成前置校验 | 追踪完整执行路径，检查条件阻断、环境限制、调用者校验、业务场景限制，所有路径不可达 → Kill |
| [premise-challenge](premise-challenge.md)<br>影响前提推翻 | 影响前提成立吗？ | • 假设数据不可丢失——但可能是缓存/临时/可重建数据<br>• 假设一致性关键——但业务可能接受最终一致性<br>• 假设错误不可接受——但操作可能是幂等或可重试的<br>• 假设数据泄露有影响——但数据本身是非敏感的 | 验证影响假设是否在当前业务场景下成立，影响不成立 → Kill |
| [intent-by-design](intent-by-design.md)<br>设计意图推翻 | 这是故意的吗？ | • 附近有压制标记（@ts-ignore/@SuppressWarnings/eslint-disable）<br>• 命名暗示已知行为（unsafe_\*/raw_\*/unvalidated_\*）<br>• API 签名表达了意图（throws/Optional/@Nullable）<br>• 值是配置常量或有名常量 | 搜索意图标记（压制注解、命名约定、API 签名、注释/TODO），找到明确设计意图 → Kill |
| [evidence-insufficient](evidence-insufficient.md)<br>证据不足推翻 | 证据链够完整吗？ | • 推理含"可能/也许/理论上"等推测性表述<br>• "可能导致X"但未展示完整触发路径或数据流<br>• 基于模式匹配得出结论，未做数据流分析<br>• 假设了前提（用户可控输入、并发竞争）但未验证 | 审查推理链每步是否有代码证据支持，用工具尝试补充断裂证据，无法补充 → Kill |
