Code Review

结合本地静态分析与AI深度推理,自动检测代码漏洞、安全风险与风格问题。

已扫描
适合谁
前端/后端开发工程师、技术负责人或团队负责人
不适合谁
无编程经验的非技术人员、对代码安全无要求的轻量级项目
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @theshadowrose/code-review-sr

Skill 说明

命令、参数、文件名以原文为准

CodeReview — AI 驱动的代码审查助手

结合快速本地正则匹配深度 AI 分析,提供全面且可操作的代码审查。先执行本地静态分析预处理,再将代码和初步发现发送至选定的 AI 模型(Anthropic、OpenAI 或 Ollama),进行深入分析,涵盖漏洞检测、安全评估、性能建议和风格反馈。


工作原理

  1. 本地预处理 — 基于正则表达式的即时匹配,快速识别硬编码密钥、eval 使用、SQL 注入模式、空 catch 块、过长函数等常见问题。
  2. AI 深度审查 — 将完整源码及本地分析结果发送至您选择的 AI 模型,进行深度推理,识别漏洞、逻辑错误、性能瓶颈与架构问题。
  3. 优雅降级 — 若未设置 API 密钥或 AI 调用失败,仍可获得本地静态分析结果。不会阻塞您的工作流程。

使用方法

const { CodeReview } = require('./src/code-review');

// AI 驱动的审查(默认:anthropic/claude-haiku-4-5)
const reviewer = new CodeReview({ model: 'anthropic/claude-haiku-4-5' });
const result = await reviewer.review('./src/auth.js');

console.log(result.score);        // 1-10 分
console.log(result.issues);       // 包含严重性、行号、类型、描述的问题数组
console.log(result.suggestions);  // 可操作的优化建议
console.log(result.summary);      // 简明的质量总结
console.log(result.aiPowered);    // true

// 审查整个目录
const dirResult = await reviewer.reviewDir('./src', {
  include: ['*.js', '*.ts'],
  exclude: ['node_modules', '.git', 'dist'],
  concurrency: 3
});
console.log(dirResult.averageScore);
console.log(dirResult.totalIssues);

支持的模型选项

提供方示例API 密钥环境变量
Anthropicanthropic/claude-haiku-4-5ANTHROPIC_API_KEY
OpenAIopenai/gpt-4o-miniOPENAI_API_KEY
Ollama(本地)ollama/llama3无需密钥
// OpenAI
const reviewer = new CodeReview({ model: 'openai/gpt-4o-mini' });

// 本地 Ollama
const reviewer = new CodeReview({ model: 'ollama/codellama' });

// 仅本地运行(无 AI,仅正则匹配)
const reviewer = new CodeReview();
const result = await reviewer.review('./src/app.js');
// result.aiPowered === false

可识别的问题类型

类别示例
缺陷空引用、越界错误、竞态条件、空 catch
安全风险SQL 注入、XSS、硬编码密钥、eval 使用
性能问题N+1 查询、不必要的循环、内存泄漏
代码风格命名不一致、函数过长、死代码、生产环境使用 console.log
逻辑错误不可达代码、冗余条件
可维护性深层嵌套回调、魔法数字、TODO/FIXME 标记

输出格式

{
  "file": "./src/auth.js",
  "score": 5,
  "issues": [
    {
      "severity": "high",
      "line": 42,
      "type": "security",
      "message": "用户输入未经参数化直接传入 SQL 查询"
    },
    {
      "severity": "medium",
      "line": 87,
      "type": "bugs",
      "message": "空 catch 块静默吞下数据库连接错误"
    }
  ],
  "suggestions": [
    "第 42 行应使用参数化查询或 ORM 以防止 SQL 注入",
    "第 87 行的 catch 块中应添加错误日志记录",
    "将认证逻辑提取到独立中间件模块中"
  ],
  "summary": "auth 模块存在严重 SQL 注入漏洞,且错误处理存在多处缺失。核心逻辑基本正确,但需加强安全性。",
  "totalIssues": 2,
  "lines": 142,
  "aiPowered": true,
  "model": "anthropic/claude-haiku-4-5"
}

语言支持

支持任何 AI 模型能理解的语言。本地预处理阶段针对多种语言中的常见模式进行扫描。已测试支持:

JavaScript、TypeScript、Python、Go、Rust、Java、C#、Ruby、PHP、Swift、Kotlin

技术细节

  • 零 npm 依赖 — 纯 Node.js 实现,仅使用内置模块 httpshttpfspath
  • 文件截断 — 发送至 AI 前,文件内容限制在 8,000 字符以内,以符合令牌数量限制
  • 并发控制 — 目录审查支持配置并行处理批次(默认:3)
  • 优雅降级 — AI 失败不会导致崩溃;本地分析结果始终可用

⚠️ 免责声明

本软件按“现状”提供,不附带任何形式的明示或暗示担保。

使用风险自负。

  • 作者不对因使用或误用本软件而产生的任何损害、损失或后果负责——包括但不限于财务损失、数据丢失、安全漏洞、业务中断,或任何间接/后果性损失。
  • 本软件不构成财务、法律、交易或专业建议。
  • 用户须自行评估该软件是否适用于其使用场景、环境及风险承受能力。
  • 对准确性、可靠性、完整性或特定用途适用性不做任何保证。
  • 作者对第三方在购买后如何使用、修改或分发本软件不承担责任。

下载、安装或使用本软件即表示您已阅读本免责声明,并同意完全自担风险地使用该软件。

数据免责声明: 当配置 AI 模型时,本软件会将您的源代码和静态分析结果发送至已配置的提供方(Anthropic、OpenAI 或本地 Ollama 实例)。除非您了解数据的传输路径,否则请勿在包含密钥或敏感信息的代码上运行此工具。未配置 API 密钥时,所有分析均仅在本地进行。

作者不对因软件缺陷、系统故障或用户操作失误导致的数据丢失、损坏或未经授权访问承担责任。请始终对重要数据保持独立备份。当配置了 AI 模型时,文件内容将被发送至相应 AI 提供方的 API(Anthropic、OpenAI 或您的本地 Ollama 实例)。在仅本地模式下运行(未配置模型)时,不会向外部传输任何数据。


支持与链接

🐛 问题反馈TheShadowyRose@proton.me
Ko-fi[ko-fi.com/theshadowrose](https://ko-fi.com/theshadowrose)
🛒 Gumroad[shadowyrose.gumroad.com](https://shadowyrose.gumroad.com)
🐦 Twitter[@TheShadowyRose](https://twitter.com/TheShadowyRose)
🐙 GitHub[github.com/TheShadowRose](https://github.com/TheShadowRose)
🧠 PromptBase[promptbase.com/profile/shadowrose](https://promptbase.com/profile/shadowrose)

*由 [OpenClaw](https://github.com/openclaw/openclaw) 构建 — 感谢你让这一切成为可能。*


🛠️ 需要定制功能? 定制 OpenClaw 代理与技能,起价 $500。只要您能描述需求,我就能为您实现。→ [在 Fiverr 上雇佣我](https://www.fiverr.com/s/jjmlZ0v)

T
@theshadowrose

已收录 4 个 Skill

相关推荐