## 噪音过滤 (The Filter)

**目标**：在进行深入分析前，直接剔除无效噪音。

### 过滤类别

如果缺陷属于以下类别，**立即标记为[过滤]并移除**：

#### 1. 代码风格与规范

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | "使用 camelCase 命名而非 snake_case" |
| ✅ 过滤 | "缩进应使用 2 空格而非 4 空格" |
| ✅ 过滤 | "单行长度超过 80 字符" |
| ✅ 过滤 | "缺少空行分隔" |
| ❌ 不过滤 | "同名变量在不同作用域导致符号冲突"（这是真实 bug） |
| ❌ 不过滤 | "import 的模块名拼写错误"（这是依赖缺失） |

#### 2. 非生产环境代码

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | `test/` 目录下的测试断言风格问题 |
| ✅ 过滤 | `mock/` 目录下的模拟数据问题 |
| ✅ 过滤 | `example/` 目录下的示例代码问题 |
| ❌ 不过滤 | 测试文件中的安全漏洞（硬编码密码、密钥） |
| ❌ 不过滤 | 测试文件中会导致 CI 构建失败的问题 |

#### 3. 通用/理论性建议

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | "此处可以使用策略模式优化" |
| ✅ 过滤 | "建议引入缓存层提升性能"（非瓶颈路径） |
| ✅ 过滤 | "代码可读性可以提升" |
| ❌ 不过滤 | "热点路径的 O(n²) 算法在数据量增长时会严重影响性能" |
| ❌ 不过滤 | "缺少必要的错误处理导致可能的未捕获异常" |

#### 4. 文档与注释

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | "缺少 Javadoc 注释" |
| ✅ 过滤 | "TODO 未完成" |
| ✅ 过滤 | "注释中的拼写错误（不影响运行）" |
| ❌ 不过滤 | "关键业务逻辑缺少错误处理的 TODO"（如果 TODO 暗示未完成的安全处理） |

#### 5. 通用扫描器式安全提示

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | "建议添加 CSP 头"（无具体攻击场景） |
| ✅ 过滤 | "建议启用 HSTS"（无具体攻击场景） |
| ❌ 不过滤 | "存在可利用的 XSS 漏洞（有具体攻击路径）" |

#### 6. 低影响输入验证问题

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | "用户名字段缺少最大长度限制"（不会导致崩溃/注入/数据损坏） |
| ✅ 过滤 | "日期格式未校验（有默认值兜底）" |
| ❌ 不过滤 | "SQL 查询参数未校验导致注入" |
| ❌ 不过滤 | "文件路径参数未校验导致路径穿越" |

#### 7. 低影响日志问题

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | "日志级别使用不当（debug 应为 info）" |
| ✅ 过滤 | "缺少方法入口日志" |
| ❌ 不过滤 | "敏感数据（密码/Token）写入日志" |
| ❌ 不过滤 | "错误日志中包含完整的用户输入（可能导致日志注入）" |

#### 8. 非实锤性推测问题

| 判定 | 示例 |
|------|------|
| ✅ 过滤 | "理论上可能存在竞态条件"（无具体触发路径） |
| ✅ 过滤 | "这个参数可能是 null"（无证据表明调用者会传 null） |
| ❌ 不过滤 | "高并发场景下此读-改-写序列会导致数据不一致"（有具体触发路径和复现条件） |

**关键判定规则**：**必须有明确触发路径和复现条件**，否则过滤。描述中包含"可能"、"也许"、"潜在"、"理论上"等不确定性词汇的问题，除非同时提供了具体的触发路径，否则一律过滤。

> **注意**：缺陷类型特有的误报模式（如框架自动管理事务、ORM 参数化查询等）需要工具调用才能判断，不在本策略处理。这些模式由 validation 阶段的各推翻策略负责检查。
