【免费下载链接】jev-review
A staged code-review workflow and local dashboard built with TypeSafe Jev.
jev-review是一个基于 TypeSafe Jev 构建的开源分阶段代码审查工作流,它内置了 5 大审查维度(正确性、安全、可靠性、兼容性、测试缺口)和 10 个可量化的阈值参数,能审查 Git diff 或扫描完整代码库,并通过本地 Dashboard 呈现审查报告,帮助开发者在合并前快速定位真正的风险点。
它解决什么问题:AI 代码审查的"分寸感" 🎯
多数 AI 审查工具要么把整个代码库丢给模型"泛泛而谈",要么逐行硬查、产出大量噪音。jev-review 的思路是:编排逻辑写在代码里,模型只负责有边界的判断——先打分筛选,再对高信号深入取证、定机制、评严重度,最后按阈值决定是否值得人工跟进。
整个流程可以概括为:
Noul 风险矩阵 → 文件画像(Choice+Score) → 证据选择(Choice) → 机制分类(Choice) → 严重度评分(Score) → 条件式审查人路由(Choice)5大审查维度:一页看懂它查什么 📋
jev-review 用 5 个维度对每个文件打"风险概率分",定义见 src/domain/config.ts:
| 维度 | 关注的问题 | 典型机制举例 |
|---|---|---|
| correctness正确性 | 代码很可能包含错误的运行时行为 | 条件判断处理了相反场景、状态读写错误、异步顺序错误 |
| security安全 | 引入或削弱了安全边界 | 授权检查被移除、不可信输入到达危险 sink、敏感数据暴露 |
| reliability可靠性 | 可能崩溃、竞态、泄漏、死锁或恢复不良 | 失败后跳过清理、并发不安全地更新共享状态 |
| compatibility兼容性 | 可能破坏调用方、持久化格式、协议或公开行为 | 移除必填字段、持久化值含义变化 |
| testGap测试缺口 | 重要行为缺乏针对性测试证据 | 新失败分支没有断言、协议变更缺少兼容测试 |
每个维度还有一组具体的"机制词表"(含noIssue兜底项),模型必须从中做选择题而不是自由发挥,机制清单完整定义在 src/domain/config.ts。
10个阈值参数:审查策略的核心 ⚙️
所有阈值集中声明在 src/domain/config.ts,纯数据、无依赖,改一处即可调整整个审查风格:
| # | 参数 | 默认值 | 作用 |
|---|---|---|---|
| 1 | SCREEN_THRESHOLD | 0.7 | 风险概率达到该值的信号才会被跟进 |
| 2 | SEVERITY_MAX | 3 | 严重度量表上限(0–3 四级量表) |
| 3 | ROUTE_SEVERITY | 1.5 | 严重度 ≥ 1.5 才触发审查人路由 |
| 4 | BLOCKING_SEVERITY | 2 | 严重度 ≥ 2 时动作升级为request_changes,否则只是comment |
| 5 | MIN_LOCATION_CONFIDENCE | 0.55 | 证据 hunk 选择的最低置信度,低于则丢弃该发现 |
| 6 | MAX_FOLLOW_UPS | 8 | 单次审查最多跟进的信号数,控制成本 |
| 7 | MAX_PROFILES | 5 | 最多为风险最高的前 N 个文件生成画像 |
| 8 | CONCURRENCY | 3 | 并行判断的并发上限 |
| 9 | SOURCE_FILE | 正则 | 识别 JS/TS 源文件的后缀模式 |
| 10 | TEST_FILE | 正则 | 识别测试文件(tests 目录或.spec/.test后缀) |
两个关键路由规则在 src/review/judgments.ts 中生效:
- 严重度 ≥
ROUTE_SEVERITY(1.5):额外调用一次模型,从security/api/runtime/testing/maintainer中选择最合适的审查人; - 严重度 ≥
BLOCKING_SEVERITY(2):发现的动作从"评论"升级为"请求修改"。
审查流水线:阈值如何串联每一步 🔍
共享编排逻辑在 src/review/workflow.ts,两个入口(变更审查 / 代码库扫描)共用:
- 发现(discover):changes 模式取 Git diff 的变更文件,并把变更测试作为上下文参与 testGap 判断;codebase 模式扫描作用域下所有非忽略源文件;
- 筛选(screen):并发为每个文件在 5 个维度上输出概率,形成"Noul 矩阵";
- 过滤与排序:只保留概率 ≥
SCREEN_THRESHOLD的信号并按概率降序,取前MAX_FOLLOW_UPS个(见 src/review/workflow.ts); - 画像(profile):风险最高的前
MAX_PROFILES个文件做变更类型 + 审查优先级评分; - 定位与分类:每个信号先选证据 hunk(置信度不足
MIN_LOCATION_CONFIDENCE直接放弃),再选机制(noIssue则不算发现),最后按 0–3 量表评严重度。
这样,一次大规模扫描中真正消耗"深度判断"的,只有最可疑的少数信号——这也是阈值参数如此重要的原因。
快速上手:3步跑通审查 🚀
前置要求:Node.js 24+、Git 和 TypeSafe API Key:
npm install cp .env.example .env # 在 .env 中填入 TYPESAFE_API_KEY # 审查当前 Git diff 并保存报告 npm run review:changes:save -- /path/to/git/repository # 或扫描整个代码库 npm run review:codebase:save -- /path/to/git/repository # 启动本地 Dashboard npm run dashboard打开http://127.0.0.1:4317即可查看报告。其他命令(直接打印 JSON 的review:changes/review:codebase、依赖检查的check等)见 README.md。
本地 Dashboard:只读、绑定回环、零额外攻击面 🛡️
Dashboard 服务刻意保持极简:
- 仅绑定
127.0.0.1,只暴露固定 3 个静态资源 + 1 个报告 JSON 接口(src/dashboard/server.ts); - 响应带
Cache-Control: no-store和严格 CSP,磁盘上其他文件一律不可达; - 报告存储走原子写(src/adapters/report-store.ts),大报告在页面中以可折叠分区展示。
页面上能直接看到工作流漏斗(筛了多少 cells、跟了多少信号、定位了几个发现)和 5 维风险矩阵,与上文参数一一对应。
相关资料路径 📁
| 内容 | 路径 |
|---|---|
| 阈值与维度定义 | src/domain/config.ts |
| 共享工作流编排 | src/review/workflow.ts |
| 变更审查判断调用 | src/review/judgments.ts |
| 代码库扫描判断调用 | src/review/codebase-judgments.ts |
| 报告存储 | src/adapters/report-store.ts |
| Dashboard 前端 | src/dashboard/public/ |
小结
jev-review 的价值不在"更多 AI 调用",而在用 5 个维度把风险语言结构化、用 10 个阈值把判断流程量化。想更严格?调低SCREEN_THRESHOLD;想降噪?提高BLOCKING_SEVERITY即可。所有策略都写在代码里、可审计、可复现,这正是它作为审查工作流实验的起点。
⚠️ 提示:当前版本尚不集成编译器诊断与静态分析器,其发现是"审查提示"而非缺陷证明,请结合人工判断使用。
【免费下载链接】jev-review
A staged code-review workflow and local dashboard built with TypeSafe Jev.
相关推荐
React-md-editor性能优化:如何提升大型文档编辑体验
React md editor性能优化:如何提升大型文档编辑体验 React md editor是一款基于React.js和TypeScript实现的轻量级Ma
UI库/组件Gradle 项目代码评审指南:从正确性、API 契约到安全性的完整审查清单
Gradle 项目代码评审指南:从正确性、API 契约到安全性的完整审查清单 代码评审是 Gradle 构建工具项目保证代码质量、维护公共 API 稳定性的核心
构建工具CLI开发工具atomcode-review 的 CMake 代码评审检查清单:正确性、健壮性与规则自定义
atomcode review 的 CMake 代码评审检查清单:正确性、健壮性与规则自定义 本篇技术指南围绕 atomcode review 内置的 CMak
人工智能AI 应用AI Agent代码智能体CLIAI 评测
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考