npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

smart-review

v1.2.0

Published

AI智能代码审查工具 - 结合静态规则检测和AI智能分析,为你的代码提供全方位的安全和质量审查

Readme

Smart Review

语言 / Language: 中文 | English

🚀 AI智能代码审查工具 - 结合静态规则检测和AI智能分析,为你的代码提供全方位的安全和质量审查。

✨ 特性

  • 🔍 静态规则检测 - 内置安全、性能、最佳实践规则
  • 🧠 AI智能分析 - 支持 OpenAI / Anthropic / Gemini 的统一对接
  • 🧩 审查技能编排 - 支持 Skills 约束输出,强制细化风险分析与修复建议
  • Git Diff增量审查 - 智能识别变更内容,只审查修改的代码行,大幅提升审查效率
  • 🚀 智能分批处理 - 自动优化大文件处理,支持分段分析
  • 📊 大文件支持 - 智能分段处理超大文件,突破token限制
  • 🎯 Git Hook集成 - 支持暂存区文件审查和指定文件审查
  • 📁 多语言支持 - JavaScript、TypeScript、Python、Java、Go、C++、PHP等
  • ⚙️ 高度可配置 - 自定义规则、风险等级、AI参数
  • 🔧 自动安装 - 一键安装配置文件和Git Hook

📦 安装

在项目中安装 smart-review,安装后会自动初始化配置并集成到 git pre-commit 钩子:

使用 npm

npm install --save-dev smart-review

使用 yarn

yarn add --dev smart-review

💡 安装完成后,工具会自动:

  • 创建 .smart-review 配置目录和配置文件
  • 设置 git pre-commit 钩子,在每次提交时自动进行代码审查

🚀 快速开始

1. 自动初始化

安装完成后,工具会自动创建配置目录和文件。如需手动重新初始化:

node bin/install.js

初始化后的目录结构:

.smart-review/
├── smart-review.json   # 主配置文件
├── ai-rules/           # AI规则目录
└── local-rules/        # 本地静态规则目录
    ├── security.js     # 安全规则
    ├── performance.js  # 性能规则
    └── best-practices.js # 最佳实践规则

2. 基本使用

审查暂存区文件(Git Hook)

node bin/review.js --staged

审查指定文件

node bin/review.js --files test/src/test-file.js
node bin/review.js --files test/src/index.tsx,test/src/large-test-file.js

Git Diff 增量审查模式

启用增量审查模式后,工具会智能识别文件的变更内容,只审查修改的代码行,大幅提升审查效率:

# 审查暂存区的变更内容(推荐)
node bin/review.js --staged

# 审查指定文件的变更内容
node bin/review.js --files src/modified-file.js

增量审查模式的优势:

  • 高效审查 - 只分析变更的代码行,跳过未修改的内容
  • 🎯 精准定位 - 问题报告直接关联到具体的变更行
  • 💰 成本优化 - 减少AI API调用的token消耗
  • 🚀 快速反馈 - 大幅缩短审查时间,特别适合大型项目

