@zhanlucode/zl-darwin-arm64 1.6.4-moma.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.
- package/LICENSE +22 -0
- package/bin/rg +0 -0
- package/bin/tree-sitter/tree-sitter-bash.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-c.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-c_sharp.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-cpp.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-css.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-dart.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-elisp.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-elixir.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-elm.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-embedded_template.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-go.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-html.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-java.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-javascript.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-json.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-kotlin.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-lua.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-objc.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-ocaml.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-php.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-python.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-ql.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-rescript.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-ruby.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-rust.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-scala.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-solidity.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-swift.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-systemrdl.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-tlaplus.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-toml.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-tsx.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-typescript.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-vue.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-yaml.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-zig.wasm +0 -0
- package/bin/tree-sitter/tree-sitter.wasm +0 -0
- package/bin/zhanlu-plugins/bundle-index.json +60 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/.claude-plugin/plugin.json +42 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/README.md +29 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/mcps/sast_fixer_mcp/README.md +10 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/SKILL.md +179 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/config/gitlab_config.json +5 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/prompts/step1_preparation.md +167 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/prompts/step2_consistency_check.md +446 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/scripts/gitlab_clone.py +213 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/scripts/read_excel_requirements.py +144 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/GITLAB_USAGE.md +160 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/QUICK_REFERENCE.md +149 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/README.md +134 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/SKILL.md +151 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/assets/review_standards.md +144 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/file_review_prompt.md +160 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/output_requirements.md +35 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step1_project_preprocessing.md +106 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step2_file_review.md +83 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step3_report_generation.md +319 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/scripts/gitlab_clone.py +213 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/SKILL.md +366 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/generation-rules.md +214 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/query-rules.md +60 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/review-rules.md +117 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/save-rules.md +367 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/quality_scan/SKILL.md +195 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirement-analysis/SKILL.md +346 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirement-review/SKILL.md +267 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirements-gather/SKILL.md +187 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/sast_scan/SKILL.md +312 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/SKILL.md +77 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/evals/evals.json +34 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-methodology.md +122 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-template.md +93 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-to-task-template.md +221 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/story-to-task-methodology.md +139 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/story-to-task-template.md +89 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/.claude-plugin/plugin.json +19 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/README.md +21 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/.gitkeep +1 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-analysis/SKILL.md +383 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/SKILL.md +348 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-methodology.md +122 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-template.md +93 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-to-task-template.md +221 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/story-to-task-methodology.md +139 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/story-to-task-template.md +89 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-review/SKILL.md +350 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirements-gather/SKILL.md +244 -0
- package/bin/zl +4 -0
- package/package.json +18 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code_review
|
|
3
|
+
description: 覆盖代码质量、功能一致性、架构先进性3大维度25个评审点,自动完成代码评审并生成专业结构化报告,报告保存为{项目名称}项目级代码评审分析报告.md
|
|
4
|
+
version: 1.5.0
|
|
5
|
+
author: Code Review Team
|
|
6
|
+
trigger_words:
|
|
7
|
+
- 项目级代码评审
|
|
8
|
+
- 代码评审
|
|
9
|
+
- 评审代码
|
|
10
|
+
- 做代码评审
|
|
11
|
+
- 检查项目代码
|
|
12
|
+
- 评审 GitLab
|
|
13
|
+
- GitLab代码评审
|
|
14
|
+
instructions: |
|
|
15
|
+
⚠️【强制要求】必须严格按照以下步骤顺序执行,不可跳步或调整顺序:
|
|
16
|
+
|
|
17
|
+
**步骤0**: 代码准备(根据输入类型自动判断)
|
|
18
|
+
- 📖 检测用户输入内容:
|
|
19
|
+
* 如果包含 GitLab URL(以 https://gitlab.com/ 或 http://gitlab. 开头),则执行 GitLab 代码拉取
|
|
20
|
+
* 如果是本地路径(@路径 或直接提供路径),则直接使用本地代码
|
|
21
|
+
- 🔧 GitLab 代码拉取流程:
|
|
22
|
+
* 从输入中提取 GitLab 仓库 URL 和本地保存路径
|
|
23
|
+
* 调用 `scripts/gitlab_clone.py` 脚本拉取代码(跨平台 Python 版本)
|
|
24
|
+
* 示例命令格式(Windows):`python scripts/gitlab_clone.py -u https://gitlab.com/group/project.git -p D:\code\review`
|
|
25
|
+
* 示例命令格式(Linux/macOS):`python3 scripts/gitlab_clone.py -u https://gitlab.com/group/project.git -p ~/code/review`
|
|
26
|
+
* 等待脚本执行完成,获取拉取后的本地路径
|
|
27
|
+
* ✅ 完成后在终端输出: "✅ 步骤0完成:代码已准备就绪,本地路径: {local_path}"
|
|
28
|
+
- 📂 本地项目流程:
|
|
29
|
+
* 直接使用用户提供的本地项目路径
|
|
30
|
+
* ✅ 完成后在终端输出: "✅ 步骤0完成:使用本地项目路径 {local_path}"
|
|
31
|
+
|
|
32
|
+
**步骤1**: 执行项目预处理
|
|
33
|
+
- 📖 首先读取 `prompts/step1_project_preprocessing.md` 获取详细执行指南
|
|
34
|
+
- 识别项目类型和技术栈
|
|
35
|
+
- 分析项目结构、依赖关系
|
|
36
|
+
- 确定评审范围和优先级(P0/P1/P2)
|
|
37
|
+
- 🚀 性能优化:若文件总数 > 500,仅标记核心 P0 文件进行深度评审
|
|
38
|
+
- ✅ 完成后在终端输出: "✅ 步骤1完成:项目预处理已完成"
|
|
39
|
+
|
|
40
|
+
**步骤2**: 执行文件级评审
|
|
41
|
+
- 📖 首先读取 `prompts/step2_file_review.md` 获取详细执行指南
|
|
42
|
+
- 按优先级依次评审文件
|
|
43
|
+
- 🚀 性能优化策略:
|
|
44
|
+
* 文件数 > 500:仅深度评审 P0 文件
|
|
45
|
+
* 文件数 200-500:深度评审 P0 + 中度评审 P1
|
|
46
|
+
* 文件数 < 200:全面评审 P0 + P1 + P2
|
|
47
|
+
- P0深度评审、P1中度评审、P2广度扫描
|
|
48
|
+
- 收集所有评审结果
|
|
49
|
+
- ✅ 完成后在终端输出: "✅ 步骤2完成:文件级评审已完成,共评审 {file_count} 个文件"
|
|
50
|
+
|
|
51
|
+
**步骤3**: 生成并保存报告
|
|
52
|
+
- 📖 首先读取 `prompts/step3_report_generation.md` 获取详细执行指南
|
|
53
|
+
- 汇总所有文件评审结果
|
|
54
|
+
- 生成结构化报告
|
|
55
|
+
- 保存为 {项目名称}项目级代码评审分析报告.md
|
|
56
|
+
- 保存成功后,在终端向用户报告文件的完整保存路径
|
|
57
|
+
- ✅ 完成后在终端输出: "✅ 步骤3完成:代码评审报告已生成并保存至 {完整文件路径}"
|
|
58
|
+
|
|
59
|
+
⚠️ **重要提醒**:
|
|
60
|
+
- 每个步骤开始前,必须先读取对应的提示词文件(prompts/step*.md)
|
|
61
|
+
- 严格按照提示词文件中的要求执行,不得跳过任何子步骤
|
|
62
|
+
- 评审标准详见 `assets/review_standards.md`
|
|
63
|
+
- 输出要求详见 `prompts/output_requirements.md`
|
|
64
|
+
- 禁止输出任何乱码、不可见字符、问号乱码串 ���、特殊控制符、零宽空格
|
|
65
|
+
- GitLab Token 配置:首次使用前需在 `config/gitlab_config.json` 中配置您的 GitLab Token
|
|
66
|
+
- GitLab 评审示例(Windows):`评审 GitLab https://gitlab.com/group/project.git D:\code\review`
|
|
67
|
+
- GitLab 评审示例(Linux/macOS):`评审 GitLab https://gitlab.com/group/project.git ~/code/review`
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
# 项目级代码评审 Skill
|
|
71
|
+
|
|
72
|
+
## 角色与目标
|
|
73
|
+
|
|
74
|
+
你是一名资深代码评审专家,拥有丰富的软件工程与安全编码经验。请严格依据评审标准,对用户提供的代码项目进行全面、客观、可落地的审查。
|
|
75
|
+
|
|
76
|
+
**任务目标**:对目标项目执行项目级代码评审,覆盖以下三大维度共 **25 个评审点**:
|
|
77
|
+
- **维度1:代码质量评审**(22个评审点)
|
|
78
|
+
- **维度2:代码与功能一致性评审**(1个评审点)
|
|
79
|
+
- **维度3:技术架构先进性评审**(2个评审点)
|
|
80
|
+
|
|
81
|
+
评审标准详见 `assets/review_standards.md`。
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 执行流程
|
|
86
|
+
|
|
87
|
+
本 Skill 采用三阶段执行流程,每个阶段的详细操作指南请参考对应的提示词文件:
|
|
88
|
+
|
|
89
|
+
### 第一步:项目预处理
|
|
90
|
+
|
|
91
|
+
📖 **详细指南**:`prompts/step1_project_preprocessing.md`
|
|
92
|
+
|
|
93
|
+
核心任务:
|
|
94
|
+
- 文件过滤(排除依赖、配置、测试等非核心文件)
|
|
95
|
+
- 架构基线提取(识别技术栈、框架、架构类型)
|
|
96
|
+
- 依赖关系分析(构建全局依赖图)
|
|
97
|
+
- 文件优先级划分(P0/P1/P2)
|
|
98
|
+
|
|
99
|
+
⚠️ 必须严格按照提示词文件中的要求执行,完成后在终端输出完成标记。
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### 第二步:文件级评审
|
|
104
|
+
|
|
105
|
+
📖 **详细指南**:`prompts/step2_file_review.md`
|
|
106
|
+
|
|
107
|
+
核心任务:
|
|
108
|
+
- 项目上下文检索(最小上下文闭包)
|
|
109
|
+
- 文件级深度评审(覆盖 25 个评审点)
|
|
110
|
+
- 跨文件影响分析
|
|
111
|
+
- 架构合规校验
|
|
112
|
+
- 结果汇总
|
|
113
|
+
|
|
114
|
+
⚠️ 按 P0 → P1 → P2 顺序评审,必须严格按照提示词文件中的要求执行。
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### 第三步:报告生成
|
|
119
|
+
|
|
120
|
+
📖 **详细指南**:`prompts/step3_report_generation.md`
|
|
121
|
+
|
|
122
|
+
核心任务:
|
|
123
|
+
- 汇总所有文件评审结果
|
|
124
|
+
- 问题去重与合并
|
|
125
|
+
- 生成结构化报告(包含项目概览、总体评价、问题清单、改进建议等)
|
|
126
|
+
- 保存报告到项目根目录
|
|
127
|
+
|
|
128
|
+
⚠️ 报告格式必须严格按照提示词文件中的模板执行,保存后向用户报告完整路径。
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 输出要求与使用说明
|
|
133
|
+
|
|
134
|
+
📖 **详细说明**:`prompts/output_requirements.md`
|
|
135
|
+
|
|
136
|
+
**核心要求**:
|
|
137
|
+
1. 客观准确:每个问题需给出明确判定依据
|
|
138
|
+
2. 建设性:提供可落地的修改方案
|
|
139
|
+
3. 风险分级:清晰区分严重问题与一般性问题
|
|
140
|
+
4. 报告保存:必须保存为 `{项目名称}项目级代码评审分析报告.md`
|
|
141
|
+
5. 禁止输出任何乱码、不可见字符、问号乱码串 ���、特殊控制符、零宽空格
|
|
142
|
+
|
|
143
|
+
**触发方式**:
|
|
144
|
+
- 说出触发词:“项目级代码评审”、“代码评审”、“评审代码”等
|
|
145
|
+
- 指定项目路径:`@项目路径 进行代码评审`
|
|
146
|
+
- GitLab 仓库评审(Windows):`评审 GitLab https://gitlab.com/group/project.git D:\code\review`
|
|
147
|
+
- GitLab 仓库评审(Linux/macOS):`评审 GitLab https://gitlab.com/group/project.git ~/code/review`
|
|
148
|
+
|
|
149
|
+
**注意事项**:
|
|
150
|
+
- 大型项目(>500 个源文件)建议分批次评审,优先关注 P0 核心文件
|
|
151
|
+
- 评审结果仅供参考,最终修复决策需结合业务实际情况
|
package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/assets/review_standards.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# 项目级代码评审标准(V1.0)
|
|
2
|
+
|
|
3
|
+
## 维度1:代码质量评审(22个评审点)
|
|
4
|
+
|
|
5
|
+
### 1. 代码可读性
|
|
6
|
+
- **评审点描述**:评估代码命名规范、缩进格式、注释完整性、结构清晰度,确保开发者可快速理解逻辑;同时关注类型安全(如Integer判等)和代码格式规范。
|
|
7
|
+
- **一般性问题判定**:变量/函数/类命名未遵循驼峰规范、语义模糊;缩进格式局部不统一;核心逻辑注释缺失≤3处;代码结构局部混乱;注释与代码逻辑不一致≤2处。
|
|
8
|
+
- **严重问题判定**:核心类/函数无任何注释;标识符命名无业务含义、无法识别用途;全局缩进/换行格式混乱;代码逻辑无分层、无法快速阅读理解;存在Integer用==判等的类型安全风险。
|
|
9
|
+
|
|
10
|
+
### 2. 代码可维护性
|
|
11
|
+
- **评审点描述**:评估模块化程度、函数职责单一性、依赖关系合理性、便于扩展与修复;关注代码位置是否恰当、实现方式是否可复用。
|
|
12
|
+
- **一般性问题判定**:单个模块与其他模块耦合≤2处;单函数职责不单一≤1处;模块间依赖关系局部不清晰;新增小功能需小幅修改原有代码。
|
|
13
|
+
- **严重问题判定**:模块间高度耦合、修改一处影响全局;单函数承担≥3种无关职责;依赖关系混乱、存在循环依赖;新增核心功能需重构现有代码、无法平滑扩展。
|
|
14
|
+
|
|
15
|
+
### 3. 代码复杂度
|
|
16
|
+
- **评审点描述**:通过循环嵌套、条件判断、函数行数评估逻辑复杂度,避免难以测试和维护的代码结构。
|
|
17
|
+
- **一般性问题判定**:循环/条件嵌套3层;单函数代码行数81-120行;局部条件判断逻辑复杂≤2处。
|
|
18
|
+
- **严重问题判定**:循环/条件嵌套≥4层;单函数代码行数>120行;圈复杂度>15;逻辑分支混乱、无法编写单元测试。
|
|
19
|
+
|
|
20
|
+
### 4. 代码冗余度
|
|
21
|
+
- **评审点描述**:检测重复代码、未使用变量/函数/导入、冗余逻辑,精简代码量。
|
|
22
|
+
- **一般性问题判定**:未使用import/变量/函数≤3个;相同代码块重复≤2处;冗余条件判断≤2处;重复导入包≤2个。
|
|
23
|
+
- **严重问题判定**:未使用import/变量/函数>3个;相同代码块(≥5行)重复≥3处;大量无效逻辑/死代码;冗余代码导致维护易出错、逻辑冲突。
|
|
24
|
+
|
|
25
|
+
### 5. 日志完整性
|
|
26
|
+
- **评审点描述**:评估关键操作、数据修改、异常处理的日志记录完整性,确保可排查问题。
|
|
27
|
+
- **一般性问题判定**:非核心接口/次要操作无日志;日志缺失非关键上下文信息≤2处。
|
|
28
|
+
- **严重问题判定**:核心业务流程/数据库写操作/外部接口调用无日志;异常捕获后无日志打印;日志无关键信息、无法定位问题根因。
|
|
29
|
+
|
|
30
|
+
### 6. 日志级别合理性
|
|
31
|
+
- **评审点描述**:评估DEBUG/INFO/WARN/ERROR/FATAL级别使用准确性,避免日志噪音和级别滥用。
|
|
32
|
+
- **一般性问题判定**:≤3处日志级别混用;非核心流程打印冗余INFO日志;DEBUG日志在生产环境少量开启。
|
|
33
|
+
- **严重问题判定**:系统异常用INFO级别打印;核心错误未使用ERROR级别;高频循环内打印INFO日志造成性能损耗;日志级别混乱、无法用于监控排查。
|
|
34
|
+
|
|
35
|
+
### 7. 疑似后门检测
|
|
36
|
+
- **评审点描述**:检测未授权访问、隐藏开关、硬编码密钥、预留后门,以及反射滥用等破坏封装性的代码。
|
|
37
|
+
- **一般性问题判定**:代码存在测试相关可疑注释;临时功能开关未及时清理≤1个。
|
|
38
|
+
- **严重问题判定**:代码硬编码密钥/Token;存在未授权访问接口/隐藏入口;使用setAccessible(true)破坏封装;存在backdoor/testonly相关后门代码。
|
|
39
|
+
|
|
40
|
+
### 8. 个人敏感信息脱敏不当
|
|
41
|
+
- **评审点描述**:评估身份证、手机号、银行卡、邮箱等信息是否规范脱敏,防止合规风险。
|
|
42
|
+
- **一般性问题判定**:≤1个敏感字段未脱敏;脱敏格式不规范(如掩码位置错误)≤2处。
|
|
43
|
+
- **严重问题判定**:>5个敏感字段明文展示;身份证/银行卡/密码完整明文输出;存在数据合规泄露风险。
|
|
44
|
+
|
|
45
|
+
### 9. 后台地址暴露
|
|
46
|
+
- **评审点描述**:检测是否暴露后台地址、API前缀、服务器IP等信息(通过前端、日志、错误页等)。
|
|
47
|
+
- **一般性问题判定**:日志/注释中轻微泄露非核心接口地址≤1处。
|
|
48
|
+
- **严重问题判定**:前端代码/错误页/接口响应明文暴露内网IP、后台管理路径、核心API前缀;存在未授权访问的安全风险。
|
|
49
|
+
|
|
50
|
+
### 10. 高敏感信息存储展示
|
|
51
|
+
- **评审点描述**:评估密码、密钥、Token是否明文存储/展示,禁止在代码、日志、配置中明文出现。
|
|
52
|
+
- **一般性问题判定**:非核心配置文件未加密;临时调试打印高敏感信息≤1处且已标注清理。
|
|
53
|
+
- **严重问题判定**:代码/配置文件明文存储密码/密钥;日志打印完整Token/密钥;存在高敏感信息泄露的重大安全漏洞。
|
|
54
|
+
|
|
55
|
+
### 11. 并发与竞态条件
|
|
56
|
+
- **评审点描述**:评估高并发下死锁、脏读、数据竞争、线程安全问题,以及锁使用的合理性。
|
|
57
|
+
- **一般性问题判定**:共享变量临界区处理局部不规范;锁粒度不合理≤1处;偶发非核心数据不一致。
|
|
58
|
+
- **严重问题判定**:存在嵌套锁死锁风险;多线程下脏读/脏写/数据竞争;核心共享变量无线程安全保障;并发场景下服务性能急剧下降。
|
|
59
|
+
|
|
60
|
+
### 12. 缓存安全策略
|
|
61
|
+
- **评审点描述**:评估缓存击穿、穿透、雪崩风险,确保缓存配置合理,避免数据库被压垮。
|
|
62
|
+
- **一般性问题判定**:缓存过期时间局部不合理;热点数据无轻量级防护;缓存配置小范围不规范。
|
|
63
|
+
- **严重问题判定**:热点数据无防击穿措施;无防穿透/空值缓存策略;缓存过期时间集中、存在雪崩风险;高并发下可直接压垮数据库。
|
|
64
|
+
|
|
65
|
+
### 13. 接口幂等性
|
|
66
|
+
- **评审点描述**:评估接口重试安全性、是否支持幂等调用,防止重复请求导致数据重复或状态异常。
|
|
67
|
+
- **一般性问题判定**:非核心写接口重试机制局部不完善;无明确幂等标识但无重复执行风险。
|
|
68
|
+
- **严重问题判定**:核心写接口(支付/下单/更新)不支持幂等;重复调用导致数据重复插入/重复扣款;无任何幂等防护机制。
|
|
69
|
+
|
|
70
|
+
### 14. 安全漏洞
|
|
71
|
+
- **评审点描述**:检测SQL注入、XSS、越权访问、注入攻击(Shell)、加密算法风险、第三方库安全风险。
|
|
72
|
+
- **一般性问题判定**:存在轻微安全防护不足≤1处;第三方库未做CVE漏洞扫描;输入参数局部未校验。
|
|
73
|
+
- **严重问题判定**:存在SQL注入/XSS/越权访问/Shell注入漏洞;使用不安全加密算法(如RSA ECB模式);第三方库存在高危CVE漏洞。
|
|
74
|
+
|
|
75
|
+
### 15. 算法效率
|
|
76
|
+
- **评审点描述**:评估核心算法时间/空间复杂度,识别循环内低效操作、重复查询、重复初始化等性能瓶颈。
|
|
77
|
+
- **一般性问题判定**:非核心路径算法可优化;循环内重复查询≤2次;局部对象重复创建。
|
|
78
|
+
- **严重问题判定**:核心业务算法为O(n²)复杂度;大数据量下接口响应超时;循环内频繁创建大对象/数据库查询;存在明确性能瓶颈。
|
|
79
|
+
|
|
80
|
+
### 16. 资源占用
|
|
81
|
+
- **评审点描述**:评估内存、CPU、IO占用,检测内存泄漏、频繁GC、IO风暴、定时器未清理等问题。
|
|
82
|
+
- **一般性问题判定**:临时对象创建过多;少量无效IO操作;非核心资源未及时释放≤1处。
|
|
83
|
+
- **严重问题判定**:存在内存泄漏、内存持续增长;频繁Full GC;产生IO风暴;定时任务未取消、资源耗尽导致服务不稳定。
|
|
84
|
+
|
|
85
|
+
### 17. 缓存使用
|
|
86
|
+
- **评审点描述**:评估缓存合理性,减少DB查询与重复计算,关注缓存粒度、过期设置、数据一致性。
|
|
87
|
+
- **一般性问题判定**:缓存粒度过粗/过细;过期时间设置不合理≤2处;缓存更新局部不规范。
|
|
88
|
+
- **严重问题判定**:高频读数据未使用缓存导致数据库压力过大;缓存数据与数据库不一致;缓存错乱、业务数据异常。
|
|
89
|
+
|
|
90
|
+
### 18. 单元测试覆盖度
|
|
91
|
+
- **评审点描述**:评估行/分支/覆盖度,核心逻辑测试保障;关注边界值、异常场景测试。
|
|
92
|
+
- **一般性问题判定**:代码行覆盖率70%-80%;分支覆盖率60%-70%;次要路径/边界场景未测试。
|
|
93
|
+
- **严重问题判定**:核心业务逻辑无单元测试;代码行覆盖率<50%;无异常场景测试。
|
|
94
|
+
|
|
95
|
+
### 19. 单元测试异味检测
|
|
96
|
+
- **评审点描述**:检测测试用例重复、依赖外部、断言不明确、Mock验证不足、测试隔离缺失等问题。
|
|
97
|
+
- **一般性问题判定**:测试用例局部重复≤2处;断言力度不足≤2处;测试数据复用性差。
|
|
98
|
+
- **严重问题判定**:测试用例无有效断言;用例依赖外部数据库/网络;测试数据未清理、用例间相互干扰;测试结果不可信。
|
|
99
|
+
|
|
100
|
+
### 20. 错误与异常处理
|
|
101
|
+
- **评审点描述**:评估代码对异常情况的处理能力,包括异常捕获、空值处理、异常信息有效性、异常场景测试。
|
|
102
|
+
- **一般性问题判定**:≤2处对象未判空;异常消息硬编码≤2处;局部异常未标准化输出。
|
|
103
|
+
- **严重问题判定**:核心逻辑无异常捕获保护;存在高频空指针风险;异常被吞没、无处理无日志;异常处理不当导致业务重复执行。
|
|
104
|
+
|
|
105
|
+
### 21. 事务管理
|
|
106
|
+
- **评审点描述**:评估事务控制完整性(如插入与更新一致性)、事务边界处理(防止单条异常中断批量)、传播行为合理性。
|
|
107
|
+
- **一般性问题判定**:非核心多表操作未加事务;事务传播行为局部不合理≤1处。
|
|
108
|
+
- **严重问题判定**:核心多表修改无事务控制;批量处理中单条异常中断全部流程;事务边界错误导致数据不一致。
|
|
109
|
+
|
|
110
|
+
### 22. 配置与兼容性
|
|
111
|
+
- **评审点描述**:评估配置项管理(是否硬编码URL/密钥、环境变量优先级)、SQL规范(预编译、索引使用)、版本兼容性(空集合处理、格式适配)。
|
|
112
|
+
- **一般性问题判定**:非敏感配置硬编码≤2处;个别查询SQL未建索引;版本兼容边界处理局部不足。
|
|
113
|
+
- **严重问题判定**:敏感配置(URL/密钥)明文硬编码;SQL直接字符串拼接、存在注入风险;未处理空集合导致接口异常;环境配置不兼容。
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 维度2:代码与功能一致性评审(1个评审点)
|
|
118
|
+
|
|
119
|
+
### 23. 功能实现完整性
|
|
120
|
+
- **评审点描述**:核对需求文档中的功能点是否在代码中完全实现,无遗漏、无偏差、无额外未定义功能、无实现偏差;同时覆盖以下关键检查项:核心功能是否按需求实现、边界条件与异常场景是否正确处理、需求要求的方法是否完整实现、必要业务/转换/回调逻辑是否缺失、参数与非空校验是否完整、服务/接口调用方式是否正确、参数传递是否正确无遗漏、代码是否放置在正确的层级与类中、功能实现方式是否合理符合最佳实践。
|
|
121
|
+
- **一般性问题判定**:
|
|
122
|
+
1. 非核心需求点未实现≤1个;业务边界场景/异常场景处理不全≤2处;
|
|
123
|
+
2. 非关键方法/局部逻辑缺失≤1处;参数/非空校验缺失≤2处;
|
|
124
|
+
3. 服务/接口调用方式局部不合理≤1处;参数传递局部错误/必填参数遗漏≤1处;
|
|
125
|
+
4. 代码位置局部不符合层级/类划分≤1处;实现方式局部不符合最佳实践≤1处。
|
|
126
|
+
- **严重问题判定**:
|
|
127
|
+
1. 核心业务功能未实现;代码逻辑与需求描述完全相反;核心边界条件/异常场景未处理;
|
|
128
|
+
2. 关键业务方法、核心业务/转换/回调逻辑缺失;核心参数/非空校验缺失,存在空指针风险;
|
|
129
|
+
3. 服务/接口调用方式错误导致功能失效;关键参数传递错误或必填参数遗漏,导致业务异常;
|
|
130
|
+
4. 代码位置严重不当(如核心业务逻辑错误放置在工具类/外部类中);实现方式存在重大缺陷,不符合最佳实践且直接影响功能稳定性。
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 维度3:技术架构先进性评审(2个评审点)
|
|
135
|
+
|
|
136
|
+
### 24. 技术栈时效性
|
|
137
|
+
- **评审点描述**:评估编程语言、框架、库版本是否主流安全,无过时组件,避免已知高危漏洞。
|
|
138
|
+
- **一般性问题判定**:框架小版本滞后官方最新版;非核心依赖库版本略旧、无安全风险。
|
|
139
|
+
- **严重问题判定**:使用官方停止维护(EOL)的框架/组件;技术栈存在高危CVE漏洞;版本过旧无法修复安全问题。
|
|
140
|
+
|
|
141
|
+
### 25. 架构扩展性
|
|
142
|
+
- **评审点描述**:评估架构是否支持扩展、适配业务未来发展,模块划分清晰,降低耦合。
|
|
143
|
+
- **一般性问题判定**:新增小功能需小幅调整模块;模块划分局部不清晰;耦合度局部偏高。
|
|
144
|
+
- **严重问题判定**:架构紧耦合、新增核心功能需重构;模块划分混乱、无法横向扩展;不支持业务规模增长。
|
package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/file_review_prompt.md
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# 文件级深度评审提示词
|
|
2
|
+
|
|
3
|
+
## 角色设定
|
|
4
|
+
|
|
5
|
+
你是一名资深代码评审专家,拥有丰富的软件工程与安全编码经验。请严格依据下述评审标准,对用户提供的代码文件进行全面、客观、可落地的审查。输出需采用Markdown格式,重点突出问题和改进建议。
|
|
6
|
+
|
|
7
|
+
## 任务目标
|
|
8
|
+
|
|
9
|
+
对当前代码文件执行项目级代码评审,覆盖代码质量、功能一致性、技术架构三大维度的所有评审点。识别一般性问题与严重问题,并给出具体修改建议和判定依据。
|
|
10
|
+
|
|
11
|
+
## 输入上下文
|
|
12
|
+
|
|
13
|
+
### 1. 目标文件内容
|
|
14
|
+
```
|
|
15
|
+
{context_result.target_file_content}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 2. 关联上下文
|
|
19
|
+
```json
|
|
20
|
+
{context_result.related_contexts}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 3. 项目架构基线
|
|
24
|
+
```json
|
|
25
|
+
{architecture_baseline}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 评审标准
|
|
29
|
+
|
|
30
|
+
请严格按照 `assets/review_standards.md` 中的 **25 个评审点** 进行逐项检查:
|
|
31
|
+
|
|
32
|
+
### 维度1:代码质量评审(22个评审点)
|
|
33
|
+
|
|
34
|
+
| 编号 | 评审点 | 关注重点 |
|
|
35
|
+
|------|--------|----------|
|
|
36
|
+
| 1 | 代码可读性 | 命名规范、注释完整性、格式统一、类型安全 |
|
|
37
|
+
| 2 | 代码可维护性 | 模块化、单一职责、依赖清晰、可扩展性 |
|
|
38
|
+
| 3 | 代码复杂度 | 嵌套层数、函数长度、圈复杂度 |
|
|
39
|
+
| 4 | 代码冗余度 | 重复代码、未使用变量/函数/导入 |
|
|
40
|
+
| 5 | 日志完整性 | 关键操作日志、异常日志 |
|
|
41
|
+
| 6 | 日志级别合理性 | DEBUG/INFO/WARN/ERROR 正确使用 |
|
|
42
|
+
| 7 | 疑似后门检测 | 硬编码密钥、隐藏入口、setAccessible滥用 |
|
|
43
|
+
| 8 | 敏感信息脱敏 | 身份证/手机号/银行卡脱敏 |
|
|
44
|
+
| 9 | 后台地址暴露 | IP/管理路径/API前缀泄露 |
|
|
45
|
+
| 10 | 高敏感信息存储 | 密码/密钥/Token明文存储 |
|
|
46
|
+
| 11 | 并发与竞态条件 | 死锁、数据竞争、线程安全 |
|
|
47
|
+
| 12 | 缓存安全策略 | 击穿/穿透/雪崩防护 |
|
|
48
|
+
| 13 | 接口幂等性 | 重试安全性、防重复提交 |
|
|
49
|
+
| 14 | 安全漏洞 | SQL注入/XSS/越权/Shell注入 |
|
|
50
|
+
| 15 | 算法效率 | 时间/空间复杂度、循环内低效操作 |
|
|
51
|
+
| 16 | 资源占用 | 内存泄漏、GC、IO风暴 |
|
|
52
|
+
| 17 | 缓存使用 | 缓存粒度、过期设置、数据一致性 |
|
|
53
|
+
| 18 | 单元测试覆盖度 | 行覆盖率、分支覆盖率、边界测试 |
|
|
54
|
+
| 19 | 单元测试异味 | 断言有效性、外部依赖、测试隔离 |
|
|
55
|
+
| 20 | 错误与异常处理 | 异常捕获、空值处理、异常信息 |
|
|
56
|
+
| 21 | 事务管理 | 事务完整性、边界处理、传播行为 |
|
|
57
|
+
| 22 | 配置与兼容性 | 硬编码配置、SQL规范、空集合处理 |
|
|
58
|
+
|
|
59
|
+
### 维度2:代码与功能一致性评审(1个评审点)
|
|
60
|
+
|
|
61
|
+
| 编号 | 评审点 | 关注重点 |
|
|
62
|
+
|------|--------|----------|
|
|
63
|
+
| 23 | 功能实现完整性 | 需求覆盖、边界处理、参数校验 |
|
|
64
|
+
|
|
65
|
+
### 维度3:技术架构先进性评审(2个评审点)
|
|
66
|
+
|
|
67
|
+
| 编号 | 评审点 | 关注重点 |
|
|
68
|
+
|------|--------|----------|
|
|
69
|
+
| 24 | 技术栈时效性 | 框架版本、CVE漏洞、EOL组件 |
|
|
70
|
+
| 25 | 架构扩展性 | 模块耦合、扩展难度、业务适配 |
|
|
71
|
+
|
|
72
|
+
## 评审要求
|
|
73
|
+
|
|
74
|
+
### 覆盖范围
|
|
75
|
+
- ✅ **严格覆盖所有评审维度**,不得遗漏任何评审点
|
|
76
|
+
- ✅ 按 `{severity_level}` 标记问题严重度(严重问题 / 一般问题)
|
|
77
|
+
- ✅ 每个问题必须包含:**行号**、**问题描述**、**问题类型**、**优化建议**、**代码示例**(可选)
|
|
78
|
+
|
|
79
|
+
### 重点关注
|
|
80
|
+
- 🔍 **与关联文件的接口兼容性**:检查函数签名、数据结构是否匹配
|
|
81
|
+
- 🔍 **空指针风险**:检查对象使用前是否有判空保护
|
|
82
|
+
- 🔍 **架构分层违规**:检查是否存在跨层调用(如 Controller 直接调用 Model)
|
|
83
|
+
- 🔍 **安全问题**:优先识别 SQL 注入、XSS、硬编码密钥等高危漏洞
|
|
84
|
+
- 🔍 **性能瓶颈**:识别循环内低效操作、N+1 查询等问题
|
|
85
|
+
|
|
86
|
+
### 判定依据
|
|
87
|
+
- 每个问题必须引用 `assets/review_standards.md` 中的具体判定标准
|
|
88
|
+
- 区分"一般性问题"和"严重问题"的界限要清晰
|
|
89
|
+
- 提供可落地的修改方案,而非仅仅批评
|
|
90
|
+
|
|
91
|
+
## 评审输出要求
|
|
92
|
+
|
|
93
|
+
请按照 `prompts/step3_report_generation.md` 中定义的**单文件评审报告格式**输出结果。
|
|
94
|
+
|
|
95
|
+
**关键要求**:
|
|
96
|
+
- 输出必须是**单个文件**的评审结果,不要汇总其他文件
|
|
97
|
+
- 严格按照评审标准判定问题严重度
|
|
98
|
+
- 每个问题必须包含:行号、问题描述、修改建议
|
|
99
|
+
- 重点关注:接口兼容性、空指针风险、架构分层违规、安全问题、性能瓶颈
|
|
100
|
+
|
|
101
|
+
## 评审原则
|
|
102
|
+
|
|
103
|
+
### 1. 客观准确
|
|
104
|
+
- ✅ 每个问题需给出明确判定依据(引用评审标准的具体条款)
|
|
105
|
+
- ✅ 避免主观臆断,基于代码事实进行分析
|
|
106
|
+
- ✅ 对于不确定的问题,标注"待确认"并说明原因
|
|
107
|
+
|
|
108
|
+
### 2. 建设性
|
|
109
|
+
- ✅ 提供可落地的修改方案,包含具体代码示例
|
|
110
|
+
- ✅ 解释"为什么"需要修改,而不仅仅是"怎么改"
|
|
111
|
+
- ✅ 考虑修改成本和收益,给出合理的优先级建议
|
|
112
|
+
|
|
113
|
+
### 3. 风险分级
|
|
114
|
+
- ✅ **严重问题**:可能导致安全漏洞、数据丢失、服务崩溃等
|
|
115
|
+
- ✅ **一般问题**:影响可维护性、性能、代码质量但不会立即导致故障
|
|
116
|
+
- ✅ 清晰区分两者界限,避免过度标记或漏标
|
|
117
|
+
|
|
118
|
+
### 4. 上下文感知
|
|
119
|
+
- ✅ 如果代码片段不完整,基于已有信息判断并说明假设条件
|
|
120
|
+
- ✅ 考虑关联文件的接口约束和调用关系
|
|
121
|
+
- ✅ 结合项目架构基线评估是否符合整体设计规范
|
|
122
|
+
|
|
123
|
+
### 5. 语言简洁
|
|
124
|
+
- ✅ 问题描述简明扼要,直击要害
|
|
125
|
+
- ✅ 修改建议具体可操作,避免模糊表述
|
|
126
|
+
- ✅ 使用开发者易懂的技术术语,避免晦涩难懂
|
|
127
|
+
|
|
128
|
+
## 注意事项
|
|
129
|
+
|
|
130
|
+
### ⚠️ 常见误区避免
|
|
131
|
+
1. **不要**仅指出问题而不给解决方案
|
|
132
|
+
2. **不要**过度批评代码风格差异(除非违反团队规范)
|
|
133
|
+
3. **不要**忽略问题的实际影响程度
|
|
134
|
+
4. **不要**脱离项目上下文孤立评审
|
|
135
|
+
|
|
136
|
+
### ✅ 最佳实践
|
|
137
|
+
1. **先理解后评审**:先阅读完整代码逻辑再下结论
|
|
138
|
+
2. **换位思考**:从维护者角度评估代码的可读性和可修改性
|
|
139
|
+
3. **平衡严谨与实用**:既要严格遵循标准,也要考虑实际业务场景
|
|
140
|
+
4. **持续学习**:参考评审标准文档,不断提升评审专业性
|
|
141
|
+
|
|
142
|
+
## 输出示例
|
|
143
|
+
|
|
144
|
+
### 严重问题示例
|
|
145
|
+
```markdown
|
|
146
|
+
| # | 评审点 | 行号 | 问题描述 | 修改建议 |
|
|
147
|
+
|---|--------|------|----------|----------|
|
|
148
|
+
| 1 | 安全漏洞-SQL注入 | 45 | 第45行使用字符串拼接构建SQL查询,存在SQL注入风险。攻击者可通过构造恶意输入执行任意SQL命令。 | 使用预编译语句(PreparedStatement)替代字符串拼接:<br>`String sql = "SELECT * FROM users WHERE id = ?";`<br>`stmt.setInt(1, userId);` |
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### 一般问题示例
|
|
152
|
+
```markdown
|
|
153
|
+
| # | 评审点 | 行号 | 问题描述 | 修改建议 |
|
|
154
|
+
|---|--------|------|----------|----------|
|
|
155
|
+
| 1 | 代码可读性 | 23 | 变量名 `tmp` 语义不明确,无法直观理解其用途。 | 使用更具描述性的命名,如 `tempUserList` 或 `filteredUsers`,并在上方添加注释说明用途。 |
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
**评审完成标志**:当所有 25 个评审点都已检查完毕,并按上述格式输出报告后,评审结束。
|
package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/output_requirements.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 输出要求
|
|
2
|
+
|
|
3
|
+
1. **客观准确**:每个问题需给出明确判定依据(引用评审标准)
|
|
4
|
+
2. **建设性**:提供可落地的修改方案,而非仅仅批评
|
|
5
|
+
3. **风险分级**:清晰区分严重问题与一般性问题
|
|
6
|
+
4. **上下文感知**:如果代码片段不完整,请基于已有信息判断,并在报告中说明假设条件
|
|
7
|
+
5. **语言简洁**:问题描述简明扼要,修改建议具体可操作
|
|
8
|
+
6. **报告保存**:评审完成后,必须将报告保存为 `{项目名称}项目级代码评审分析报告.md` 文件,存放在被评审项目的根目录下
|
|
9
|
+
|
|
10
|
+
# 使用说明
|
|
11
|
+
|
|
12
|
+
## 触发方式
|
|
13
|
+
|
|
14
|
+
用户可以通过以下方式触发本 Skill:
|
|
15
|
+
- 说出触发词:"项目级代码评审"、"代码评审"、"评审代码"等
|
|
16
|
+
- 指定项目路径:`@项目路径 进行代码评审`
|
|
17
|
+
|
|
18
|
+
## 输入要求
|
|
19
|
+
|
|
20
|
+
用户需要提供:
|
|
21
|
+
1. 项目根目录路径(或在 IDE 中已打开的项目)
|
|
22
|
+
2. 可选:指定评审范围(如"只评审 P0 文件"、"重点关注安全问题")
|
|
23
|
+
|
|
24
|
+
## 注意事项
|
|
25
|
+
|
|
26
|
+
- 大型项目(>500 个源文件)建议分批次评审,优先关注 P0 核心文件
|
|
27
|
+
- 评审结果仅供参考,最终修复决策需结合业务实际情况
|
|
28
|
+
- 对于动态语言(Python/JavaScript),部分类型相关问题可能无法完全检测
|
|
29
|
+
|
|
30
|
+
## 输出说明
|
|
31
|
+
|
|
32
|
+
- 评审报告将自动生成并保存为: `{项目名称}项目级代码评审分析报告.md`
|
|
33
|
+
- 保存位置: 被评审项目的根目录
|
|
34
|
+
- 文件格式: Markdown (.md)
|
|
35
|
+
- 编码格式: UTF-8
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# 第一步:项目预处理(轻量解析)
|
|
2
|
+
|
|
3
|
+
此步骤处理的是已经准备好的本地代码路径,无论代码来源是 GitLab 远程仓库还是本地项目,处理方式完全相同。
|
|
4
|
+
|
|
5
|
+
在开始详细评审前,先对项目进行轻量级分析,划定评审边界:
|
|
6
|
+
|
|
7
|
+
## 1.1 文件过滤
|
|
8
|
+
|
|
9
|
+
自动过滤以下非核心文件和目录,仅保留源码进行分析:
|
|
10
|
+
- **依赖目录**:`node_modules`、`vendor`、`.gradle`、`target`、`build`、`dist`、`out`
|
|
11
|
+
- **版本控制**:`.git`、`.svn`、`.hg`
|
|
12
|
+
- **IDE配置**:`.idea`、`.vscode`、`.eclipse`、`*.iml`
|
|
13
|
+
- **静态资源**:`*.png`、`*.jpg`、`*.gif`、`*.svg`、`*.ico`、`*.css`、`*.scss`、`fonts/`、`images/`
|
|
14
|
+
- **文档文件**:`*.md`、`*.txt`、`LICENSE`、`CHANGELOG`、`docs/`
|
|
15
|
+
- **测试相关**(P2优先级,可简化评审):`test/`、`tests/`、`*_test.go`、`*Test.java`、`*.spec.ts`、`*.test.js`
|
|
16
|
+
- **其他**:`.env`、`*.log`、`tmp/`、`temp/`
|
|
17
|
+
|
|
18
|
+
## 1.2 架构基线提取
|
|
19
|
+
|
|
20
|
+
读取项目核心配置文件,识别技术栈和架构信息:
|
|
21
|
+
- **Java**: `pom.xml`、`build.gradle` → 识别 Spring Boot/Spring Cloud 版本、依赖库
|
|
22
|
+
- **Go**: `go.mod`、`go.sum` → 识别 Go 版本、框架(Gin/Echo等)、依赖库
|
|
23
|
+
- **Python**: `requirements.txt`、`pyproject.toml`、`setup.py` → 识别框架(Django/Flask/FastAPI等)
|
|
24
|
+
- **Node.js**: `package.json` → 识别框架(Express/NestJS/React/Vue等)、依赖库
|
|
25
|
+
- **通用**: 识别项目目录结构,判断架构类型(MVC/微服务/前后端分离/单体应用)
|
|
26
|
+
|
|
27
|
+
输出项目架构基线信息:
|
|
28
|
+
```
|
|
29
|
+
项目名称: {name}
|
|
30
|
+
主语言: {language}
|
|
31
|
+
技术栈: [framework1, framework2, ...]
|
|
32
|
+
架构类型: {MVC/微服务/前后端分离/单体}
|
|
33
|
+
模块分层: {controller层路径, service层路径, model层路径, utils层路径}
|
|
34
|
+
入口文件: [main.go, app.py, index.js, Application.java, ...]
|
|
35
|
+
```
|
|
36
|
+
注意:上述输出内容须在终端打印提示用户!
|
|
37
|
+
|
|
38
|
+
## 1.3 依赖关系分析
|
|
39
|
+
|
|
40
|
+
扫描核心源文件间的导入/引用关系,构建**全局依赖关系图(DAG)**:
|
|
41
|
+
- Java: 分析 `import` 语句
|
|
42
|
+
- Go: 分析 `import` 语句
|
|
43
|
+
- Python: 分析 `import` / `from ... import` 语句
|
|
44
|
+
- JavaScript/TypeScript: 分析 `import` / `require()` 语句
|
|
45
|
+
|
|
46
|
+
识别高频被依赖的核心模块和可能存在循环依赖的风险点。
|
|
47
|
+
|
|
48
|
+
**输出格式示例**(终端打印显示,用于后续评审参考):
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"file_dependencies": {
|
|
53
|
+
"src/service/user.go": ["src/model/user.go", "src/utils/redis.go"],
|
|
54
|
+
"src/controller/user.go": ["src/service/user.go"]
|
|
55
|
+
},
|
|
56
|
+
"function_calls": {
|
|
57
|
+
"src/service/user.go:CreateUser": ["src/model/user.go:Insert", "src/utils/redis.go:SetCache"]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
> 注意:依赖图仅保留结构化链路,不包含完整代码内容,以控制 token 消耗。
|
|
63
|
+
|
|
64
|
+
## 1.4 文件优先级划分
|
|
65
|
+
|
|
66
|
+
🚀 **性能优化策略**:
|
|
67
|
+
- 若项目文件总数 > 500:仅标记核心 P0 文件进行深度评审,P1/P2 文件跳过或快速扫描
|
|
68
|
+
- 若项目文件总数 200-500:深度评审 P0 + 中度评审 P1,P2 文件快速扫描
|
|
69
|
+
- 若项目文件总数 < 200:全面评审 P0 + P1 + P2
|
|
70
|
+
|
|
71
|
+
根据文件重要性和风险等级,将文件划分为三个优先级,生成**文件优先级标记清单**:
|
|
72
|
+
|
|
73
|
+
**P0 - 最高优先级(深度评审)**
|
|
74
|
+
- 项目入口文件(main.go、Application.java、app.py、index.js 等)
|
|
75
|
+
- 核心业务逻辑文件(service 层、biz 层)
|
|
76
|
+
- 数据访问层文件(model/dao/repository 层)
|
|
77
|
+
- 控制器文件(controller/handler 层)
|
|
78
|
+
- 高频被依赖的核心模块
|
|
79
|
+
|
|
80
|
+
**P1 - 中优先级(中度评审)**
|
|
81
|
+
- 工具类文件(utils/helpers 层)
|
|
82
|
+
- 中间件/拦截器(middleware/interceptor)
|
|
83
|
+
- 配置文件(config 层,不含敏感信息)
|
|
84
|
+
- DTO/VO 数据传输对象
|
|
85
|
+
|
|
86
|
+
**P2 - 低优先级(轻度评审或跳过)**
|
|
87
|
+
- 测试文件(test/tests 目录)
|
|
88
|
+
- 示例代码(examples/demo 目录)
|
|
89
|
+
- 第三方 SDK 封装
|
|
90
|
+
- 生成的代码(generated/proto)
|
|
91
|
+
|
|
92
|
+
**输出格式示例**(终端打印提示用户,用于指导评审顺序):
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"P0": ["src/service/user.go", "src/service/order.go", "src/main.go"],
|
|
97
|
+
"P1": ["src/utils/redis.go", "src/middleware/auth.go", "config.yaml"],
|
|
98
|
+
"P2": ["tests/user_test.go", "examples/demo.go", "third_party/sdk.go"]
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
> **Token 控制策略**:优先评审 P0 文件,时间/Token 允许时再评审 P1 文件,P2 文件可选择性跳过或仅做快速扫描。若项目文件数量过多(>500),可只针对核心的 P0 文件进行深度评审。
|
|
103
|
+
|
|
104
|
+
注意:严格按照上述要求流程执行,禁止跳过或进行其他未设定的操作!执行完每个步骤必须按执行格式在终端输出显示,否则不清楚实际情况!
|
|
105
|
+
|
|
106
|
+
✅ 执行完成后请输出: "✅ 步骤1完成:项目预处理已完成"
|