--- name: code-review description: 分析 git 代码变更并生成结构化测试报告。当用户需要分析 commit 差异、生成测试文档、review 代码改动,或询问"分析这次提交"、"生成测试报告"时使用。 --- # 代码变更审查与测试报告生成 ## 概述 这个 skill 用于分析 git 提交记录的代码变更,生成结构化的测试指导文档,帮助测试人员快速理解改动内容并制定测试计划。 --- ## 使用前准备 **必需信息(如果用户未提供,需要询问):** 1. 项目路径(当前目录或指定目录) 2. 起始 commit ID(可以是 commit hash 或 branch name) 3. 结束 commit ID(可以是 commit hash 或 branch name,默认为 HEAD) **可选配置:** - 需要排除的文件模式(默认排除 package-lock.json, pnpm-lock.yaml, yarn.lock) - 输出文件名(默认:`代码变更测试报告_[起始commit]_to_[结束commit].md`) --- ## 执行步骤 ### Step 1: 获取必要参数 如果用户没有提供完整信息,按以下方式询问: ``` 为了生成测试报告,我需要以下信息: 1. 项目路径:[当前目录是 XXX,是否正确?] 2. 起始 commit:[请提供起始 commit ID 或分支名] 3. 结束 commit:[默认为 HEAD,需要指定其他的吗?] ``` ### Step 2: 生成变更对比文件 执行以下命令生成 changes.diff: ```bash cd [项目路径] git diff -w [起始commit] [结束commit] -- . \ ":(exclude)package-lock.json" \ ":(exclude)pnpm-lock.yaml" \ ":(exclude)yarn.lock" \ > changes.diff ``` **错误处理:** - 如果 commit 不存在,提示用户检查 commit ID - 如果没有变更,告知用户这两个 commit 之间没有差异 - 如果文件过大(>5MB),建议缩小范围或使用更具体的文件路径 ### Step 3: 分析变更内容 基于 changes.diff 文件,按照以下结构生成分析报告。 --- ## 输出格式规范 输出文件:`代码变更测试报告_[起始commit缩写]_to_[结束commit缩写].md` --- ## 报告结构 ### 第一部分:基本信息 ```markdown # 代码变更测试报告 **项目:** [项目名称] **变更范围:** `[起始commit]` → `[结束commit]` **生成时间:** [YYYY-MM-DD HH:mm:ss] **变更文件数:** [X] 个文件 **新增行数:** +[XXX] | **删除行数:** -[XXX] --- ``` ### 第二部分:详细修改条目清单 按目录结构分组,每个文件包含: - 文件路径 - 改动类型标签(参考 [REFERENCE.md](REFERENCE.md) 中的标签体系) - 修改内容的具体描述 - 影响范围(页面/功能/模块) - 关键代码变更 ### 第三部分:改动总结归纳 按改动性质分类汇总,每类包含: - 改动描述和影响范围 - 涉及文件列表 - 测试建议 --- ### 第四部分:测试指导建议 按优先级分为: - 🔴 **高优先级**:核心业务流程、接口变更、破坏性变更 - 🟡 **中优先级**:配置调整、全局文案、数据计算 - 🟢 **低优先级**:UI 细节、代码重构 每个测试项包含:测试原因、测试要点清单、风险提示 --- ## 参考资料 - **分析维度指导**:参考 [REFERENCE.md](REFERENCE.md) 了解如何从 6 个维度分析代码变更 - **完整报告示例**:参考 [EXAMPLES.md](EXAMPLES.md) 查看标准报告格式 --- ## 错误处理 ### 场景 1: Git 命令执行失败 ``` ❌ 无法生成变更对比文件。 可能原因: 1. commit ID 不存在或输入错误 2. 当前目录不是 git 仓库 3. 没有 git 权限 请检查后重试。 ``` ### 场景 2: 没有变更内容 ``` ℹ️ 在指定的 commit 范围内没有发现代码变更。 请检查: - commit ID 是否正确 - 是否已经提交了代码 ``` ### 场景 3: 变更文件过多 ``` ⚠️ 检测到 500+ 个文件变更,diff 文件过大。 建议: 1. 缩小 commit 范围 2. 使用 git diff --stat 先查看概览 3. 分批次分析不同模块 ``` --- ## 输出质量检查清单 在生成报告前,Claude 应该自检以下内容: - [ ] 每个文件的改动都有清晰的描述(不是简单的"修改了代码") - [ ] 影响范围具体到页面/模块名称 - [ ] 改动类型标签准确 - [ ] 测试要点可操作(不是"测试功能"这种泛泛描述) - [ ] 风险提示覆盖了潜在问题 - [ ] 格式规范,便于阅读 - [ ] 没有遗漏重要的文件变更 --- ## 版本历史 - **v1.0.0** (2026-02-04): 初始版本 - 支持基本的代码变更分析 - 生成结构化测试报告 - 提供测试指导建议