job51-gitlab-cr-node-jt-1 2.2.7 → 2.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
> - **禁止仅凭代码表面形式判断运行时异常风险**
|
|
11
11
|
> - **⚠️ 特别强调**:当前 CR 流程处于版本开发的最后合并阶段,代码逻辑已经过开发自测和 QA 测试验证。审查时应**基于项目原有的代码风格**,不得强制要求添加项目惯例中不存在的内容。
|
|
12
12
|
> - **⚠️ 风格一致性原则**:参数校验、异常处理、注解使用等应与项目原有风格匹配,**不得报告"建议添加 XX 注解/XX 校验/XX 异常处理"** 这类问题。
|
|
13
|
+
> - **⚠️ 问题定位原则**:**只在真正会执行出错的代码行上报告问题**,其他地方(如类定义、导入语句、方法签名等)禁止报告
|
|
13
14
|
|
|
14
15
|
0. **Diff 数据结构与上下文读取规则**:
|
|
15
16
|
> - **临时文件格式说明**:
|
|
@@ -81,6 +82,12 @@
|
|
|
81
82
|
> - **没有修改的代码**(即以空格开头的上下文代码),仅作为参考,不得审查未变更的代码行
|
|
82
83
|
> - **已删除的代码**(以 `-` 开头的行),**禁止**对已删除的代码报告任何问题
|
|
83
84
|
> - **⚠️ 重点强调**:审查前必须先丢弃所有 `-` 开头的行,只审查 `+` 开头的新增代码
|
|
85
|
+
> - **⚠️ 禁止报告问题的位置**:
|
|
86
|
+
> - 类定义、package 声明行
|
|
87
|
+
> - import 导入语句行
|
|
88
|
+
> - 方法签名行(除非签名本身有安全问题)
|
|
89
|
+
> - 仅定义变量但未使用的行
|
|
90
|
+
> - 其他不会直接导致运行时错误的位置
|
|
84
91
|
5. 使用当前系统时间填充 `[当前时间]`,并根据实际变更内容计算 `[文件数量]`;
|
|
85
92
|
6. 所有占位符必须被真实内容替换;
|
|
86
93
|
> - **修改建议中的代码示例**:
|
|
@@ -90,6 +97,9 @@
|
|
|
90
97
|
> - **代码风格一致性**:建议代码应遵循项目现有风格(工具类方法、函数式编程、命名约定等)
|
|
91
98
|
7. 若无某类问题(如无严重问题),则**完全省略该部分**;
|
|
92
99
|
8. 若同一级别问题有多个,在对应标题下按原代码顺序依次展示;
|
|
100
|
+
> - **⚠️ 跨块去重规则**:**同一文件中由同一根本原因导致的问题,只报告一次**
|
|
101
|
+
> - 示例:同一方法 `userTaskSDK.xxx()` 在文件中多处被调用,若都存在未判空问题,**合并为一条报告**
|
|
102
|
+
> - 判断标准:**文件 + 问题类型 + 根本原因**三者相同即为重复问题
|
|
93
103
|
9. **严重问题(🔴)**:
|
|
94
104
|
> - 安全漏洞(SQL 注入、命令注入、敏感信息泄露)
|
|
95
105
|
> - 可能导致数据丢失/损坏/不一致
|
|
@@ -104,6 +114,10 @@
|
|
|
104
114
|
> - 违反事务一致性或并发安全原则
|
|
105
115
|
> - 导致核心功能失效或产生错误业务结果
|
|
106
116
|
> - 引入构建失败、测试失败或高危依赖漏洞
|
|
117
|
+
> - **⚠️ 问题行号定位规则**:
|
|
118
|
+
> - 空指针问题:报告在**实际访问对象属性/方法的行**(如 `obj.getId()`),不是变量定义行
|
|
119
|
+
> - 示例:`UserTaskPop pop = sdk.method(); log.debug(pop.getId())` 问题应报告在 `pop.getId()` 行,不是 `sdk.method()` 或变量定义行
|
|
120
|
+
> - **每个 diff 块只报告本块内实际会出错的代码**,不要在无关的 diff 块(如 package 行、import 行、类定义行)报告问题
|
|
107
121
|
|
|
108
122
|
10. **警告问题(⚠️)**:
|
|
109
123
|
> - 代码可读性差(魔法数字、命名不规范、缺少必要注释)
|
|
@@ -141,6 +155,9 @@
|
|
|
141
155
|
|
|
142
156
|
16. **输出前验证流程**:
|
|
143
157
|
> - **去重检查**:检查是否存在行号重叠,若发现重叠仅保留最高优先级(严重问题 > 警告)
|
|
158
|
+
> - **跨块重复问题去重**:**同一文件同一问题在不同 diff 块中出现时,只报告一次**
|
|
159
|
+
> - 示例:同一方法 `userTaskSDK.userTaskModuleControl()` 在块 1、块 2、块 3 中被调用,未判空问题**只报告一次**
|
|
160
|
+
> - 方法:**按「文件 + 问题类型 + 根本原因」进行去重**,相同组合的问题只保留第一个
|
|
144
161
|
> - **警告验证**:检查警告中是否包含运行时异常关键词,若包含则升级为严重问题
|
|
145
162
|
> - **代码示例验证**:确保错误代码示例不包含 `-` 开头的已删除代码
|
|
146
163
|
> - **删除代码验证**:**逐条检查问题涉及的代码行,确认不是 `-` 开头的已删除代码**
|
|
@@ -152,6 +169,10 @@
|
|
|
152
169
|
> - 空格开头:未变更的上下文代码,仅作参考
|
|
153
170
|
> - **错误代码选取**:必须从变更后实际存在的代码中选取(`+` 开头或空格开头)
|
|
154
171
|
> - **⚠️ 违例后果**:对 `-` 开头的代码报告问题是严重误报,必须避免
|
|
172
|
+
> - **⚠️ 问题报告位置规则**:
|
|
173
|
+
> - **空指针/未判空问题**:只报告在**实际调用方法访问返回值的行**(如 `obj.getXxx()`),而不是方法调用或变量定义的行
|
|
174
|
+
> - **示例**:`UserTaskPop pop = sdk.method(); pop.getId()` 问题应报告在 `pop.getId()` 这一行,而不是 `sdk.method()` 或变量定义行
|
|
175
|
+
> - **禁止**在类定义、package、import、方法签名等位置报告与这些行无关的问题
|
|
155
176
|
|
|
156
177
|
18. **变更内容解析步骤**(分析前必须按顺序执行):
|
|
157
178
|
> - **步骤 1:识别变更类型**
|
|
@@ -168,6 +189,10 @@
|
|
|
168
189
|
> - 若包含,必须重新选取变更后实际存在的代码
|
|
169
190
|
> - **步骤 6:最终验证**
|
|
170
191
|
> - 确认没有对已删除代码报告任何问题
|
|
192
|
+
> - **步骤 7:问题定位验证**
|
|
193
|
+
> - 确认问题报告在**真正会执行出错的行**上
|
|
194
|
+
> - 空指针问题:报告在实际调用 `obj.getXxx()` 的行,不是变量定义行
|
|
195
|
+
> - 禁止在 package、import、类定义、方法签名等位置报告无关问题
|
|
171
196
|
|
|
172
197
|
19. **输出格式**:严格参照 SKILL.md 模板,无某类问题时省略对应部分;
|
|
173
198
|
|
|
@@ -180,3 +205,5 @@
|
|
|
180
205
|
> - [ ] 已确认不是返回空集合或有不返回 null 保证的方法
|
|
181
206
|
> - [ ] **已确认问题不是"风格偏好"类问题**(如建议添加项目惯例中不存在的注解/校验/异常处理)
|
|
182
207
|
> - [ ] **已确认建议代码与项目原有风格一致**(参数校验方式、异常处理方式、注解使用习惯等)
|
|
208
|
+
> - [ ] **已执行跨块去重**:同一文件同一根本原因的问题只报告一次
|
|
209
|
+
> - [ ] **已验证问题位置**:问题报告在真正会执行出错的行上,而非 package/import/类定义/方法签名等位置
|