job51-gitlab-cr-node-jt-1 2.7.0 → 2.7.1

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.
@@ -193,21 +193,20 @@
193
193
  > 1. 从 `@@` 之后开始编号:第 1 行、第 2 行、第 3 行...
194
194
  > 2. 绝对行号 = 编号 + new_start - 1
195
195
  > 3. 对于 `@@ -0,0 +1,N @@`(新增文件):绝对行号 = 编号
196
- > - **⚠️ 重要:忽略所有元数据行**(临时文件开头的 `# File Information`、`# New Path:` 等以 `# ` 开头的行都**不编号**,直接跳过)
196
+ > - **⚠️ 重要:忽略所有元数据行**(临时文件末尾的 `# File Information` 等以 `# ` 开头的行都**不编号**,直接跳过)
197
197
  > - **⚠️ 关键**:`@@ ... @@` 这一行本身**不编号**,从它**之后**的第一行才开始编号
198
198
  > - **⚠️ 行号计算示例**(必读):
199
199
  > - **示例 0:临时文件完整格式**(理解计数起点)
200
200
  ```
201
- # File Information (AI 请忽略这些元数据行,从 @@ 之后开始计数)
202
- # New Path: b/src/Test.java <-- 元数据行,忽略,直接跳过
203
- # Block Index: 0 <-- 元数据行,忽略,直接跳过
204
- # New Start: 29 <-- 元数据行,忽略,直接跳过
205
- # Diff Content Below
206
201
  @@ -28,8 +29,10 @@ <-- @@ 行,不编号!从下一行开始行号=29(new_start)
207
202
  [代码行 1] <-- 空格开头,行号 = 29(new_start)
208
203
  + [代码行 2] <-- + 开头,行号 = 30(29+1)← 问题在这,new_line=30
209
204
  + [代码行 3] <-- + 开头,行号 = 31(30+1)← 问题在这,new_line=31
210
205
  [代码行 4] <-- 空格开头,行号 = 32(31+1)
206
+ ...(diff 内容结束)
207
+ # File Information (AI 请忽略:这些是元数据,不计入行号)
208
+ # New Path: b/src/Test.java <-- 元数据在末尾,不影响计数
209
+ # New Start: 29
211
210
  ```
212
211
  > - **示例 1:新增文件** `@@ -0,0 +1,58 @@`(new_start=1)
213
212
  ```
@@ -7,11 +7,11 @@ description: 代码审查技能,审查变更代码并输出 REPORT 和 LINE_IN
7
7
 
8
8
  1. **读取 diff 文件**:使用 Read 工具读取文件:$ARGUMENTS
9
9
 
10
- 2. **解析文件信息**:从 `# File Information` 部分提取
10
+ 2. **解析文件信息**:从文件末尾的 `# File Information` 部分提取
11
11
  - `Block Index`: 当前块索引号
12
12
  - `New Start`: 当前 diff 块在变更后文件中的起始行号(仅供参考)
13
- - `New Count`: 当前 diff 块的行数
14
13
  - `New Path` / `Old Path`: 文件路径(去掉 `a/` 或 `b/` 前缀)
14
+ - **注意**:元数据在文件末尾,不影响行号计数
15
15
 
16
16
  3. **解析行号**:**基于 diff 块内容逐行计数,计算绝对行号**
17
17
  - **⚠️ 重要**:行号计算规则详见 @.claude/rules/code-review-rules.md 第 13 条
@@ -26,20 +26,19 @@ description: 代码审查技能,审查变更代码并输出 REPORT 和 LINE_IN
26
26
  1. 从 `@@` 之后开始编号:第 1 行、第 2 行、第 3 行...
27
27
  2. 绝对行号 = 编号 + new_start - 1
28
28
  3. 对于 `@@ -0,0 +1,N @@`(新增文件):绝对行号 = 编号
29
- - **忽略元数据行**:临时文件开头的 `# File Information`、`# New Path:` 等以 `# ` 开头的行都**不编号**,直接跳过
29
+ - **忽略元数据行**:文件末尾的 `# File Information` 等以 `# ` 开头的行都**不编号**,直接跳过
30
30
  - **⚠️ 关键**:`@@ ... @@` 这一行本身也不编号,从它**之后**的第一行才开始编号
31
31
  - **⚠️ 临时文件格式示例**(理解计数起点):
32
32
  ```
33
- # File Information (AI 请忽略这些元数据行,从 @@ 之后开始计数)
34
- # New Path: b/src/Test.java <-- 元数据行,忽略,不编号
35
- # Block Index: 0 <-- 元数据行,忽略,不编号
36
- # New Start: 29 <-- 元数据行,忽略,不编号
37
- # Diff Content Below
38
33
  @@ -28,8 +29,10 @@ <-- @@ 行,不编号!从下一行才开始计数
39
34
  [代码行 1] <-- 空格开头,行号 = 29(new_start)
40
35
  + [代码行 2] <-- + 开头,行号 = 30(29+1)
41
36
  + [代码行 3] <-- + 开头,行号 = 31(30+1)
42
37
  [代码行 4] <-- 空格开头,行号 = 32(31+1)
38
+ ...(diff 内容结束)
39
+ # File Information (AI 请忽略:这些是元数据,不计入行号) <-- 元数据在末尾,不影响计数
40
+ # New Path: b/src/Test.java
41
+ # New Start: 29
43
42
  ```
44
43
  - **⚠️ 强制验证步骤**(输出前必须执行):
45
44
  1. 从 diff 头提取 `new_start` 和 `new_count`,计算行号范围:`[new_start, new_start + new_count - 1]`
package/index.js CHANGED
@@ -84,16 +84,15 @@ class GitLabCodeReviewer {
84
84
  debugLog(`diff 内容:${diffObject.diff}`);
85
85
  debugLog(`========== Diff Block ${blockIndex} 结束 ==========`);
86
86
 
87
- // 构造包含元数据的 diff 内容
88
- // 注意:元数据行以 '# ' 开头,AI 会忽略这些行,从 '@@' 之后开始计数
89
- const diffContentWithMetadata = `# File Information
87
+ // 构造临时文件内容:diff 内容在前,元数据在后
88
+ // 这样 AI 无法将元数据行误计数到行号中
89
+ const diffContentWithMetadata = `${diffObject.diff}
90
+
91
+ # File Information (AI 请忽略:这些是元数据,不计入行号)
90
92
  # New Path: ${diffObject.new_path || 'N/A'}
91
- # Old Path: ${diffObject.old_path || 'N/A'}
92
93
  # Block Index: ${blockIndex}
93
94
  # New Start: ${diffObject.line_info?.new_start || 1}
94
- # New Count: ${diffObject.line_info?.new_count || 1}
95
- # Diff Content Below (start counting line numbers from the first line after @@)
96
- ${diffObject.diff}`;
95
+ # 行号计算:从 @@ 之后开始计数,@@ 行和所有#开头的行都不计数`;
97
96
 
98
97
  // 将diff内容写入临时文件
99
98
  fs.writeFileSync(tmpFileName, diffContentWithMetadata);