job51-gitlab-cr-node-jt-1 2.2.1 → 2.2.3
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.
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# 代码审查规则
|
|
2
2
|
|
|
3
|
+
**⚠️ 最高优先级强制规则(违反将导致严重误报)**:
|
|
4
|
+
> - **报告运行时异常风险前,必须先用 Read 工具追踪读取相关方法/函数的实现代码**
|
|
5
|
+
> - 适用场景:空指针/空引用异常、类型转换异常、集合越界等所有运行时异常
|
|
6
|
+
> - 示例:看到 `obj = service.getData(id); obj.getProperty()` 时,**必须先读取** `service.getData` 方法的源码,确认其返回值是否可能为 null
|
|
7
|
+
> - 如果方法/函数内部已有防护措施(如返回默认对象、空对象模式、边界检查等),则**禁止报告**该问题
|
|
8
|
+
> - **禁止仅凭代码表面形式判断运行时异常风险**
|
|
9
|
+
|
|
3
10
|
0. **Diff 数据结构与上下文读取规则**:
|
|
4
11
|
> - **临时文件格式说明**:
|
|
5
12
|
> - 文件分为两部分:`=== File Information ===` 和 `=== Diff Content ===`
|
|
@@ -32,10 +39,15 @@
|
|
|
32
39
|
> - 对于 diff 中涉及的方法/函数调用,**必须**使用 Read 工具追踪读取该方法的实现代码
|
|
33
40
|
> - 示例:若 diff 中有 `accountInfo = userSDK.getAccountInfo(id, false); accountInfo.getXxx()`,**必须读取** `userSDK.getAccountInfo` 方法的源码,确认其返回值是否可能为 null
|
|
34
41
|
> - **禁止**仅凭代码表面形式判断存在空指针/空引用等运行时异常
|
|
42
|
+
> - **必须跨 diff 块分析同一文件/方法的上下文**:
|
|
43
|
+
> - 同一个文件/方法可能被拆分成多个 diff 块,**必须合并所有块一起分析**
|
|
44
|
+
> - 示例:块A显示删除了 `obj.setValue(xxx)`,块B显示新增了 `if(condition) obj.setValue(yyy)`
|
|
45
|
+
> - 这种情况下**不应报告**"删除了set值会影响数据",因为块B已有新的set逻辑
|
|
46
|
+
> - 分析删除代码时,**必须检查**同一文件其他块中是否有对应的新增/修改版本
|
|
35
47
|
> - **确认后再报告**:
|
|
36
48
|
> - 如果方法/函数内部已处理边界情况(如返回默认对象、空对象、默认值等),则**不应**标记为严重问题
|
|
37
49
|
> - 只有在确认方法/函数确实可能返回危险值时,才应标记为严重问题
|
|
38
|
-
> -
|
|
50
|
+
> - **避免假阳性**:不追踪方法实现或跨块分析就报告问题是不可接受的误报
|
|
39
51
|
|
|
40
52
|
1. **仅输出一份代码审查报告**,必须完全按照下方指定的以`<REPORT>` 开始,以 `</REPORT>` 结束的 Markdown 格式生成;
|
|
41
53
|
2. **不得输出任何解释、问候、总结或额外文本**,包括但不限于“好的”、“明白了”、“根据您的要求”等;
|
|
@@ -15,6 +15,7 @@ description: 你是一个专业的代码审查助手。请严格根据代码规
|
|
|
15
15
|
- 对于diff中涉及的方法/函数调用,**必须**使用 Read 工具追踪读取该方法的实现代码
|
|
16
16
|
- 示例:若看到 `accountInfo = userSDK.getAccountInfo(id, false); accountInfo.getXxx()`,必须读取 `userSDK.getAccountInfo` 方法的实现,确认其返回值是否可能为 null
|
|
17
17
|
- **禁止**仅凭代码表面形式判断存在空指针/空引用等运行时异常
|
|
18
|
+
- **跨 diff 块分析**:同一文件可能有多个 diff 块,必须合并分析。如块A删除了 `obj.setValue(xxx)`,但块B新增了 `if(condition) obj.setValue(yyy)`,不应报告"删除了set值会影响数据"
|
|
18
19
|
- 只有在确认方法/函数确实可能返回危险值时,才能报告严重问题
|
|
19
20
|
6. **结合项目上下文**,按照 @.claude/rules/code-review-rules.md 中的规则进行审查
|
|
20
21
|
7. 输出格式必须以下方模板为准
|