Extension Git @piex-dev/review

review — 把 Code Review 做成 Agent 的一等公民

导语

/review 把「贴一段 diff 让 AI 看看」收成可重复能力:范围清楚、噪声可控、人机同一套引擎。

简介

「让 AI 看看这段代码」落地常卡住:diff 从哪来、噪声太大、提示词不稳、人和模型入口分裂。@piex-dev/review 收成一条产品线:人用 /review,模型用 review 工具,内核同一套 git diff 采集 + 噪声过滤 + 结构化 prompt。omp review 的轻量版:保留 diff 引擎与模式,不做多 agent 并行与 TUI overlay。

技术原理

Review = 选范围 + 清噪声 + 喂结构化上下文。核心洞见:评审质量高度依赖喂给模型的 diff 是否干净——一半 token 是 package-lock.json 就在浪费。5 种模式对应真实开发动作:uncommitted / staged / vs base branch(含 fetch)/ commit / custom。

flow
选择模式 → git diff/show → 解析 unified diff
→ 噪声剔除(lock/min/build/vendor) → 生成 Markdown prompt
→ 交给当前会话模型输出 findings

人和模型共用引擎:/review 走 UI 菜单,review 工具走参数,两端最后都进 parseDiff + buildReviewPrompt

使用说明

安装

bash
pi install npm:@piex-dev/review

仓库源码:extensions/review

前提条件

当前目录是 git 仓库,本机有 git

用法

人:/review 列出模式菜单。模型:调用 review 工具传 actiondiff/staged/commit/branch)。选中后生成 prompt,经 pi.sendUserMessage(..., { deliverAs: "followUp" }) 丢回会话由当前模型当 reviewer。

验证

bash
pi -e ./extensions/review/src/review.ts -p "what is 1+1" --no-session

实现方案

约 350 行单文件。噪声过滤(EXCLUDED_PATTERNS)自动排除 lock/构建产物/vendor/生成物/媒体二进制;被排除文件仍出现在「Excluded」小节(路径+原因+行数),模型知道有东西被滤掉但不吞全文。Diff 解析diff --git 切块统计 +/-。Prompt 生成:过大则不内嵌全文 diff(>50k 字符或 >20 文件时提示用 read),统一指令按 critical/warning/info 分级给文件行号。

omppiex review
多 agent 并行审当前 agent 直接审
TUI overlay 展示文本输出
Diff + 噪声过滤
多模式✅(轻量集合)
结构化 prompt✅ 精简版

设计参考

项目机制piex 取舍
oh-my-pi review命令 + 工具;多 agent 并行 + TUI overlay;diff 引擎 + 噪声过滤 + 结构化 prompt采纳:diff 引擎、噪声过滤、多模式、人机共用 prompt。不采纳:多 agent 并行(依赖 subagent)、TUI overlay
OpenCode /review内置命令,review 未提交或指定 commit/branch借鉴:交互菜单、统一 prompt 模板、多 source 评审

核心取舍:完整保留 diff 引擎与噪声过滤(让模型吃饱干净的上下文),放弃并行与视觉 overlay。

迭代记录

路线图

方向打算
单模型单线程近期可选多 pass(先 critical 再 style);远期等 subagent 迁 omp 多 agent 版
findings 与代码位置弱绑定输出 findings JSON;联动 diagnostics,运行时嫌疑引向 dap
base branch 与噪声规则偏朴素项目级 .reviewignore/pathspec;远端与默认分支可配置
结果主要是聊天文本Markdown 报告外附机器可读块,先服务本地工作流再考虑门禁
极端 diff解析器按真实 PR 样本补边界(rename/binary/submodule)

版本记录

版本日期变更
0.1.12026-07-19初始版本:diff 引擎(parseDiff)+ 噪声过滤(EXCLUDED_PATTERNS);5 种模式;buildReviewPrompt 结构化 prompt(过大 diff 不内嵌);人机共用引擎;omp 轻量版(不做多 agent 并行与 TUI overlay)