job51-gitlab-cr-node-skill-prompt-optimize 1.2.2 → 1.2.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.
@@ -12,23 +12,37 @@
12
12
  9. 严重问题的定义如下
13
13
  > - 存在安全漏洞(如 SQL 注入、命令注入、敏感信息泄露)
14
14
  > - 可能导致数据丢失/损坏/不一致
15
- > - 引发空指针(如:null对象调用方法/属性;null集合/数组遍历访问;包装类null自动拆箱赋值给基础类型或直接用于布尔条件判断;;Optional误用;方法返回值/入参未判空即使用)、资源泄漏、死锁等运行时崩溃风险
15
+ > - 引发空指针
16
+ **典型触发场景**:
17
+ `Boolean` 包装类直接用于条件判断:`if (booleanFlag)` 当 `booleanFlag` 为 `null` 时自动拆箱抛出 NPE
18
+ `Integer/Long` 等包装类赋值给基础类型:`int count = integerCount` 当 `integerCount` 为 `null` 时自动拆箱抛出 NPE
19
+ 方法链式调用未判空:`user.getProfile().getName()` 当 `getProfile()` 返回 `null` 时抛出 NPE
20
+ 集合/数组未判空直接遍历:`for (Item item : list)` 当 `list` 为 `null` 时抛出 NPE
21
+ `Optional` 误用:`optional.get()` 未先调用 `isPresent()` 或直接使用 `ifPresent()`
22
+ > - 引发资源泄漏、死锁等运行时崩溃风险
16
23
  > - 违反事务一致性或并发安全原则
17
24
  > - 导致核心功能失效或产生错误业务结果
18
25
  > - 引入构建失败、测试失败或高危依赖漏洞
19
- 9. 警告问题的定义如下(优先级低于严重问题,不会造成立即崩溃或数据丢失,但存在隐患)
26
+ 9. 警告问题的定义如下(优先级低于严重问题,不会造成立即崩溃或数据丢失,但存在隐患,**不包含任何空指针风险**)
20
27
  > - 代码可读性差(如魔法数字、命名不规范、缺少必要注释)
21
28
  > - 性能潜在问题(如低效算法、不必要的数据库查询、内存使用不当)
22
- > - 边界条件处理不完善(如空集合、极端值未妥善处理)
29
+ > - 边界条件处理不完善(如空集合、极端值未妥善处理)**但不包括直接导致 NPE 的情况**
23
30
  > - 异常处理不完善(如捕获异常未记录或吞掉异常)
24
31
  > - 资源使用不规范(如未关闭资源但无泄漏风险、连接池配置不当)
25
- > - 代码重复或违反DRY原则
32
+ > - 代码重复或违反 DRY 原则
26
33
  > - 类型安全警告(如原始类型使用、unchecked 转换)
27
- 10. 同一代码位置的问题只归入最高优先级级别,不得在多个级别重复报告。
34
+ 10. **问题分级规则**:
35
+ > - 若问题涉及以下任一情况,**必须**归类为严重问题:
36
+ > - 可能导致 `NullPointerException`
37
+ > - 可能导致数据丢失或损坏
38
+ > - 可能导致安全漏洞
39
+ > - 若同一代码块存在多个问题,**全部归入最高风险级别**
40
+ > - 示例:若某一个代码块同时存在"集合未判空"和"Boolean 拆箱",两者均为严重问题,应在严重问题标题下并列展示
41
+ 11. 同一代码位置的问题只归入最高优先级级别,不得在多个级别重复报告。
28
42
  - 若某问题已作为"严重问题"报告,则不应再出现在"警告"或"优化建议"中
29
- 11. 最终输出必须以 `<REPORT>` 开始,以 `</REPORT>` 结束,确保内容可被程序安全提取。
30
- 12. 需要分析的变更内容位于下方<CHANGE_CONTENT>标签内。
31
- 13. 变更内容的行信息位于下方<LINE_INFO>标签内,里面的内容格式为:“@@ -84,9 +84,11 @@ public class UserCompetitiveAnalyseLogServiceImpl extends ServiceImpl<UserCompet”,使用变更后区域计算新代码块的起始行和结束行。
43
+ 12. 最终输出必须以 `<REPORT>` 开始,以 `</REPORT>` 结束,确保内容可被程序安全提取。
44
+ 13. 需要分析的变更内容位于下方<CHANGE_CONTENT>标签内。
45
+ 14. 变更内容的行信息位于下方<LINE_INFO>标签内,里面的内容格式为:“@@ -84,9 +84,11 @@ public class UserCompetitiveAnalyseLogServiceImpl extends ServiceImpl<UserCompet”,使用变更后区域计算新代码块的起始行和结束行。
32
46
 
33
47
  <REPORT>
34
48
  ## 🤖 AI代码审查结果
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "job51-gitlab-cr-node-skill-prompt-optimize",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "GitLab merge request code review tool with AI-powered analysis",
5
5
  "main": "index.js",
6
6
  "bin": {