Skip to main content

code-review

面向 ZeroLaunch-rs 的项目专属代码审查技能。对当前工作区、staged 变更、当前分支全量变更、指定 git range 或最近 N 次 commit 的聚合变更进行多 agent 并行审查,重点验证逻辑正确性、确认是否引入新回归、检查架构边界耦合、以及验证与 .omp/rules/ 规则的一致性。

معلومات المصدر

المستودع
ghost-him/ZeroLaunch-rs
آخر نشاط في المصدر
٦ أغسطس ٢٠٢٦ في ١٦:٥١
لغة SKILL.md المكتشفة
الصينية
النجوم
٥٧٢
التفرعات
٣٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
11 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
code-review
description
面向 ZeroLaunch-rs 的项目专属代码审查技能。对当前工作区、staged 变更、当前分支全量变更、指定 git range 或最近 N 次 commit 的聚合变更进行多 agent 并行审查,重点验证逻辑正确性、确认是否引入新回归、检查架构边界耦合、以及验证与 .omp/rules/ 规则的一致性。
argument-hint
[范围: working-tree | --staged | branch | <git range> | 最近 N 次 commit]
## 用途 对 ZeroLaunch-rs 的代码变更执行**项目专属**代码审查。默认只读,不直接修改代码。6 个并行子 agent 分别覆盖: 1. **变更建模** — 建立风险地图,为后续 agent 提供聚焦点 2. **逻辑正确性** — 控制流、状态流、数据契约、异步时序、错误路径 3. **新回归** — 严格只计"变更前没有、变更后出现"的问题 4. **架构结构(4a)** — 代码放置、类型边界、依赖方向(P1/P2/P3,P2/P3 有脚本兜底) 5. **架构行为(4b)** — 职责域解耦、通信方式、接口复用、**过度设计检测**(P4/P5/P6 + 设计债,纯人工判断) 6. **规则一致性** — 与 `.omp/rules/` 的规定是否一致(不一致可能是代码违反规则,也可能是规则已过时需更新) ## 触发方式 ```text /code-review # 默认: 审查工作区变更 (git diff HEAD) /code-review --staged # 仅审查暂存区 /code-review 审查本分支中的所有更改 # 审查当前分支相对默认分支的全量变更 /code-review <git range> # 审查指定范围,如 main..HEAD、HEAD~3..HEAD /code-review 对过去5次commit做审核 # 最近 N 次 commit 聚合审查 /code-review 审核最近3个 commit # 同上 ``` **范围解析优先级**:明确 git range > "最近 N 次 commit" 描述 > "本分支" 描述 > 默认 working-tree。 当 `N > 1` 或范围为多 commit 时,进入**跨 commit 审核模式**:先聚合审查,再对大 commit 单独下钻。 ## 执行流程 ### 第一阶段:确定范围并收集上下文(脚本驱动) 1. 根据用户参数运行上下文收集脚本: ```bash # mode 取值: working-tree | staged | branch | range | commits bash .omp/skills/code-review/scripts/collect-context.sh <mode> [range_or_n] ``` 脚本一次性输出:变更统计、按子系统分组的文件清单、子系统交叉数、需加载的规则文件、**依赖方向检查(确定性,workspace + src-tauri 内部模块层级)**、**边界类型泄漏检查(确定性)**、构建/lint 建议、**IPC 命令三方一致性检查(确定性)**、大 commit 分类表。 2. 若脚本建议执行构建检查(任意 `.rs` 变更),执行 `cd src-tauri && cargo check`;并优先运行 `cargo clippy`——其中 `clippy::await_holding_lock` 可**确定性**检出「RwLock/Mutex 守卫跨 `.await`」这一核心规则违规,胜过肉眼看 diff。 3. 若变更涉及前端或 IPC 契约,必要时执行 `bun run build`。 4. 命令不存在或成本过高时,回退到静态分析并在结论中说明。 ### 第二阶段:并行发现(6 个子 agent) 同时启动 6 个只读审查 agent。各 agent 的提示词模板见 `references/agent-prompts.md`。 所有 agent 共享前置约束: - **只读**,不修改文件 - 先读 `references/project-review-checklist.md` - 阅读第一阶段脚本输出的上下文报告 - 按变更路径加载 `.omp/rules/` 中最相关的规则文件 - 若存在 `.codegraph/`,优先使用 CodeGraph | Agent | 职责 | 严重程度上限 | | -------------- | ---------------------------- | ---------------- | | 1 — 变更建模 | 建立风险地图 | 不评级(信息性) | | 2 — 逻辑正确性 | 控制流/状态流/契约/异步/错误 | 阻塞 | | 3 — 新回归 | 仅计本次引入的回归 | 阻塞 | | 4a — 架构结构 | P1 放置/P2 类型边界/P3 层级 | 阻塞 | | 4b — 架构行为 | P4 职责域解耦/P5 通信/P6 复用 + 过度设计检测 | 阻塞(设计债定级中/低) | | 5 — 规则一致性 | 与 `.omp/rules/` 的一致性 | 阻塞(A 类违规) | Agent 5 的核心区分:不一致发现分为 **A 类**(代码违反规则,需改代码)和 **B 类**(规则已过时,需更新规则)。A 类问题使用阻塞级提示。 ### 第三阶段:大 commit 下钻 仅在多 commit 范围审查时执行。第二阶段的 `collect-context.sh` 已通过 `classify-commits.sh` 输出大 commit 分类表。 大 commit 判定标准(满足任一): - 变更文件数 ≥ 8 - 插入 + 删除总行数 ≥ 300 - 跨越 ≥ 2 个核心子系统 对每个大 commit 启动独立审查 agent(提示词模板见 `references/agent-prompts.md` 末尾)。只有在聚合审查完成后才决定是否下钻,不机械逐个重审。 ### 第四阶段:主 Agent 汇总 阅读 6 份聚合审查报告(及大 commit 报告如有),执行以下步骤: #### 4.1 冲突检测与复核 **若不同子 agent 对同一代码位置的结论相互冲突**(例如 Agent 2 认为某处有逻辑错误,Agent 4a/4b 认为该设计合理),主 agent **必须**: 1. 自行阅读相关代码与 diff,独立确认实际情况 2. 在对应问题条目下追加一行 `[冲突复核:<来源 agent> 认为 <结论>,复核后确认 <最终判定>]`,说明采纳哪方结论,或两方都不完全正确 不跳过这一步,不简单"少数服从多数"。冲突复核行内化,不设独立章节。 #### 4.2 报告生成 按 `references/report-template.md` 规定的结构与输出风格生成最终报告。模板只保留四要素问题条目:**等级 / 现象 / 位置 / 修复建议**(外加来源标注与冲突复核行)。 **如实全量呈现纪律(必须遵守)**: - 最终报告必须覆盖**每个子 agent 报告中的每一条发现**——包括疑点、既有问题、B 类规则更新建议 - 同一位置的多 agent 同质问题可以合并为一条,但必须标注全部来源(如 `来源:Agent 2、Agent 4a`);**不得**因报告已长、问题已多、或与其他 agent 重复而省略任何子 agent 的问题 - 报告生成完毕后,对照各子 agent 报告逐一核对覆盖情况(每条发现都出现在最终报告中),核对结果写入报告文件末尾(`覆盖核对:Agent 1 (N) / Agent 2 (N) / ... / Agent 5 (N) 全部纳入`) - Agent 1(变更建模)不产出问题条目,其风险地图压缩为总览表中的「变更概要」一句话 #### 4.3 结果持久化到文件 结构化审查结论生成后,**必须**将完整审查报告写入文件: - **目录**: `.omp/skills/code-review/reports/`(若不存在,使用 `mkdir -p` 创建) - **文件名格式**: `code-review-YYYY-MM-DD-简短摘要.md` - `YYYY-MM-DD` 为审查执行当天的日期 - `简短摘要` 描述审查范围,如 `working-tree`、`main-to-HEAD`、`staged`、`last-3-commits`、`review-plugin-system` 等(使用英文 kebab-case) - **文件内容**: 包含完整的结构化审查结论(`references/report-template.md` 的所有章节),从"总体结论"到"覆盖核对",各子 agent 的报告摘要可精简纳入而不丢失关键信息。文件开头加一行元数据(格式见 `references/report-template.md` 末尾) - **写入方式**: 使用 `Write` 工具写入。若同日期同范围的文件已存在,则追加或覆盖均可(新文件头部注明"覆盖前次报告") - **时机**: 在向用户输出审查结论的同时或之后立即执行,确保结果不丢失 ## 判定准则 最终判断以以下项目约束为审查锚点: - **架构原则 P1-P6**(详见 `references/architecture-principles.md`):职责驱动放置、类型职责边界、编译期层级、运行时职责域解耦、通信方式契约、接口复用优先 - 前端是薄展示层;业务逻辑、文件/进程/平台操作必须留在后端 IPC 之后 - IPC 类型契约必须 Rust / TypeScript 双端同步,字段名使用明确的 serde rename - `commands/` 是命令入口,不是业务逻辑容器 - 插件系统优先沿用既有抽象:`PluginHandle`、`ExecutorRegistry`、`CandidatePipeline`、`SearchPipeline`、`Configurable` 生命周期 - 过度设计检测(Agent 4b):为「可能到来的未来」提前支付的抽象成本——零调用者接口、可推导冗余字段、恒值预留字段、状态空间虚胖(合法组合远小于声明组合且靠纪律维持)、单实现者抽象。此类定级「中/低」(设计债),不得因"为未来好"升为阻塞;若抽象实际破坏了现有功能,归 Agent 2/3 的阻塞/高问题 - `PluginManager` 与配置/路由系统通过事件解耦,不重新拉回直接依赖 - 同步锁守卫不得跨 `await`(`parking_lot`/`std::sync`/`DashMap` 等;`tokio::sync` 异步锁豁免) - workspace 依赖方向 + src-tauri 内部模块层级不可反转(`check-deps-direction.sh` 确定性检查) - 类型职责边界(P2):类型定义位置编码职责,职责决定使用范围(`check-type-scope.sh` 确定性检测已知边界类型;LLM 按方法论判断所有类型含新增) - 代码必须与 `.omp/rules/` 中的规定一致;不一致时区分"代码违反规则"与"规则已过时" ## 脚本清单 | 脚本 | 用途 | | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | `scripts/lib.sh` | 共享库:子系统分类、核心子系统判定、路径→规则文件映射(`collect-context.sh` 与 `classify-commits.sh` 共同 source,避免分类逻辑漂移) | | `scripts/collect-context.sh` | 收集审查上下文(diff stat、子系统分类、规则映射、架构检查、IPC 命令检查、大 commit 分类) | | `scripts/classify-commits.sh` | 对多 commit 范围中的每个 commit 做大 commit 分类 | | `scripts/check-deps-direction.sh` | 确定性检查依赖方向:workspace crate 层级 + **src-tauri 内部模块层级(P3)**,检出反向依赖 | | `scripts/check-ipc-commands.sh` | 确定性交叉校验 IPC 命令:`#[tauri::command]` 定义 ↔ `generate_handler!` 注册 ↔ 前端 `invoke` 调用,检出未注册/未定义/前端调用不存在命令等漂移 | | `scripts/check-type-scope.sh` | 确定性检查边界类型泄漏(P2):IPC DTO(`commands/` 内 struct)与 `BridgeError` 是否被内部模块(core/plugin_framework/builtin_plugin/state)引用 | 脚本输出进入上下文,脚本代码本身不消耗上下文 token。能用脚本确定性判断的检查项一律用脚本,不交给 LLM 推断,当前覆盖: - 依赖方向合规性(workspace + 内部模块层级,`check-deps-direction.sh`,对应 P3) - 边界类型泄漏(`check-type-scope.sh`,对应 P2) - 文件分类 / 规则映射 / 核心子系统交叉 / 大 commit 判定(`lib.sh` + `collect-context.sh` + `classify-commits.sh`) - IPC 命令定义/注册/前端调用三方一致性(`check-ipc-commands.sh`) - RwLock/Mutex 守卫跨 await(交由 `cargo clippy` 的 `await_holding_lock` 而非 LLM) > 架构原则的详细定义(P1-P6、层级表、职责域、类型范围表)见 `references/architecture-principles.md`,是 Agent 4a/4b 的核心审查依据。 ## 注意事项 你只可以一步一步的按照该步骤处理。不可以做其他更多的事。不要在没有明确指令的情况下修改代码。 由于脚本执行或 cargo check 的时间会比较长,所以你必须将超时时间设置为至少 5 分钟(推荐 10 分钟),以防止运行超时。
عرض على GitHub