工作原理:

  1. 自动检测Git变更(通过git diff
  2. 提取变更的代码行和上下文
  3. 只对变更内容进行静态规则检测和AI分析
  4. 保持完整的上下文信息,确保分析准确性

大文件分段分析

对于超大文件,工具会自动进行智能分段处理:

node bin/review.js --files test/src/large-test-file.js

输出示例:

代码审查审查中,请等待...
🔍 开始逐段分析文件: test/src/large-test-file.js,共 2 段
🔍 开始分析第 1/2 段 (行 1-150),预估2400 tokens, 共150 行代码
   ✅ 第 1 段分析完成,发现 8 个问题
🔍 开始分析第 2/2 段 (行 130-302),预估2800 tokens, 共172 行代码
   ✅ 第 2 段分析完成,发现 12 个问题
🎯 分段分析完成,共发现 20 个问题

批次处理示例

对于多个文件的批次处理:

代码审查审查中,请等待...
🔍 开始分析批次文件: src/utils.js, src/config.js, src/helper.js,预估3200 tokens, 共3 个文件
   ✅ 批次分析完成: src/utils.js, src/config.js, src/helper.js,发现 5 个问题,耗时: 2.3s
当前已完成进度: 1/3,总耗时: 2.3s
🔍 开始分析批次文件: src/api.js, src/database.js,预估2800 tokens, 共2 个文件
   ✅ 批次分析完成: src/api.js, src/database.js,发现 3 个问题,耗时: 1.8s
当前已完成进度: 2/3,总耗时: 4.1s

3. Git Hook 集成

package.json 中添加:

{
  "husky": {
    "hooks": {
      "pre-commit": "smart-review --staged"
    }
  }
}

中断与终端兼容

  • 支持在 Git Bash、CMD、PowerShell 中进行交互中断
  • 审查过程中输入 q 或按 Esc 可中断审查并输出已完成结果
  • 中断不会被视为审查失败,只有存在阻断风险才会阻止提交

⚙️ 配置文件

主配置文件 .smart-review/smart-review.json

{
  "ai": {
    "enabled": true,
    "provider": "openai",
    "model": "deepseek-chat",
    "apiKey": "your-api-key",
    "baseURL": "https://api.deepseek.com/v1",
    "reviewOnlyChanges": true,
    "maxResponseTokens": 8192,
    "maxFileSizeKB": 500,
    "enabledFor": [".js", ".ts", ".jsx", ".less", ".css", ".tsx", ".vue", ".py", ".java", ".go", ".rs", ".cpp", ".c", ".cs", ".php"],
    "useStaticHints": true,
    "maxRequestTokens": 8000,
    "minFilesPerBatch": 1,
    "maxFilesPerBatch": 20,
    "tokenRatio": 4,
    "chunkOverlapLines": 5,
    "includeStaticHints": true,
    "skills": {
      "enabled": true,
      "strict": false,
      "maxSkillsPerRequest": 4,
      "required": ["DIFF_RISK_GUARD", "EVIDENCE_ENFORCER"],
      "optional": ["SECURITY_DEEP", "LOGIC_CORRECTNESS", "API_CONTRACT"],
      "routes": [
        {
          "match": ["**/auth/**", "**/security/**"],
          "modes": ["diff", "batch", "segment"],
          "add": ["SECURITY_DEEP", "API_CONTRACT"]
        }
      ]
    },
    "tools": {
      "enabled": false,
      "maxCalls": 2,
      "maxReadLines": 400,
      "maxSearchMatches": 50,
      "maxSearchFiles": 120,
      "maxListFiles": 200,
      "allow": [
        "read_file",
        "get_staged_diff",
        "list_files",
        "search_in_file",
        "get_file_outline",
        "search_in_repo",
        "list_changed_files"
      ]
    },
    "temperature": 0,
    "concurrency": 3
  },
  "riskLevels": {
    "critical": { "block": true },
    "high": { "block": true },
    "medium": { "block": true },
    "low": { "block": false },
    "suggestion": { "block": false }
  },
  "suppressLowLevelOutput": false,
  "useExternalRulesOnly": false,
  "fileExtensions": [".js", ".jsx", ".less", ".css", ".ts", ".tsx", ".vue", ".svelte", ".py", ".java", ".go", ".rs", ".cpp", ".c", ".h", ".php", ".rb", ".html", ".css", ".scss", ".less"],
  "ignoreFiles": [
    "**/node_modules/**",
    "**/dist/**",
    "**/build/**",
    "**/coverage/**",
    "**/*.min.js",
    "**/*.bundle.js",
    "test/src/risky-code.js",
    "large.*\\.js$"
  ]
}

配置项说明

AI 配置 (ai)

  • enabled: 是否启用AI分析
  • provider: 模型提供方,支持 openaianthropicgemini
  • model: 对应提供方的模型名称
  • apiKey: 统一 API 密钥字段(也可通过环境变量注入)
  • baseURL: API基础URL
  • reviewOnlyChanges: 是否启用Git Diff增量审查模式。true时只审查变更的代码行,false时审查整个文件内容。默认为true,大幅提升审查效率
  • maxResponseTokens: AI响应最大token数
  • maxFileSizeKB: 单文件最大大小限制
  • enabledFor: AI分析支持的文件扩展名
  • useStaticHints: 是否将静态规则作为AI分析的上下文
  • maxRequestTokens: 请求最大token数
  • minFilesPerBatch: 批处理最小文件数
  • maxFilesPerBatch: 批处理最大文件数
  • tokenRatio: Token估算比例
  • chunkOverlapLines: 分段重叠行数,保持上下文连续性
  • includeStaticHints: 是否在AI分析中包含静态规则提示
  • temperature: AI模型的创造性参数,0表示最确定性的输出
  • concurrency: 并发AI请求数量,默认3个。设置为1或更小时使用串行处理,大于1时启用并发处理以提升性能
  • skills.enabled: 是否启用审查技能编排
  • skills.strict: 是否强制检查输出是否满足“路径/片段/原因/建议”约束
  • skills.maxSkillsPerRequest: 单次请求最多启用的技能数量
  • skills.required: 必选技能列表
  • skills.optional: 可选技能列表(按模式补充)
  • skills.routes: 按文件路径和模式动态追加技能(match/modes/add
  • tools.enabled: 启用本地只读工具调用(见下方工具清单)
  • tools.maxCalls: 单次请求最多工具调用轮次
  • tools.maxReadLines: read_file 单次读取最大行数
  • tools.maxSearchMatches: search_in_file / search_in_repo 单次最多返回匹配条数
  • tools.maxSearchFiles: search_in_repo 单次最多扫描文件数
  • tools.maxListFiles: list_files 单次最多返回文件数
  • tools.allow: 工具白名单(仅允许模型调用白名单中的工具)

AI 只读工具清单 (ai.tools.allow)

  • read_file: 读取指定文件的行区间
  • get_staged_diff: 获取暂存区 diff(可按文件路径过滤)
  • list_files: 递归列出仓库内文件(支持子目录和关键字/通配符过滤)
  • search_in_file: 在单个文件内按文本或正则搜索
  • get_file_outline: 提取文件结构轮廓(类/函数/方法等)
  • search_in_repo: 在仓库范围内按文本或正则搜索(支持扫描文件数和结果数上限)
  • list_changed_files: 获取 Git 变更文件列表(支持 staged/unstaged 和状态过滤)

风险等级配置 (riskLevels)

  • critical: 致命风险
  • high: 高危风险
  • medium: 中危风险
  • low: 低危风险
  • suggestion: 建议性问题

每个等级可配置 block 属性,决定是否阻断提交。

输出控制配置 (suppressLowLevelOutput)

  • true: 仅输出阻断等级的问题(即 block: true 的风险等级)
  • false: 输出所有检测到的问题(默认行为)

此配置允许您在保持现有阻断逻辑的同时,控制是否显示低等级的问题。当启用时,只有会阻断提交的问题才会在输出中显示,有助于聚焦于关键问题。

规则加载策略配置 (useExternalRulesOnly)

  • true: 仅使用外部规则模式 - 只加载 .smart-review/local-rules 目录中的规则,完全忽略内置规则
  • false: 合并模式(默认) - 内置规则与外部规则合并,同名规则外部覆盖内置,不同名规则为新增

此配置控制规则的加载策略:

  • 仅外部规则模式:适用于需要完全自定义规则集的场景,不受内置规则影响
  • 合并模式:适用于在内置规则基础上进行扩展或覆盖的场景

忽略审查配置

Smart Reviewer 提供两种层级的忽略配置:文件级别和代码行级别。

1. 文件级别忽略 (ignoreFiles)

在配置文件中设置 ignoreFiles 数组,支持三种匹配模式:

精确匹配

{
  "ignoreFiles": [
    "src/config/secrets.js", 
    "test/fixtures/data.json"
  ]
}

Glob 模式

{
  "ignoreFiles": [
    "**/node_modules/**", 
    "dist/*", 
    "**/*.min.js",
    "**/build/**",
    "**/*.bundle.js"
  ]
}

正则表达式

{
  "ignoreFiles": [
    ".*\\.generated\\.", 
    "large.*\\.js$", 
    "/test.*\\.spec\\./",
    ".*\\.temp\\."
  ]
}
2. 文件内忽略注释

在代码中使用特殊注释来忽略特定行或代码块的审查:

单行忽略

// review-disable-next-line
const password = "hardcoded-password"; // 下一行会被忽略

/* review-disable-next-line */
const apiKey = "sk-1234567890"; // 下一行会被忽略

多行忽略

// review-disable-start
const config = {
  password: "admin123",
  apiKey: "secret-key",
  token: "hardcoded-token"
};
// review-disable-end

/* review-disable-start */
function unsafeFunction() {
  eval(userInput); // 这段代码块会被忽略
  document.innerHTML = data;
}
/* review-disable-end */

支持的注释格式

  • JavaScript/TypeScript: ///* */
  • Python/Ruby: #
  • HTML/Svelte: <!-- -->
  • CSS/SCSS/Less: /* */
  • Java/Go/C/C++/Rust/PHP: ///* */

注意事项

  • 忽略注释必须在独立的注释行中,不能与代码混写
  • review-disable-next-line 只影响紧接着的下一行代码
  • review-disable-start/end 必须成对出现,影响两个注释之间的所有代码
  • 文件内忽略只影响静态规则检测,不影响AI分析

🔧 自定义规则

创建自定义规则文件

.smart-review/local-rules/ 目录下创建 JavaScript 文件:

// .smart-review/local-rules/custom-security.js
export const rules = {
  security: [
    {
      id: 'CUSTOM001',
      name: '敏感信息泄露',
      pattern: '(token|secret|password)\\s*=\\s*[\'"][^\'"]+[\'"]',
      risk: 'high',
      message: '发现可能的敏感信息硬编码',
      suggestion: '使用环境变量或安全配置管理',
      flags: 'gi'
    }
  ]
};

函数式规则

支持更复杂的检测逻辑:

export const rules = {
  performance: [
    {
      id: 'PERF001',
      name: '复杂度检测',
      pattern: function(content) {
        // 自定义检测逻辑
        const lines = content.split('\n');
        const issues = [];
        
        lines.forEach((line, index) => {
          if (line.includes('for') && line.includes('for')) {
            issues.push(`第${index + 1}行:嵌套循环可能影响性能`);
          }
        });
        
        return issues;
      },
      risk: 'medium',
      message: '发现性能问题',
      suggestion: '优化算法复杂度'
    }
  ]
};

AI 提示词

.smart-review/ai-rules/ 目录下创建自定义AI提示词文件:

.smart-review/ai-rules/custom-prompts.txt

请特别关注以下代码模式:
1. 检查是否存在未处理的Promise rejection
2. 验证API调用是否有适当的错误处理
3. 确保敏感数据不会被意外记录到日志中

.smart-review/ai-rules/security-focus.txt

安全审查重点:
- 检查用户输入验证
- 确认权限控制逻辑
- 验证数据加密和脱敏处理

💡 提示: AI提示词文件可以是 .txt.md 或任何文本文件,内容会被添加到AI分析的上下文中。

📋 内置规则

安全规则 (Security)

  • SEC001: 硬编码密码检测 - 检测硬编码的密码或密钥
  • SEC002: SQL注入风险 - 检测字符串拼接SQL查询
  • SEC003: XSS风险 - 检测直接操作HTML内容的风险
  • SEC004: 命令注入风险 - 检测命令执行函数调用

性能规则 (Performance)

  • PERF001: 循环内数据库查询 - 检测可能导致N+1查询问题的代码
  • PERF002: 内存泄漏风险 - 检测定时器使用但未清理的情况

最佳实践 (Best Practices)

  • BP001: 调试代码 - 检测console.log、print、alert等调试代码
  • BP002: 魔法数字 - 检测常见的魔法数字,建议使用常量

🚀 性能优化

Git Diff 增量审查优化

Smart Reviewer 的核心性能优化特性,通过智能识别变更内容,实现高效的增量审查:

性能提升效果

  • 审查速度提升 70-90% - 只分析变更的代码行,跳过未修改内容
  • Token消耗减少 60-80% - 大幅降低AI API调用成本
  • 内存占用优化 - 只加载和处理变更相关的代码段
  • 网络传输优化 - 减少API请求的数据量

适用场景

  • 日常开发提交 - 小范围代码修改,审查速度极快
  • 功能迭代 - 针对性审查新增和修改的功能代码
  • Bug修复 - 快速验证修复代码的安全性和质量
  • 代码重构 - 专注于重构部分的影响分析

智能上下文保持

{
  "ai": {
    "reviewOnlyChanges": true,
    "contextMergeLines": 10,     // 保持变更行周围的上下文
    "chunkOverlapLines": 5       // 确保分析的连续性
  }
}

大文件处理策略

Smart Reviewer 采用智能分批处理技术,能够高效处理超大文件:

自动分段机制

  • 智能检测: 自动识别超过token限制的大文件
  • 分段处理: 将大文件分割为多个重叠段落
  • 上下文保持: 通过重叠行数保持代码上下文连续性
  • 并行分析: 支持多段并行处理,提升分析速度

Token 管理

{
  "ai": {
    "maxRequestTokens": 8000,      // 单次请求最大 token 数
    "chunkOverlapLines": 5,        // 分段重叠行数
    "minFilesPerBatch": 1,         // 每批次最少文件数
    "maxFilesPerBatch": 10         // 每批次最多文件数
  }
}

性能优化建议

  1. 合理设置批处理参数

    {
      "ai": {
        "maxRequestTokens": 6000,
        "chunkOverlapLines": 10,
        "minFilesPerBatch": 1,
        "maxFilesPerBatch": 5
      }
    }
  2. 启用并发处理

    {
      "ai": {
        "concurrency": 3,        // 并发 AI 请求数量
        "maxFilesPerBatch": 5    // 控制批次文件数
      }
    }
  3. 调整智能分批参数

    {
      "ai": {
        "minFilesPerBatch": 1,
        "maxFilesPerBatch": 5
      }
    }
  4. 文件过滤优化

    {
      "ignoreFiles": [
        "**/*.min.js",         // 跳过压缩文件
        "**/dist/**",          // 跳过构建产物
        "**/*.generated.*"     // 跳过生成文件
      ]
    }

内存和网络优化

  • 流式处理: 大文件采用流式读取,减少内存占用
  • 请求重试: 内置智能重试机制,处理网络波动
  • 缓存机制: 静态规则结果缓存,避免重复计算
  • 增量分析: 只分析变更的文件部分

🔌 API 使用

编程式使用

import { CodeReviewer } from './lib/reviewer.js';
import { ConfigLoader } from './lib/config-loader.js';

// 加载配置
const configLoader = new ConfigLoader('/path/to/project');
const config = await configLoader.loadConfig();
const rules = await configLoader.loadRules(config);

// 创建审查器
const reviewer = new CodeReviewer(config, rules);

// 审查暂存区文件
const result = await reviewer.reviewStagedFiles();

// 审查指定文件
const result = await reviewer.reviewSpecificFiles(['test/src/test-file.js']);

// 处理结果
if (result.blockSubmission) {
  console.log('发现阻断性问题,请修复后再提交');
  result.issues.forEach(issue => {
    console.log(`${issue.file}:${issue.line} - ${issue.message}`);
  });
}

自定义配置

import { CodeReviewer } from './lib/reviewer.js';
import { defaultConfig, defaultRules } from './lib/default-config.js';

const customConfig = {
  ...defaultConfig,
  ai: {
    ...defaultConfig.ai,
    enabled: false  // 禁用AI分析
  },
  riskLevels: {
    ...defaultConfig.riskLevels,
    low: { block: true }  // 低危也阻断
  }
};

const reviewer = new CodeReviewer(customConfig, defaultRules);

🌍 环境变量

可通过环境变量配置:

# 统一 API 配置(最高优先级)
export AI_API_KEY="your-api-key"

# 按 Provider 配置
export OPENAI_API_KEY="your-api-key"
export ANTHROPIC_API_KEY="your-api-key"
export GEMINI_API_KEY="your-api-key"
# 或 Google 生态变量
export GOOGLE_API_KEY="your-api-key"

# 调试模式
export DEBUG_SMART_REVIEW=true

# 国际化(i18n)
# Windows PowerShell(当前会话)
$env:SMART_REVIEW_LOCALE='zh-CN'  # 或 'en-US'

# macOS/Linux bash
export SMART_REVIEW_LOCALE=zh-CN  # 或 en-US

如果需要使用自定义的 OpenAI 兼容服务,请在项目的配置文件中设置 ai.baseURL

{
  "ai": { "provider": "openai", "baseURL": "https://api.openai.com/v1" }
}

🌍 国际化 (i18n)

  • 配置项 locale:在 .smart-review/smart-review.json 顶层设置输出与模板语言,支持 zh-CNen-US。示例:{"locale": "en-US"}
  • 环境变量 SMART_REVIEW_LOCALE:优先级最高,安装和复制模板时将按该值选择语言目录。
  • 选择优先级:环境变量 > 项目配置 .smart-review/smart-review.json > 模板默认配置 templates/smart-review.json > zh-CN
  • 模板目录结构:templates/rules/<locale>/security.js|performance.js|best-practices.js;当指定语言缺失某文件时自动回退到 zh-CN
  • 控制台与 Git 钩子提示会随 locale 切换语言,无需额外配置。
  • 切换示例:
    • PowerShell:$env:SMART_REVIEW_LOCALE='en-US'; node bin/install.js
    • Bash:export SMART_REVIEW_LOCALE=en-US && node bin/install.js

如需新增语言(例如 ja-JP),在 templates/rules/ja-JP/ 下添加三类规则模板文件,并在配置中设置 "locale": "ja-JP" 或通过环境变量切换即可。

🔧 命令行参数

smart-review [options]

选项:
  --staged              审查 Git 暂存区文件
  --files <files>       审查指定文件(逗号分隔)
  --ai                  强制启用 AI 分析
  --no-ai               禁用 AI 分析
  --diff-only           仅审查变更行(Git Diff 模式)
  --debug               输出调试日志

增量审查相关说明:

  • --diff-only:仅审查变更行(Git Diff 模式),覆盖配置项 ai.reviewOnlyChanges
  • 禁用增量审查:在 .smart-review/smart-review.jsonai.reviewOnlyChanges 设为 false,适用于需要全面审查的场景

使用示例:

# 强制使用增量审查模式
smart-review --staged --diff-only

# 审查完整文件内容(在配置中关闭增量)
# .smart-review/smart-review.json
{
  "ai": { "reviewOnlyChanges": false }
}
smart-review --files src/important.js

# 结合其他参数使用
smart-review --staged --diff-only --debug

🚀 CI/CD 集成

GitHub Actions

name: Code Review
on: [push, pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '18'
      - run: npm install
      - run: npx smart-review --files $(git diff --name-only HEAD~1)
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

GitLab CI

code_review:
  stage: test
  script:
    - npm install
    - npx smart-review --files $(git diff --name-only $CI_MERGE_REQUEST_TARGET_BRANCH_SHA)
  variables:
    OPENAI_API_KEY: $OPENAI_API_KEY

🛠️ 故障排除

常见问题

  1. AI分析失败

    ⚠️ 检测到 Node 版本 < 18 或缺少全局 fetch

    解决方案: 升级到 Node.js 18+ 或安装 fetch polyfill

  2. 配置文件未找到

    ❌ 配置文件加载失败

    解决方案: 确保 .smart-review/smart-review.json 存在且格式正确

  3. API密钥错误

    ❌ OpenAI API调用失败

    解决方案: 检查 OPENAI_API_KEY 环境变量或配置文件中的密钥

  4. 大文件处理超时

❌ 文件分析超时

解决方案:

  • 降低 ai.maxRequestTokens 或减少批次文件数(maxFilesPerBatch),并适当降低 chunkOverlapLines
  • 增加 chunkOverlapLines 以减少分段数量
  • 检查网络连接稳定性
  1. 分段分析结果不完整

    ⚠️ 部分分段分析失败

    解决方案:

    • 检查文件编码是否为 UTF-8
    • 确保文件没有语法错误
    • 调整 maxRequestTokens 配置
  2. 内存占用过高

❌ 内存不足错误

解决方案:

  • 减少 maxFilesPerBatch 配置值
  • 调整 minFilesPerBatch/maxFilesPerBatch 控制每批文件数量
  • 添加更多文件到 ignoreFiles 列表
  1. Token 限制错误
❌ Request too large

解决方案:

  • 降低 maxRequestTokens 配置值
  • 减少每批文件数量或启用增量审查 --diff-only
  • 检查是否有超大的单行代码

调试模式

启用调试日志:

DEBUG_SMART_REVIEW=true smart-review --staged
# 或
smart-review --staged --debug

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 开启 Pull Request

⭐ 如果这个项目对你有帮助,请给个 Star!