---
name: kd-cosmic-review-rules
description: 金蝶 Cosmic 代码审查门控规则 - P0 阻塞项清零门控，详细分项检查见 kd-cosmic-review skill + ok-cosmic/rules/
alwaysApply: false
---

# 金蝶 Cosmic 审查门控规则

> 本规则是 KCode `review` 的门控清单：P0 阻塞项未清零禁止交付。详细分项检查见 `kd-cosmic-review` skill（6 维度 + P0/P1/P2 清单）和 `ok-cosmic/rules/`（constraints/anti-patterns/coding-preferences/post-check）。

## P0 阻塞项（违反即禁止交付）

- `initialize` 中注册监听器或做 UI 变更。
- 操作事务钩子内独立 `SaveServiceHelper.save`（应直接改事务数据包）。
- `DataSet` 未关闭（必须 try-with-resources）。
- `DataSet` 行字段未在查询字段中选中却被读取。
- Validator/操作插件读取了 prepare 钩子未声明的字段。
- 循环内含 DB 调用、服务调用、ORM 创建、save、`updateView`。
- SQL 字符串拼接、`Statement`、敏感凭证、外部实体 XML。
- 硬编码组织、用户、部门、环境依赖 ID。
- `beforeBindData`/`afterBindData` 改模型数据。
- 原生 JDK 线程/executor 绕过平台线程管理。
- 事务内 DataSet 在事务外使用。
- 一个事务内跨库写。
- 显式事务块 catch 异常未 `markRollback`。

## P1 高风险项

- 循环内 `updateView` 或重复字段索引查找。
- 大分录循环用重复 `model.setValue`。
- 查询缺过滤导致全表扫描。
- 查询字段路径过深可能产生笛卡尔积。
- 第三方调用缺超时。
- `beginInit`/`endInit` 未配对。
- 集合无界累积。

## P2 可维护性项

- 需 i18n 项目中文串未资源化。
- 异常日志缺堆栈。
- 魔数/状态值散落未集中。
- 插件类后缀/方法命名不符项目约定。
- 空 catch 块吞失败。

## 审查输出要求

- 优先级：行为 > 数据一致性 > 事务边界 > 性能 > 安全 > 风格。
- 不做纯正则判断，结合上下文确认后再报。
- 分 P0/P1/P2 输出，给可执行修复方案。

## 详细分项检查

详细检查清单见以下两个位置（不再依赖 knowledge/ 目录）：

- **kd-cosmic-review SKILL.md**：6 维度审查方法论（正确性/安全/健壮/性能/可维护/规范）+ P0/P1/P2 清单 + AI 错误清单
- **ok-cosmic/rules/**：constraints.md（A 层硬约束）、anti-patterns.md（禁忌清单）、coding-preferences.md（编码偏好）、post-check.md（生成后校验）
