job51-gitlab-cr-node-skill-prompt-optimize 1.3.9 → 1.4.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.
- package/.claude/skills/simple-code-review/SKILL.md +84 -68
- package/index.js +1 -0
- package/package.json +1 -1
|
@@ -1,68 +1,84 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: simple-code-review
|
|
3
|
-
description: 你是一个专业的代码审查助手。请严格根据代码规范、安全规则(如 SQL 注入防护、XSS 防护)、性能要求(如时间复杂度优化、内存占用控制)、可读性要求(如注释完整性、命名规范性)及功能正确性标准处理指定文件中的代码变更内容
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 处理步骤
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
[
|
|
68
|
-
|
|
1
|
+
---
|
|
2
|
+
name: simple-code-review
|
|
3
|
+
description: 你是一个专业的代码审查助手。请严格根据代码规范、安全规则(如 SQL 注入防护、XSS 防护)、性能要求(如时间复杂度优化、内存占用控制)、可读性要求(如注释完整性、命名规范性)及功能正确性标准处理指定文件中的代码变更内容
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 处理步骤
|
|
7
|
+
|
|
8
|
+
1. **读取 diff 文件**:使用 Read 工具读取文件:$ARGUMENTS
|
|
9
|
+
|
|
10
|
+
2. **解析文件信息**:从文件内容中提取以下信息
|
|
11
|
+
- `Block Index`: 当前块的索引号
|
|
12
|
+
- `Line Info`: 行号信息 JSON 对象,包含 `old_start`, `old_count`, `new_start`, `new_count`, `firstLineFirstChar`
|
|
13
|
+
- `Diff Content`: 实际的代码变更内容(unified diff 格式)
|
|
14
|
+
|
|
15
|
+
3. **解析 Line Info**:解析 `Line Info` 行中的 JSON 对象,获取 diff 块的行号信息
|
|
16
|
+
- `new_start`: 变更后代码的起始行号
|
|
17
|
+
- `new_count`: 变更后代码的行数
|
|
18
|
+
- `old_start`: 变更前代码的起始行号(仅作参考)
|
|
19
|
+
- `old_count`: 变更前代码的行数(仅作参考)
|
|
20
|
+
- `firstLineFirstChar`: diff 块第一行的第一个字符(`+` 表示新增,` ` 表示保留)
|
|
21
|
+
|
|
22
|
+
4. **仅审查新增代码**(关键规则):
|
|
23
|
+
- **只审查 `+` 开头的新增代码行**
|
|
24
|
+
- **忽略 `-` 开头的已删除代码行**(已删除的代码不纳入审查范围)
|
|
25
|
+
- 空格开头的上下文代码仅作参考,不进行审查
|
|
26
|
+
|
|
27
|
+
5. **读取项目上下文文件**:
|
|
28
|
+
- 基于 `Line Info` 和 diff 内容,读取**变更后文件**(New Path)的完整内容
|
|
29
|
+
- 如果涉及方法调用,读取相关方法/类的实现代码以确认是否存在真实的运行时风险
|
|
30
|
+
|
|
31
|
+
6. **深度分析代码上下文(必须执行)**:
|
|
32
|
+
- 对于 diff 中涉及的方法/函数调用,**必须**使用 Read 工具追踪读取该方法的实现代码
|
|
33
|
+
- **跨 diff 块分析**:同一文件可能有多个 diff 块,必须合并分析
|
|
34
|
+
- 只有在确认方法/函数确实可能返回危险值时,才能报告严重问题
|
|
35
|
+
|
|
36
|
+
7. **结合项目上下文**,按照 @.claude/rules/code-review-rules.md 中的规则进行审查
|
|
37
|
+
|
|
38
|
+
8. **提取行号信息**:审查完成后,从审查结果中提取所有问题的行号信息
|
|
39
|
+
- 遍历每个问题,解析"**文件及行号**"行中的文件路径和行号
|
|
40
|
+
- 将行号信息以 JSON 数组格式放入 `<LINE_INFO>` 标签内
|
|
41
|
+
- **LINE_INFO 格式必须包含 `new_path` 和 `new_line` 字段**:
|
|
42
|
+
- 示例:`<LINE_INFO>[{"new_path":"src/main/java/UserService.java","new_line":87}]</LINE_INFO>`
|
|
43
|
+
- **字段说明**:
|
|
44
|
+
- `new_path`: 变更后文件路径(必填)
|
|
45
|
+
- `new_line`: 变更后代码行号(必填,指向 `+` 开头的新增代码在变更后文件中的行号)
|
|
46
|
+
|
|
47
|
+
9. 输出格式必须以下方模板为准
|
|
48
|
+
|
|
49
|
+
## 输出模板
|
|
50
|
+
|
|
51
|
+
**说明**:
|
|
52
|
+
- 必须以 `<REPORT>` 开始,以 `</REPORT>` 结束
|
|
53
|
+
- 若某类问题不存在,则**完全省略该模块**(不输出对应标题)
|
|
54
|
+
- 所有占位符必须被真实内容替换
|
|
55
|
+
- 带圈数字序号:① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩
|
|
56
|
+
|
|
57
|
+
<REPORT>
|
|
58
|
+
## 🤖 AI 代码审查结果
|
|
59
|
+
|
|
60
|
+
**生成时间**: [当前时间]
|
|
61
|
+
**审查范围**: 仅审查新增代码(+ 开头的行)
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### 审查总览
|
|
66
|
+
|
|
67
|
+
[简要总结]
|
|
68
|
+
|
|
69
|
+
### 🔴 严重问题
|
|
70
|
+
|
|
71
|
+
[带圈数字序号][问题描述]<br/>
|
|
72
|
+
**文件及行号**:[完整文件路径:行号,如:src/main/java/com/example/UserService.java:87]<br/>
|
|
73
|
+
**修改建议**:[修复建议 + 错误代码 + 正确示例]
|
|
74
|
+
|
|
75
|
+
### 🟡 警告
|
|
76
|
+
|
|
77
|
+
[带圈数字序号][问题描述]<br/>
|
|
78
|
+
**文件及行号**:[完整文件路径:行号]<br/>
|
|
79
|
+
**修改建议**:[改进建议 + 代码示例]
|
|
80
|
+
|
|
81
|
+
</REPORT>
|
|
82
|
+
<LINE_INFO>
|
|
83
|
+
[{"new_path":"文件路径","new_line":行号}]
|
|
84
|
+
</LINE_INFO>
|
package/index.js
CHANGED
|
@@ -205,6 +205,7 @@ ${diffObject.diff}`;
|
|
|
205
205
|
1. 严格按照 .claude/skills/simple-code-review/SKILL.md 中定义的模板格式输出
|
|
206
206
|
2. **每个模块不是必须的**:没有对应问题时,完全省略该模块(不输出标题)
|
|
207
207
|
3. 必须以 <REPORT> 开始,以 </REPORT> 结束
|
|
208
|
+
4. 如有严重问题,在<LINE_INFO>标签中构建问题对应的行号信息
|
|
208
209
|
4. 不要输出任何额外的解释、问候或总结文本`;
|
|
209
210
|
//打印
|
|
210
211
|
debugLog(`Claude命令: ${prompt}`);
|
package/package.json
CHANGED