job51-gitlab-cr-node-jt-1 2.9.9 → 3.0.0

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.
Files changed (2) hide show
  1. package/index.js +43 -29
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -549,40 +549,54 @@ ${allReportsText}
549
549
 
550
550
  // 大文件模式下的特殊提示
551
551
  const largeFilePrompt = isLargeFile ? `
552
- **⚠️ 大文件审查模式**:
553
- 这是一个完整文件内容的审查(因为 GitLab diff 被截断)。
554
- 1. 所有代码行都是新增或修改的内容
555
- 2. 必须审查整个文件的业务逻辑,包括:
556
- - 所有方法中的循环逻辑、状态管理
557
- - 所有数据库操作和资源管理
558
- - 所有框架特性使用(如 @Async、MyBatis-Plus)
559
- 3. 发现问题时,准确报告行号(基于文件内容的实际行号)
552
+ **⚠️ 大文件审查模式 - 强制格式要求**:
553
+ 这是完整文件审查(GitLab diff截断),所有代码都是新增内容。
554
+ 1. 直接输出审查报告,不要先分析后格式化
555
+ 2. 发现问题后立即按模板格式写入 REPORT 和 LINE_INFO
556
+ 3. 行号基于完整文件实际行号计算
557
+ 4. **严禁在输出中写 "Let me format" 等中间过程文本**
558
+ 5. **必须在 </REPORT> 后立即输出 <LINE_INFO> 标签,包含每个问题的行号**
560
559
  ` : '';
561
560
 
562
561
  const prompt = `请调用 simple-code-review 技能审核代码变更。
563
562
  文件路径:${filePath}
564
563
  ${largeFilePrompt}
565
- **重要审查规则**:
566
- 1. **严格按照 .claude/rules/code-review-rules.md 中的规则执行审查**,该文件包含详细的审查规则
567
- 2. **重点检测以下问题类型**(详见规则文件):
568
- - 资源泄漏问题:JDBC连接、文件流、网络资源未关闭
569
- - 框架特性问题:Spring @Async返回值、MyBatis-Plus更新实体、乐观锁版本号
570
- - 循环逻辑问题:循环内状态失效、累积状态不一致
571
- - 异常处理问题:异常吞没、catch块空实现
572
- - 类型转换问题:精度丢失、装箱拆箱空指针
573
- - 集合操作问题:遍历中修改、空集合访问
574
- - 并发安全问题:线程安全、分布式锁
575
- - 边界条件问题:循环边界、输入边界
576
- - 空指针问题:需深度分析,遵循规则文件中的验证流程
577
- 3. **上下文读取要求**:必须使用 Read 工具读取完整方法代码,分析循环逻辑、状态管理、框架使用
578
- 4. **问题报告位置**:只报告在 diff 块内实际会出错的代码行,禁止在 import/类定义/方法签名等位置报告
579
-
580
- **输出要求**:
581
- 1. 严格按照 .claude/skills/simple-code-review/SKILL.md 中定义的模板格式输出
582
- 2. **每个模块不是必须的**:没有对应问题时,完全省略该模块(不输出标题)
583
- 3. 必须以 <REPORT> 开始,以 </REPORT> 结束
584
- 4. **必须输出 '<LINE_INFO>' 标签**,包含所有问题的行号信息(无问题时输出空数组 [])
585
- 5. 不要输出任何额外的解释、问候或总结文本`;
564
+ **⚠️ 强制输出格式要求(违反会导致审查结果丢失)**:
565
+
566
+ 你必须直接输出以下格式,不要输出任何分析过程、思考过程或中间文本:
567
+
568
+ <REPORT>
569
+ ## 🤖 AI 代码审查结果
570
+
571
+ ### 🔴 严重问题
572
+
573
+ **问题 1**:[问题描述]<br/>
574
+ **文件及行号**:[文件路径:实际行号]<br/>
575
+ **修改建议**:[修复建议]
576
+
577
+ **问题 2**:[问题描述]<br/>
578
+ **文件及行号**:[文件路径:实际行号]<br/>
579
+ **修改建议**:[修复建议]
580
+
581
+ ...(更多问题按同样格式)
582
+
583
+ </REPORT>
584
+
585
+ <LINE_INFO>
586
+ [{"new_path":"文件路径","new_line":实际行号},{"new_path":"文件路径","new_line":实际行号}]
587
+ </LINE_INFO>
588
+
589
+ **审查重点**:
590
+ 1. 资源泄漏:JDBC/文件流未关闭 → 报告资源创建行号
591
+ 2. 框架问题:@Async返回具体类型 → 报告方法定义行号
592
+ 3. 循环逻辑:状态过期、累积不一致 → 报告循环内出错行号
593
+ 4. 异常吞没:catch块空实现 → 报告catch行号
594
+ 5. 空指针:包装类型拆箱 → 报告使用行号
595
+
596
+ **关键**:
597
+ - 有严重问题时,LINE_INFO 必须包含对应行号,否则结果被丢弃
598
+ - 无问题时输出 <LINE_INFO>[]</LINE_INFO>
599
+ - 不要输出 "Let me analyze"、"Let me format" 等文本`;
586
600
  //打印
587
601
  debugLog(`[${blockIdentifier}] Claude命令: ${prompt}`);
588
602
  // 最多重试5次,直到结果包含"🤖 AI 代码审查结果"或达到最大重试次数
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "job51-gitlab-cr-node-jt-1",
3
- "version": "2.9.9",
3
+ "version": "3.0.0",
4
4
  "description": "GitLab merge request code review tool with AI-powered analysis and project context support",
5
5
  "main": "index.js",
6
6
  "bin": {