job51-gitlab-cr-node-jt-1 2.5.3 → 2.5.5
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/.claude/rules/code-review-rules.md +38 -19
- package/.claude/skills/simple-code-review/SKILL.md +32 -1
- package/log.txt +1817 -1498
- package/package.json +1 -1
|
@@ -184,37 +184,41 @@
|
|
|
184
184
|
> - **行号定义**:行号是变更后文件中的**绝对行号**(从 1 开始计数)
|
|
185
185
|
> - **⚠️ 关键规则:基于 diff 块内容逐行计数**(强制执行):
|
|
186
186
|
> - **禁止**读取完整文件后计算绝对行号
|
|
187
|
-
> - **必须**基于 diff
|
|
187
|
+
> - **必须**基于 diff 块内容,从 `@@ ... @@` 头之后的第一行开始逐行计数
|
|
188
|
+
> - **⚠️ 重要:忽略所有元数据行**(如 `=== File Information ===`、`=== Diff Content ===`、`New Path:` 等)
|
|
188
189
|
> - 计数规则:
|
|
189
|
-
> -
|
|
190
|
+
> - **从 `@@ ... @@` 行之后的第一行开始计数**(不是从文件第一行,不是从元数据开始)
|
|
190
191
|
> - `+` 开头的新增代码:计入行号
|
|
191
192
|
> - 空格开头的上下文代码:计入行号
|
|
192
193
|
> - `-` 开头的删除代码:**不计入**行号(已删除)
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
> - **行号 = 从 `@@` 头之后到该行的累计行数**
|
|
195
|
+
> - **问题行号 = 该行在 diff 块中的位置(从 @@ 头之后开始算第 1 行)**
|
|
196
|
+
> - **⚠️ 行号计算示例**(必读):
|
|
197
|
+
> - 示例 1:新增文件 `@@ -0,0 +1,58 @@`(58 行新文件)
|
|
196
198
|
```
|
|
197
|
-
@@ -0,0 +1,
|
|
198
|
-
+package com.
|
|
199
|
-
+
|
|
200
|
-
+import
|
|
201
|
-
|
|
202
|
-
+public class
|
|
203
|
-
+ public
|
|
204
|
-
+ Object
|
|
205
|
-
+
|
|
206
|
-
+
|
|
207
|
-
+}
|
|
199
|
+
@@ -0,0 +1,58 @@
|
|
200
|
+
+package com.job51.dev.bbs.service.impl; // 行号 = 1
|
|
201
|
+
+ // 行号 = 2
|
|
202
|
+
+import com.job51.dev.bbs.mapper.ForumMapper; // 行号 = 3
|
|
203
|
+
...
|
|
204
|
+
+public class TestMultiIssuesService { // 行号 = 17
|
|
205
|
+
+ public Map<String, Object> getTestData(String forumId, String userId) { // 行号 = 27
|
|
206
|
+
+ Object forum = forumMapper.selectById(forumId); // 行号 = 28
|
|
207
|
+
+ String forumName = forum.toString(); // 行号 = 30 ← 问题在这,new_line = 30
|
|
208
|
+
+ Object firstPost = posts.get(0); // 行号 = 38 ← 问题在这,new_line = 38
|
|
208
209
|
```
|
|
209
|
-
> -
|
|
210
|
+
> - 示例 2:已有文件修改 `@@ -42,3 +43,5 @@`
|
|
210
211
|
```
|
|
211
212
|
@@ -42,3 +43,5 @@
|
|
212
213
|
public void method() { // 行号 = 43(上下文行,保留)
|
|
213
214
|
+ Object obj = service.getData(); // 行号 = 44
|
|
214
|
-
+ obj.toString(); // 行号 = 45 ←
|
|
215
|
+
+ obj.toString(); // 行号 = 45 ← 问题在这,new_line = 45
|
|
215
216
|
}
|
|
216
217
|
```
|
|
217
|
-
> -
|
|
218
|
+
> - **⚠️ 验证方法**:输出前检查行号是否合理
|
|
219
|
+
> - 对于 `@@ -0,0 +1,N @@` 的新文件,最大行号应该是 N
|
|
220
|
+
> - 如果报告的行号超过 diff 块的 `new_count`,说明计算错误
|
|
221
|
+
> - **关键**:问题行号必须准确指向变更后代码在 diff 块中的位置(从 `@@` 头之后计数)
|
|
218
222
|
|
|
219
223
|
14. `<REPORT>` 标签示例中的问题块数量仅用于展示格式,实际数量由 review 结果决定;
|
|
220
224
|
|
|
@@ -280,6 +284,21 @@
|
|
|
280
284
|
> - **行号计算**:参考第 13 条 行号计算规范
|
|
281
285
|
> - **行号定位**:参考第 16 条 问题报告位置规则
|
|
282
286
|
> - 无问题时输出空数组:`<LINE_INFO>[]</LINE_INFO>`
|
|
287
|
+
> - **⚠️ 强制输出格式**(关键规则):
|
|
288
|
+
> - **必须使用固定格式输出每个问题**,以便程序切分:
|
|
289
|
+
```markdown
|
|
290
|
+
**问题 1**:[问题描述]<br/>
|
|
291
|
+
**文件及行号**:[文件路径:行号]<br/>
|
|
292
|
+
**修改建议**:[正确示例代码或说明]
|
|
293
|
+
|
|
294
|
+
**问题 2**:[问题描述]<br/>
|
|
295
|
+
**文件及行号**:[文件路径:行号]<br/>
|
|
296
|
+
**修改建议**:[正确示例代码或说明]
|
|
297
|
+
```
|
|
298
|
+
> - **每个问题必须以 `**问题 N**:` 开头**(N 为阿拉伯数字),方便程序通过正则切分
|
|
299
|
+
> - **禁止**使用其他格式(如 `1. **xxx**`、`### 问题 1`、`**问题一**` 等)
|
|
300
|
+
> - **禁止**在问题描述中使用"(行 X)"这样的行号标注,行号只能通过 `<LINE_INFO>` 标签提供
|
|
301
|
+
> - **禁止**在报告中输出错误代码示例(已经有行号定位了,不需要重复)
|
|
283
302
|
|
|
284
303
|
19. **误报防控检查清单**(报告前必须确认):
|
|
285
304
|
> - [ ] **已安全处理验证**:代码是否已有判空/异常处理/边界检查?如是,省略该问题
|
|
@@ -16,8 +16,27 @@ description: 代码审查技能,审查变更代码并输出 REPORT 和 LINE_IN
|
|
|
16
16
|
3. **解析行号**:**基于 diff 块内容逐行计数**
|
|
17
17
|
- **⚠️ 重要**:行号计算规则详见 @.claude/rules/code-review-rules.md 第 13 条
|
|
18
18
|
- **禁止**读取完整文件后计算绝对行号
|
|
19
|
-
- **必须**基于 diff
|
|
19
|
+
- **必须**基于 diff 块内容,从 `@@ ... @@` 头之后开始逐行计数
|
|
20
|
+
- **忽略元数据行**:忽略 `=== File Information ===`、`=== Diff Content ===`、`New Path:` 等所有元数据行
|
|
21
|
+
- **计数起点**:从 `@@ -0,0 +1,N @@` 或 `@@ -old,count +new,count @@` 之后的第一行开始计数(该行 = 行号 1)
|
|
22
|
+
- **⚠️ 行号计算示例**:
|
|
23
|
+
```
|
|
24
|
+
@@ -0,0 +1,56 @@
|
|
25
|
+
+package com.job51.dev.bbs.controller; // 行号 = 1
|
|
26
|
+
+ // 行号 = 2
|
|
27
|
+
+import java.util.List; // 行号 = 3
|
|
28
|
+
...
|
|
29
|
+
+public class Test { // 行号 = 17
|
|
30
|
+
+ public void method() { // 行号 = 18
|
|
31
|
+
+ Object obj = service.getData(); // 行号 = 19
|
|
32
|
+
+ obj.toString(); // 行号 = 20 ← 问题在这,new_line = 20
|
|
33
|
+
+ }
|
|
34
|
+
+}
|
|
35
|
+
```
|
|
20
36
|
- 行号定义:行号是变更后文件中的绝对行号(从 1 开始计数)
|
|
37
|
+
- **验证方法**:输出前检查行号是否合理
|
|
38
|
+
- 对于 `@@ -0,0 +1,N @@` 的新文件,最大行号应该是 N
|
|
39
|
+
- 如果报告的行号超过 diff 块的 `new_count`,说明计算错误
|
|
21
40
|
- 例如:如果新增代码在 diff 块的第 43 行,则 `new_line = 43`
|
|
22
41
|
|
|
23
42
|
4. **读取上下文**:基于 New Path 读取变更后文件,涉及方法调用时追踪读取实现代码
|
|
@@ -32,6 +51,18 @@ description: 代码审查技能,审查变更代码并输出 REPORT 和 LINE_IN
|
|
|
32
51
|
|
|
33
52
|
## 输出模板
|
|
34
53
|
|
|
54
|
+
**⚠️ 强制格式要求**:
|
|
55
|
+
|
|
56
|
+
1. **问题格式**:每个问题必须以 `**问题 N**:` 开头(N 为阿拉伯数字 1,2,3...)
|
|
57
|
+
- **正确**:`**问题 1**:`、`**问题 2**:`
|
|
58
|
+
- **错误**:`1. **xxx**`、`### 问题 1`、`**问题一**:`、`**问题 1**: xxx(行 43)`
|
|
59
|
+
|
|
60
|
+
2. **行号标注**:**禁止**在问题描述中写"(行 X)",行号只能通过 `<LINE_INFO>` 标签提供
|
|
61
|
+
|
|
62
|
+
3. **LINE_INFO**:必须与问题一一对应,第 N 个元素对应问题 N 的行号
|
|
63
|
+
|
|
64
|
+
4. **禁止输出错误代码示例**:已经有行号定位了,不需要重复输出错误代码
|
|
65
|
+
|
|
35
66
|
<REPORT>
|
|
36
67
|
## 🤖 AI 代码审查结果
|
|
37
68
|
|