# Issue Classification 问题分类和严重程度标准。 ## When to Use | Phase | Usage | Section | |-------|-------|---------| | action-deep-review | 确定问题严重程度 | Severity Levels | | action-generate-report | 问题分类展示 | Category Mapping | --- ## Severity Levels ### Critical (严重) 🔴 **定义**: 必须在合并前修复的阻塞性问题 **标准**: - 安全漏洞 (可被利用) - 数据损坏或丢失风险 - 系统崩溃风险 - 生产环境重大故障 **示例**: - SQL/XSS/命令注入 - 硬编码密钥泄露 - 未捕获的异常导致崩溃 - 数据库事务未正确处理 **响应**: 必须立即修复,阻塞合并 --- ### High (高) 🟠 **定义**: 应在合并前修复的重要问题 **标准**: - 功能缺陷 - 重要边界条件未处理 - 性能严重退化 - 资源泄漏 **示例**: - 核心业务逻辑错误 - 内存泄漏 - N+1 查询问题 - 缺少必要的错误处理 **响应**: 强烈建议修复 --- ### Medium (中) 🟡 **定义**: 建议修复的代码质量问题 **标准**: - 代码可维护性问题 - 轻微性能问题 - 测试覆盖不足 - 不符合团队规范 **示例**: - 函数过长 - 命名不清晰 - 缺少注释 - 代码重复 **响应**: 建议在后续迭代修复 --- ### Low (低) 🔵 **定义**: 可选优化的问题 **标准**: - 风格问题 - 微小优化 - 可读性改进 **示例**: - 变量声明顺序 - 额外的空行 - 可以更简洁的写法 **响应**: 可根据团队偏好处理 --- ### Info (信息) ⚪ **定义**: 信息性建议,非问题 **标准**: - 学习机会 - 替代方案建议 - 文档完善建议 **示例**: - "这里可以考虑使用新的 API" - "建议添加 JSDoc 注释" - "可以参考 xxx 模式" **响应**: 仅供参考 --- ## Category Mapping ### By Dimension | Dimension | Common Categories | |-----------|-------------------| | Correctness | `null-check`, `boundary`, `error-handling`, `type-safety`, `logic-error` | | Security | `injection`, `xss`, `hardcoded-secret`, `auth`, `sensitive-data` | | Performance | `complexity`, `n+1-query`, `memory-leak`, `blocking-io`, `inefficient-algorithm` | | Readability | `naming`, `function-length`, `complexity`, `comments`, `duplication` | | Testing | `coverage`, `boundary-test`, `mock-abuse`, `test-isolation` | | Architecture | `layer-violation`, `circular-dependency`, `coupling`, `srp-violation` | ### Category Details #### Correctness Categories | Category | Description | Default Severity | |----------|-------------|------------------| | `null-check` | 缺少空值检查 | High | | `boundary` | 边界条件未处理 | High | | `error-handling` | 错误处理不当 | High | | `type-safety` | 类型安全问题 | Medium | | `logic-error` | 逻辑错误 | Critical/High | | `resource-leak` | 资源泄漏 | High | #### Security Categories | Category | Description | Default Severity | |----------|-------------|------------------| | `injection` | 注入风险 (SQL/Command) | Critical | | `xss` | 跨站脚本风险 | Critical | | `hardcoded-secret` | 硬编码密钥 | Critical | | `auth` | 认证授权问题 | High | | `sensitive-data` | 敏感数据暴露 | High | | `insecure-dependency` | 不安全依赖 | Medium | #### Performance Categories | Category | Description | Default Severity | |----------|-------------|------------------| | `complexity` | 高算法复杂度 | Medium | | `n+1-query` | N+1 查询问题 | High | | `memory-leak` | 内存泄漏 | High | | `blocking-io` | 阻塞 I/O | Medium | | `inefficient-algorithm` | 低效算法 | Medium | | `missing-cache` | 缺少缓存 | Low | #### Readability Categories | Category | Description | Default Severity | |----------|-------------|------------------| | `naming` | 命名问题 | Medium | | `function-length` | 函数过长 | Medium | | `nesting-depth` | 嵌套过深 | Medium | | `comments` | 注释问题 | Low | | `duplication` | 代码重复 | Medium | | `magic-number` | 魔法数字 | Low | #### Testing Categories | Category | Description | Default Severity | |----------|-------------|------------------| | `coverage` | 测试覆盖不足 | Medium | | `boundary-test` | 缺少边界测试 | Medium | | `mock-abuse` | Mock 过度使用 | Low | | `test-isolation` | 测试不独立 | Medium | | `flaky-test` | 不稳定测试 | High | #### Architecture Categories | Category | Description | Default Severity | |----------|-------------|------------------| | `layer-violation` | 层次违规 | Medium | | `circular-dependency` | 循环依赖 | High | | `coupling` | 耦合过紧 | Medium | | `srp-violation` | 单一职责违规 | Medium | | `god-class` | 上帝类 | High | --- ## Finding ID Format ``` {PREFIX}-{NNN} Prefixes by Dimension: - CORR: Correctness - SEC: Security - PERF: Performance - READ: Readability - TEST: Testing - ARCH: Architecture Examples: - SEC-001: First security finding - CORR-015: 15th correctness finding ``` --- ## Quality Gates | Gate | Condition | Action | |------|-----------|--------| | **Block** | Critical > 0 | 禁止合并 | | **Warn** | High > 0 | 需要审批 | | **Pass** | Critical = 0, High = 0 | 允许合并 | ### Recommended Thresholds | Metric | Ideal | Acceptable | Needs Work | |--------|-------|------------|------------| | Critical | 0 | 0 | Any > 0 | | High | 0 | ≤ 2 | > 2 | | Medium | ≤ 5 | ≤ 10 | > 10 | | Total | ≤ 10 | ≤ 20 | > 20 |