job51-gitlab-cr-node-jt-1 2.6.0 → 2.6.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.
|
@@ -183,14 +183,16 @@
|
|
|
183
183
|
13. **行号计算规范**:
|
|
184
184
|
> - **行号定义**:行号是**变更后文件中的绝对行号**(从 1 开始计数,即该行在完整文件中的实际行号)
|
|
185
185
|
> - **⚠️ 关键规则:如何计算绝对行号**(强制执行):
|
|
186
|
-
> - **必须**基于当前 diff 块内容,从 `@@ ... @@`
|
|
187
|
-
> - **⚠️ 重要:忽略所有元数据行**(如 `=== File Information ===`、`=== Diff Content ===`、`New Path:`、`New Start:`、`New Count:` 等)
|
|
186
|
+
> - **必须**基于当前 diff 块内容,从 `@@ ... @@` 头**之后**的第一行开始逐行计数
|
|
187
|
+
> - **⚠️ 重要:忽略所有元数据行**(如 `=== File Information ===`、`=== Diff Content ===`、`New Path:`、`New Start:`、`New Count:`、`Block Index:` 等)
|
|
188
|
+
> - **⚠️ 关键**:`@@ ... @@` 这一行本身**不编号**,从它**之后**的第一行才开始编号
|
|
188
189
|
> - **计数步骤**:
|
|
189
|
-
> 1.
|
|
190
|
-
> 2.
|
|
191
|
-
> 3.
|
|
192
|
-
> 4.
|
|
193
|
-
> 5.
|
|
190
|
+
> 1. 找到 `@@ ... @@` 行(unified diff 的块头)
|
|
191
|
+
> 2. 从 `@@ ... @@` **之后**的第一行开始,按顺序给每一行编号(第 1 行、第 2 行、第 3 行...)
|
|
192
|
+
> 3. `+` 开头的新增代码:编号
|
|
193
|
+
> 4. 空格开头的上下文代码:编号
|
|
194
|
+
> 5. `-` 开头的删除代码:**不编号**(已删除)
|
|
195
|
+
> 6. **绝对行号 = 编号 + new_start - 1**
|
|
194
196
|
> - **简化理解**:
|
|
195
197
|
> - 对于 `@@ -0,0 +1,N @@`(新增文件):`绝对行号 = 编号`(因为 new_start=1)
|
|
196
198
|
> - 对于 `@@ -old_start,old_count +new_start,new_count @@`(修改文件):`绝对行号 = 编号 + new_start - 1`
|
|
@@ -15,12 +15,14 @@ description: 代码审查技能,审查变更代码并输出 REPORT 和 LINE_IN
|
|
|
15
15
|
|
|
16
16
|
3. **解析行号**:**基于 diff 块内容逐行计数,计算绝对行号**
|
|
17
17
|
- **⚠️ 重要**:行号计算规则详见 @.claude/rules/code-review-rules.md 第 13 条
|
|
18
|
-
- **必须**基于当前 diff 块内容,从 `@@ ... @@`
|
|
19
|
-
- **忽略元数据行**:忽略 `=== File Information ===`、`=== Diff Content ===`、`New Path:`、`New Start:`、`New Count:` 等所有元数据行
|
|
18
|
+
- **必须**基于当前 diff 块内容,从 `@@ ... @@` 头**之后**的第一行开始逐行计数
|
|
19
|
+
- **忽略元数据行**:忽略 `=== File Information ===`、`=== Diff Content ===`、`New Path:`、`New Start:`、`New Count:`、`Block Index:` 等所有元数据行
|
|
20
|
+
- **⚠️ 关键**:`@@ ... @@` 这一行本身也不编号,从它**之后**的第一行才开始编号
|
|
20
21
|
- **计数步骤**:
|
|
21
|
-
1.
|
|
22
|
-
2.
|
|
23
|
-
3.
|
|
22
|
+
1. 找到 `@@ ... @@` 行(unified diff 的块头)
|
|
23
|
+
2. 从 `@@ ... @@` **之后**的第一行开始,按顺序给每一行编号(第 1 行、第 2 行、第 3 行...)
|
|
24
|
+
3. `+` 开头的新增代码:编号;空格开头的上下文代码:编号;`-` 开头的删除代码:不编号
|
|
25
|
+
4. **绝对行号 = 编号 + new_start - 1**
|
|
24
26
|
- **简化计算**:
|
|
25
27
|
- 对于 `@@ -0,0 +1,N @@`(新增文件):`绝对行号 = 编号`(因为 new_start=1)
|
|
26
28
|
- 对于 `@@ -old_start,old_count +new_start,new_count @@`(修改文件):`绝对行号 = 编号 + new_start - 1`
|
|
@@ -849,6 +849,7 @@ npm run dev
|
|
|
849
849
|
|
|
850
850
|
| 版本 | 日期 | 变更说明 |
|
|
851
851
|
|------|------|----------|
|
|
852
|
+
| **2.6.0** | 2026-04-16 | **行号计数起点明确修复**:修复 AI 返回的行号系统性偏差 +8 的问题。问题根因:AI 在计数时把 `@@ ... @@` 这一行也算进去了,导致所有行号都 +8(如正确行号 30 返回 38、34 返回 42、38 返回 46、48 返回 56、54 返回 62)。修复方案:(1) 更新 `SKILL.md` 第 3 步,明确"`@@ ... @@`这一行本身也不编号,从它**之后**的第一行才开始编号";(2) 更新 `code-review-rules.md` 第 13 条,明确"`@@ ... @@`这一行本身**不编号**,从它**之后**的第一行才开始编号";(3) 在计数步骤中细化为 6 步,第 1 步"找到 `@@ ... @@` 行",第 2 步"从`@@ ... @@`**之后**的第一行开始编号" |
|
|
852
853
|
| **2.5.9** | 2026-04-16 | **行号计算强制验证修复**:修复 AI 返回的行号与代码对不上的问题。问题根因:AI 读取完整文件后,没有基于 diff 块内容逐行计数,而是直接返回了错误的行号(如 43、45、60),这些行号既不是 diff 块内的行号,也不是完整文件中的正确行号。修复方案:(1) 更新 `SKILL.md` 第 3 步,添加**强制验证步骤**,要求输出前必须逐个检查行号是否在 diff 块范围内;(2) 在 `读取上下文` 步骤中添加强制要求:读取完整文件仅用于理解代码逻辑,**不得**直接使用完整文件中的行号;(3) 添加验证公式:`new_start <= 行号 <= new_start + new_count - 1`;(4) 明确如果行号超出范围,必须回到 diff 块内容重新基于 `@@` 头之后逐行计数 |
|
|
853
854
|
| **2.5.8** | 2026-04-16 | **行号计算规则修正**:修正行号定义为"文件的绝对行号",但强调必须通过 diff 块内计数计算。问题根因:(1) 规则第 13 条错误地将行号定义为"diff 块内的相对行号",与 GitLab API 需要的绝对行号冲突;(2) AI 读取完整文件后定位到 diff 块范围之外的行(如第 60 行),导致行号验证失败。修复方案:(1) 更新 `code-review-rules.md` 第 13 条,明确行号是**变更后文件中的绝对行号**;(2) 修正计算方法:`绝对行号 = 从 @@ 头之后的编号 + new_start - 1`;(3) 添加强制验证步骤:输出前必须检查 `new_start <= 行号 <= new_start + new_count - 1`;(4) 添加特别场景处理:读取完整文件后必须验证行号是否在 diff 块范围内,超出范围则必须放弃该行号,重新基于 diff 块计数;(5) 更新 `SKILL.md` 第 3 步,同步更新行号计算方法 |
|
|
854
855
|
| **2.5.7** | 2026-04-16 | **行号计算规则修复**:修复 AI 返回的行号超出 diff 块范围的问题。问题根因:AI 读取完整源文件后返回文件的绝对行号,而不是基于 diff 块的相对行号。修复方案:(1) 更新 `code-review-rules.md` 第 13 条,明确行号是**diff 块内的相对行号**,不是文件的绝对行号;(2) 添加行号验证规则:最大行号不能超过 diff 块的 `new_count` 值;(3) 简化 `SKILL.md` 中的行号计算说明,将详细规则移至 rules 文件;(4) 在 rules 中添加强制验证步骤:输出前必须检查 diff 头的 `new_count` 值,确保所有问题行号 ≤ new_count |
|