job51-gitlab-cr-node-skill-prompt-optimize 1.3.2 → 1.3.4
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.
- package/mr-review-template.md +32 -8
- package/package.json +1 -1
package/mr-review-template.md
CHANGED
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
4. 不要添油加醋,仔细辨别代码的增删改;
|
|
8
8
|
5. 使用当前系统时间填充 `[当前时间]`,并根据实际变更内容计算 `[文件数量]`;
|
|
9
9
|
6. 所有占位符(如 `[具体问题描述]`)必须被真实内容替换,不可保留;
|
|
10
|
+
> - **修改建议中的代码示例**:
|
|
11
|
+
> - 错误代码:必须是**变更后实际存在的代码**(从变更内容中选取有问题的当前代码)
|
|
12
|
+
> - 正确示例代码:必须是**修复后的建议代码**
|
|
13
|
+
> - 不得将已删除的代码(- 开头的行)作为错误代码展示
|
|
10
14
|
7. 若无某类问题(如无严重问题),则**完全省略该部分**(例如不输出“🔴 严重问题”标题);
|
|
11
15
|
8. 若当前审核的代码块中相同级别问题有不止一个,在对应级别的标题下按原代码顺序依次展示,如存在两个严重问题时,按其在代码中的原有顺序在严重问题标题下依次展示;
|
|
12
16
|
9. 严重问题的定义如下
|
|
@@ -36,6 +40,11 @@
|
|
|
36
40
|
> - 代码重复或违反 DRY 原则
|
|
37
41
|
> - 类型安全警告(如原始类型使用、unchecked 转换)
|
|
38
42
|
> - **输出前检查**:若某行号范围的问题已在严重问题中报告,警告中**禁止**再出现该行号的任何条目
|
|
43
|
+
> - **强制排除**:警告中**不得包含**以下关键词描述的问题:
|
|
44
|
+
> - "空指针"、"NullPointerException"、"NPE"
|
|
45
|
+
> - "自动拆箱"、"Boolean 包装类"、"包装类转换"
|
|
46
|
+
> - "集合遍历"、"stream()"、"数组越界"
|
|
47
|
+
> - 任何可能导致运行时异常的描述
|
|
39
48
|
10. **问题描述准确性规则**:
|
|
40
49
|
> - 必须准确识别代码变更引入的实际风险,不得以次要风险(如性能影响)掩盖主要风险(如空指针异常)
|
|
41
50
|
> - 示例:删除 `CollectionUtils.isEmpty(jobids)` 空检查后,若后续直接调用 `jobids.stream()`,实际风险是 **NPE** 而非"不必要的 Redis 操作"或"性能影响"
|
|
@@ -49,29 +58,44 @@
|
|
|
49
58
|
> - 示例:若某一个代码块同时存在"集合未判空"和"Boolean 拆箱",两者均为严重问题,应在严重问题标题下并列展示
|
|
50
59
|
12. 最终输出必须以 `<REPORT>` 开始,以 `</REPORT>` 结束,确保内容可被程序安全提取。
|
|
51
60
|
13. 需要分析的变更内容位于下方<CHANGE_CONTENT>标签内。
|
|
52
|
-
14. 变更内容的行信息位于下方<LINE_INFO
|
|
53
|
-
|
|
61
|
+
14. 变更内容的行信息位于下方<LINE_INFO>标签内,里面的内容格式为:"@@ -84,9 +84,11 @@ public class UserCompetitiveAnalyseLogServiceImpl extends ServiceImpl<UserCompet",使用变更后区域计算新代码块的起始行和结束行。
|
|
62
|
+
**行号计算规范**:
|
|
54
63
|
> - 行号必须基于 <LINE_INFO> 中的变更后行号计算(+ 号后的数字)
|
|
55
64
|
> - 格式 "@@ -84,9 +84,11 @@" 表示变更后代码从 84 行开始,共 11 行
|
|
56
65
|
> - 问题行号必须是变更后代码的实际行号,不得引用变更前行号
|
|
57
66
|
> - 若问题涉及多行,行号范围应覆盖完整问题代码块(如 84-93)
|
|
67
|
+
> - **重要**:行号对应的代码必须是变更后保留的代码,不得指向已删除的代码行
|
|
58
68
|
15. `<REPORT>`标签的每一个标题内都有两个问题块,这里只是进行示例,表示有不止一个问题时应该怎么展示,不是说每一个标题下必须有两个问题,具体问题的数量有review的结果决定,按原始代码块中对应代码的顺序依次展示即可
|
|
59
69
|
16. **输出前必须执行去重检查**:
|
|
60
70
|
> - **第一步:收集所有问题的文件及行号信息**
|
|
61
71
|
> - **第二步:检查是否存在行号重叠**(完全相同或有交集即视为重叠)
|
|
62
72
|
> - **第三步:若发现重叠,仅保留最高优先级级别的问题**
|
|
63
73
|
> - 优先级顺序:严重问题 > 警告 > 优化建议
|
|
64
|
-
|
|
74
|
+
> - **强制删除**:低级别中与高级别行号重叠的条目必须删除,不得保留
|
|
75
|
+
> - **第四步:验证警告中是否包含运行时异常风险**
|
|
76
|
+
> - 检查警告问题描述中是否包含"空指针"、"NullPointerException"、"自动拆箱"等关键词
|
|
77
|
+
> - 若包含,必须将该问题升级为严重问题
|
|
65
78
|
> - **判定为同一变更的标准**(满足任一即视为同一问题):
|
|
66
79
|
> - 文件相同且行号完全相同
|
|
67
|
-
|
|
80
|
+
> - 文件相同且行号范围重叠超过 50%
|
|
68
81
|
> - 指向同一处代码修改(如同样删除 `CollectionUtils.isEmpty()` 判断)
|
|
69
82
|
> - 问题描述存在因果关系(如"运行时异常"是"代码健壮性不足"的具体表现)
|
|
70
|
-
> - **示例**:若 87-93 行同时被识别为:
|
|
71
|
-
> - 严重问题:"移除 jobids 空值检查可能导致空指针异常"
|
|
72
|
-
> - 警告:"移除 jobids 空值检查可能导致后续不必要的 Redis 操作"
|
|
73
|
-
> - **处理**:仅保留严重问题,**强制删除**警告条目
|
|
74
83
|
> - **最终验证**:生成报告前必须确认严重问题、警告、优化建议三部分中**不存在任何行号重叠的条目**,如有重叠必须删除低级别条目
|
|
84
|
+
17. **代码变更方向识别规则**:
|
|
85
|
+
> - **变更内容格式说明**:
|
|
86
|
+
> - 以 `-` 开头的行表示**已删除的代码**,不应作为当前代码审查
|
|
87
|
+
> - 以 `+` 开头的行表示**新增的代码**,是审查的重点
|
|
88
|
+
> - 以空格开头的行表示**未变更的上下文代码**,仅作参考
|
|
89
|
+
> - **审查对象**:
|
|
90
|
+
> - 仅审查**变更后保留的代码**(新增代码 + 未删除的原有代码)
|
|
91
|
+
> - 不得将已删除的代码作为"错误代码"展示
|
|
92
|
+
> - **错误代码示例的选取**:
|
|
93
|
+
> - 应展示变更后实际存在的有问题代码
|
|
94
|
+
> - 若问题是由于删除某行代码导致的(如删除空检查导致 NPE),错误代码应展示**删除后的当前代码**,而非已删除的代码
|
|
95
|
+
> - **示例**:
|
|
96
|
+
> - 若删除了 `if (CollectionUtils.isEmpty(jobids)) { return; }`
|
|
97
|
+
> - 错误代码应展示删除后直接调用 `jobids.stream()` 的代码
|
|
98
|
+
> - 不得展示已删除的 `if (CollectionUtils.isEmpty(jobids))` 作为错误代码
|
|
75
99
|
|
|
76
100
|
<REPORT>
|
|
77
101
|
## 🤖 AI代码审查结果
|