@alibaba-group/open-code-review 1.5.1 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja-JP.md CHANGED
@@ -35,7 +35,7 @@
35
35
 
36
36
  Open Code ReviewはAIを活用したコードレビューCLIツールです。もともとはAlibaba Group社内の公式AIコードレビューアシスタントとして誕生し、過去2年間で数万人の開発者にサービスを提供し、数百万件のコード欠陥を発見してきました。大規模な環境で徹底的に検証された後、コミュニティ向けのオープンソースプロジェクトとして公開されました。モデルのエンドポイントを設定するだけで使い始められます。
37
37
 
38
- Gitのdiffを読み取り、変更されたファイルをツール利用機能を持つエージェント経由で設定可能なLLMに送信し、行レベルの精度で構造化されたレビューコメントを生成します。エージェントはファイル全体の内容を読み取り、コードベースを検索し、コンテキストのために他の変更ファイルを参照し、深いレビューを生成できます — 単なる表面的なdiffへのフィードバックではありません。
38
+ Gitのdiffを読み取り、変更されたファイルをツール利用機能を持つエージェント経由で設定可能なLLMに送信し、行レベルの精度で構造化されたレビューコメントを生成します。エージェントはファイル全体の内容を読み取り、コードベースを検索し、コンテキストのために他の変更ファイルを参照し、深いレビューを生成できます — 単なる表面的なdiffへのフィードバックではありません。diffレビュー以外にも、`ocr scan` はファイル全体をレビューできます。不慣れなコードベースの監査や、意味のあるdiffがないディレクトリの検査に便利です。
39
39
 
40
40
  ![Highlights](imgs/highlights-en.png)
41
41
 
@@ -227,6 +227,10 @@ ocr review --from main --to feature-branch
227
227
 
228
228
  # 単一コミット
229
229
  ocr review --commit abc123
230
+
231
+ # フルファイルスキャン — diffではなくファイル全体をレビュー(git履歴不要)
232
+ ocr scan # リポジトリ全体をスキャン
233
+ ocr scan --path internal/agent # ディレクトリまたは特定のファイルをスキャン
230
234
  ```
231
235
 
232
236
  ### コーディングエージェントとの統合
@@ -336,7 +340,8 @@ ocr review \
336
340
 
337
341
  | コマンド | エイリアス | 説明 |
338
342
  |---------|-------|-------------|
339
- | `ocr review` | `ocr r` | コードレビューを開始 |
343
+ | `ocr review` | `ocr r` | diffベースのコードレビューを開始 |
344
+ | `ocr scan` | `ocr s` | ファイル全体をレビュー(diff不要) |
340
345
  | `ocr rules check <file>` | — | ファイルパスに適用されるレビュールールをプレビュー |
341
346
  | `ocr config provider` | — | 対話的プロバイダーセットアップ(ビルトイン、カスタム、手動) |
342
347
  | `ocr config model` | — | アクティブなプロバイダーの対話的モデル選択 |
@@ -355,6 +360,7 @@ ocr review \
355
360
  | `--from` | — | — | ソースref(例:`main`) |
356
361
  | `--to` | — | — | ターゲットref(例:`feature-branch`) |
357
362
  | `--commit` | `-c` | — | レビュー対象の単一コミット |
363
+ | `--exclude` | — | — | カンマ区切りのgitignoreスタイルパターンでスキップ対象を指定;rule.jsonのexcludesとマージ |
358
364
  | `--preview` | `-p` | `false` | LLMを実行せずにレビュー対象ファイルをプレビュー |
359
365
  | `--format` | `-f` | `text` | 出力形式:`text`または`json` |
360
366
  | `--concurrency` | — | `8` | ファイルレビューの最大同時実行数 |
@@ -367,6 +373,27 @@ ocr review \
367
373
  | `--max-git-procs` | — | 組み込み値 | gitサブプロセスの最大同時実行数 |
368
374
  | `--tools` | — | — | カスタムJSONツール設定へのパス |
369
375
 
376
+ ### `ocr scan`のフラグ
377
+
378
+ `ocr scan` はdiffではなくファイル全体をレビューします — 不慣れなコードベースの監査、マイグレーション前のスキャン、意味のあるdiffがないディレクトリなどに有用です。非gitディレクトリでも動作します(`.gitignore` を尊重するファイルシステムウォークにフォールバック)。
379
+
380
+ | フラグ | 短縮形 | デフォルト | 説明 |
381
+ |------|-----------|---------|-------------|
382
+ | `--path` | — | リポジトリ全体 | カンマ区切りのスキャン対象ディレクトリ/ファイル |
383
+ | `--exclude` | — | — | カンマ区切りのgitignoreスタイルパターンでスキップ対象を指定;rule.jsonのexcludesとマージ |
384
+ | `--preview` | `-p` | `false` | LLMを実行せずにスキャン対象ファイルを一覧表示 |
385
+ | `--max-tokens-budget` | — | `0`(無制限) | トークン使用量の上限;超過するとディスパッチを停止 |
386
+ | `--no-plan` | — | `false` | ファイルごとのプランニング前処理をスキップ |
387
+ | `--no-dedup` | — | `false` | バッチごとの類似コメント重複排除をスキップ |
388
+ | `--no-summary` | — | `false` | プロジェクトレベルのサマリーをスキップ |
389
+ | `--batch` | — | `by-language` | バッチ戦略:`none`、`by-language`、または `by-directory` |
390
+ | `--format` | `-f` | `text` | 出力形式:`text` または `json`(JSONには `project_summary` フィールドを含む) |
391
+ | `--concurrency` | — | `8` | 最大同時ファイルスキャン数 |
392
+ | `--rule` | — | — | カスタムJSONレビュールールへのパス |
393
+ | `--repo` | — | カレントディレクトリ | スキャン対象のリポジトリまたはディレクトリルート |
394
+
395
+ 各実行前に、`ocr scan` はおおまかなトークンコスト見積もりを表示します。`--preview` でまずファイルリストを確認し、`--max-tokens-budget` で大規模リポジトリの支出を制限できます。
396
+
370
397
  ## 例
371
398
 
372
399
  ```bash
@@ -405,6 +432,21 @@ ocr review --rule /path/to/my-rules.json
405
432
  ocr rules check src/main/java/com/example/Foo.java
406
433
  ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml
407
434
 
435
+ # フルファイルスキャン:まずファイルリストをプレビュー(LLM呼び出しなし)
436
+ ocr scan --preview
437
+
438
+ # リポジトリ全体をスキャン、支出を約500kトークンに制限
439
+ ocr scan --max-tokens-budget 500000
440
+
441
+ # サブディレクトリをスキャン、生成ファイル/テストファイルをスキップ
442
+ ocr scan --path internal --exclude '**/*_test.go,**/generated/**'
443
+
444
+ # 非gitディレクトリをJSON出力でスキャン(project_summaryを含む)
445
+ ocr scan --repo /path/to/plain/dir --format json
446
+
447
+ # 最速スキャン:プランニング、重複排除、プロジェクトサマリーをスキップ
448
+ ocr scan --no-plan --no-dedup --no-summary
449
+
408
450
  # ブラウザでレビューセッション履歴を表示
409
451
  ocr viewer
410
452
  ocr viewer --addr :3000
package/README.ko-KR.md CHANGED
@@ -35,7 +35,7 @@
35
35
 
36
36
  Open Code Review는 AI 기반 코드 리뷰 CLI 도구입니다. Alibaba Group의 내부 공식 AI 코드 리뷰 어시스턴트에서 시작했으며, 지난 2년 동안 수만 명의 개발자에게 제공되어 수백만 건의 코드 결함을 찾아냈습니다. 대규모 환경에서 충분히 검증한 뒤 커뮤니티를 위해 오픈 소스 프로젝트로 공개했습니다. 모델 endpoint만 설정하면 바로 사용할 수 있습니다.
37
37
 
38
- 이 도구는 Git diff를 읽고, 변경 파일을 tool-use 기능을 가진 agent를 통해 설정 가능한 LLM으로 전달한 뒤, 라인 단위 위치 정보가 포함된 구조화된 리뷰 코멘트를 생성합니다. agent는 전체 파일 내용 읽기, 코드베이스 검색, 다른 변경 파일 확인 등을 통해 맥락을 확보하고 표면적인 diff 피드백이 아닌 깊이 있는 리뷰를 수행할 수 있습니다.
38
+ 이 도구는 Git diff를 읽고, 변경 파일을 tool-use 기능을 가진 agent를 통해 설정 가능한 LLM으로 전달한 뒤, 라인 단위 위치 정보가 포함된 구조화된 리뷰 코멘트를 생성합니다. agent는 전체 파일 내용 읽기, 코드베이스 검색, 다른 변경 파일 확인 등을 통해 맥락을 확보하고 표면적인 diff 피드백이 아닌 깊이 있는 리뷰를 수행할 수 있습니다. diff 리뷰 외에도 `ocr scan`은 전체 파일을 리뷰할 수 있어, 익숙하지 않은 코드베이스를 감사하거나 의미 있는 diff가 없는 디렉터리를 검토하는 데 유용합니다.
39
39
 
40
40
  ![Highlights](imgs/highlights-en.png)
41
41
 
@@ -227,6 +227,10 @@ ocr review --from main --to feature-branch
227
227
 
228
228
  # 단일 commit
229
229
  ocr review --commit abc123
230
+
231
+ # 전체 파일 스캔 — diff 대신 파일 전체를 리뷰 (git 이력 불필요)
232
+ ocr scan # 전체 repository 스캔
233
+ ocr scan --path internal/agent # 디렉터리 또는 특정 파일 스캔
230
234
  ```
231
235
 
232
236
  ### Coding Agent와 통합
@@ -336,7 +340,8 @@ ocr review \
336
340
 
337
341
  | Command | Alias | Description |
338
342
  |---------|-------|-------------|
339
- | `ocr review` | `ocr r` | 코드 리뷰 시작 |
343
+ | `ocr review` | `ocr r` | diff 기반 코드 리뷰 시작 |
344
+ | `ocr scan` | `ocr s` | 전체 파일 리뷰 (diff 불필요) |
340
345
  | `ocr rules check <file>` | - | 파일 경로에 적용될 리뷰 rule 미리보기 |
341
346
  | `ocr config provider` | - | 대화형 provider 설정 (built-in, custom, 수동) |
342
347
  | `ocr config model` | - | 활성 provider의 대화형 model 선택 |
@@ -355,6 +360,7 @@ ocr review \
355
360
  | `--from` | - | - | Source ref 예: `main` |
356
361
  | `--to` | - | - | Target ref 예: `feature-branch` |
357
362
  | `--commit` | `-c` | - | 리뷰할 단일 commit |
363
+ | `--exclude` | - | - | 건너뛸 파일의 쉼표 구분 gitignore 스타일 패턴; rule.json의 excludes와 병합 |
358
364
  | `--preview` | `-p` | `false` | LLM 실행 없이 리뷰 대상 파일 미리보기 |
359
365
  | `--format` | `-f` | `text` | Output format: `text` 또는 `json` |
360
366
  | `--concurrency` | - | `8` | 최대 동시 파일 리뷰 수 |
@@ -367,6 +373,27 @@ ocr review \
367
373
  | `--max-git-procs` | - | built-in | 최대 동시 git subprocess 수 |
368
374
  | `--tools` | - | - | custom JSON tools config 경로 |
369
375
 
376
+ ### `ocr scan` Flags
377
+
378
+ `ocr scan`은 diff가 아닌 전체 파일을 리뷰합니다 — 익숙하지 않은 코드베이스 감사, 마이그레이션 전 스캔, 의미 있는 diff가 없는 디렉터리 등에 유용합니다. 비-git 디렉터리에서도 작동합니다 (`.gitignore`를 따르는 파일 시스템 탐색으로 폴백).
379
+
380
+ | Flag | Shorthand | Default | Description |
381
+ |------|-----------|---------|-------------|
382
+ | `--path` | - | 전체 repo | 스캔할 쉼표 구분 디렉터리/파일 |
383
+ | `--exclude` | - | - | 건너뛸 파일의 쉼표 구분 gitignore 스타일 패턴; rule.json의 excludes와 병합 |
384
+ | `--preview` | `-p` | `false` | LLM 실행 없이 스캔 대상 파일 목록 표시 |
385
+ | `--max-tokens-budget` | - | `0` (무제한) | 총 토큰 사용량 제한; 초과 시 dispatch 중단 |
386
+ | `--no-plan` | - | `false` | 파일별 planning 사전 처리 건너뛰기 |
387
+ | `--no-dedup` | - | `false` | 배치별 유사 comment 중복 제거 건너뛰기 |
388
+ | `--no-summary` | - | `false` | 프로젝트 수준 요약 건너뛰기 |
389
+ | `--batch` | - | `by-language` | 배치 전략: `none`, `by-language`, 또는 `by-directory` |
390
+ | `--format` | `-f` | `text` | Output format: `text` 또는 `json` (JSON에 `project_summary` 필드 포함) |
391
+ | `--concurrency` | - | `8` | 최대 동시 파일 스캔 수 |
392
+ | `--rule` | - | - | custom JSON review rules 경로 |
393
+ | `--repo` | - | current dir | 스캔할 repository 또는 디렉터리 루트 |
394
+
395
+ 각 실행 전에 `ocr scan`은 대략적인 토큰 비용 추정치를 출력합니다. `--preview`로 먼저 파일 목록을 확인하고, `--max-tokens-budget`으로 대규모 repository의 비용을 제한할 수 있습니다.
396
+
370
397
  ## Examples
371
398
 
372
399
  ```bash
@@ -405,6 +432,21 @@ ocr review --rule /path/to/my-rules.json
405
432
  ocr rules check src/main/java/com/example/Foo.java
406
433
  ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml
407
434
 
435
+ # 전체 파일 스캔: 먼저 파일 목록 미리보기 (LLM call 없음)
436
+ ocr scan --preview
437
+
438
+ # 전체 repo 스캔, 비용을 ~500k 토큰으로 제한
439
+ ocr scan --max-tokens-budget 500000
440
+
441
+ # 하위 디렉터리 스캔, 생성/테스트 파일 건너뛰기
442
+ ocr scan --path internal --exclude '**/*_test.go,**/generated/**'
443
+
444
+ # 비-git 디렉터리를 JSON output으로 스캔 (project_summary 포함)
445
+ ocr scan --repo /path/to/plain/dir --format json
446
+
447
+ # 가장 빠른 스캔: planning, 중복 제거, 프로젝트 요약 건너뛰기
448
+ ocr scan --no-plan --no-dedup --no-summary
449
+
408
450
  # browser에서 review session history 보기
409
451
  ocr viewer
410
452
  ocr viewer --addr :3000
package/README.md CHANGED
@@ -35,7 +35,7 @@
35
35
 
36
36
  Open Code Review is an AI-powered code review CLI tool. It originated as Alibaba Group's internal official AI code review assistant — over the past two years, it has served tens of thousands of developers and identified millions of code defects. After thorough validation at massive scale, we incubated it into an open source project for the community. Simply configure a model endpoint to get started.
37
37
 
38
- It reads Git diffs, sends changed files to a configurable LLM via an agent with tool-use capabilities, and generates structured review comments with line-level precision. The agent can read full file contents, search the codebase, inspect other changed files for context, and produce deep reviews — not just surface-level diff feedback.
38
+ It reads Git diffs, sends changed files to a configurable LLM via an agent with tool-use capabilities, and generates structured review comments with line-level precision. The agent can read full file contents, search the codebase, inspect other changed files for context, and produce deep reviews — not just surface-level diff feedback. Beyond diff review, `ocr scan` reviews entire files for auditing unfamiliar codebases or directories that have no meaningful diff.
39
39
 
40
40
  ![Highlights](imgs/highlights-en.png)
41
41
 
@@ -227,6 +227,10 @@ ocr review --from main --to feature-branch
227
227
 
228
228
  # Single commit
229
229
  ocr review --commit abc123
230
+
231
+ # Full-file scan — review whole files instead of a diff (no git history needed)
232
+ ocr scan # scan the entire repository
233
+ ocr scan --path internal/agent # scan a directory or specific files
230
234
  ```
231
235
 
232
236
  ### Integrate with Coding Agents
@@ -338,7 +342,8 @@ See the [`examples/`](./examples/) directory for integration examples:
338
342
 
339
343
  | Command | Alias | Description |
340
344
  |---------|-------|-------------|
341
- | `ocr review` | `ocr r` | Start a code review |
345
+ | `ocr review` | `ocr r` | Start a diff-based code review |
346
+ | `ocr scan` | `ocr s` | Review whole files (no diff required) |
342
347
  | `ocr rules check <file>` | — | Preview which review rule applies to a file path |
343
348
  | `ocr config provider` | — | Interactive provider setup (built-in, custom, or manual) |
344
349
  | `ocr config model` | — | Interactive model selection for the active provider |
@@ -357,6 +362,7 @@ See the [`examples/`](./examples/) directory for integration examples:
357
362
  | `--from` | — | — | Source ref (e.g., `main`) |
358
363
  | `--to` | — | — | Target ref (e.g., `feature-branch`) |
359
364
  | `--commit` | `-c` | — | Single commit to review |
365
+ | `--exclude` | — | — | Comma-separated gitignore-style patterns to skip; merged with rule.json excludes |
360
366
  | `--preview` | `-p` | `false` | Preview which files will be reviewed without running the LLM |
361
367
  | `--format` | `-f` | `text` | Output format: `text` or `json` |
362
368
  | `--concurrency` | — | `8` | Max concurrent file reviews |
@@ -369,6 +375,30 @@ See the [`examples/`](./examples/) directory for integration examples:
369
375
  | `--max-git-procs` | — | built-in | Max concurrent git subprocesses |
370
376
  | `--tools` | — | — | Path to custom JSON tools config |
371
377
 
378
+ ### `ocr scan` Flags
379
+
380
+ `ocr scan` reviews entire files rather than a diff — useful for auditing an unfamiliar
381
+ codebase, a pre-migration sweep, or any directory with no meaningful diff. It works in
382
+ non-git directories too (it falls back to a filesystem walk that honors `.gitignore`).
383
+
384
+ | Flag | Shorthand | Default | Description |
385
+ |------|-----------|---------|-------------|
386
+ | `--path` | — | whole repo | Comma-separated dirs/files to scan |
387
+ | `--exclude` | — | — | Comma-separated gitignore-style patterns to skip; merged with rule.json excludes |
388
+ | `--preview` | `-p` | `false` | List which files would be scanned without running the LLM |
389
+ | `--max-tokens-budget` | — | `0` (unlimited) | Cap total token usage; dispatch stops once exceeded |
390
+ | `--no-plan` | — | `false` | Skip the per-file planning pre-pass |
391
+ | `--no-dedup` | — | `false` | Skip per-batch de-duplication of similar comments |
392
+ | `--no-summary` | — | `false` | Skip the project-level summary |
393
+ | `--batch` | — | `by-language` | Batching strategy: `none`, `by-language`, or `by-directory` |
394
+ | `--format` | `-f` | `text` | Output format: `text` or `json` (JSON includes a `project_summary` field) |
395
+ | `--concurrency` | — | `8` | Max concurrent file scans |
396
+ | `--rule` | — | — | Path to custom JSON review rules |
397
+ | `--repo` | — | current dir | Repository or directory root to scan |
398
+
399
+ Before each run, `ocr scan` prints a rough token-cost estimate. Use `--preview` to see the
400
+ file list first, and `--max-tokens-budget` to cap spend on large repositories.
401
+
372
402
  ## Examples
373
403
 
374
404
  ```bash
@@ -407,6 +437,21 @@ ocr review --rule /path/to/my-rules.json
407
437
  ocr rules check src/main/java/com/example/Foo.java
408
438
  ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml
409
439
 
440
+ # Full-file scan: preview the file list first (no LLM calls)
441
+ ocr scan --preview
442
+
443
+ # Scan the whole repo, cap spend at ~500k tokens
444
+ ocr scan --max-tokens-budget 500000
445
+
446
+ # Scan a subdirectory, skipping generated/test files
447
+ ocr scan --path internal --exclude '**/*_test.go,**/generated/**'
448
+
449
+ # Scan a non-git directory with JSON output (includes project_summary)
450
+ ocr scan --repo /path/to/plain/dir --format json
451
+
452
+ # Fastest scan: skip planning, dedup, and the project summary
453
+ ocr scan --no-plan --no-dedup --no-summary
454
+
410
455
  # View review session history in browser
411
456
  ocr viewer
412
457
  ocr viewer --addr :3000
package/README.ru-RU.md CHANGED
@@ -35,7 +35,7 @@
35
35
 
36
36
  Open Code Review — это CLI-инструмент для код-ревью на основе ИИ. Он появился как внутренний официальный ИИ-ассистент код-ревью Alibaba Group: за последние два года им воспользовались десятки тысяч разработчиков, и он выявил миллионы дефектов в коде. После тщательной проверки в огромных масштабах мы превратили его в open-source-проект для сообщества. Чтобы начать работу, достаточно настроить эндпоинт модели.
37
37
 
38
- Инструмент читает git-диффы, отправляет изменённые файлы настраиваемой LLM через агента с поддержкой вызова инструментов (tool use) и генерирует структурированные ревью-комментарии с точностью до строки. Агент может читать полное содержимое файлов, искать по кодовой базе, заглядывать в другие изменённые файлы за контекстом и выполнять глубокое ревью — а не только давать поверхностные замечания по диффу.
38
+ Инструмент читает git-диффы, отправляет изменённые файлы настраиваемой LLM через агента с поддержкой вызова инструментов (tool use) и генерирует структурированные ревью-комментарии с точностью до строки. Агент может читать полное содержимое файлов, искать по кодовой базе, заглядывать в другие изменённые файлы за контекстом и выполнять глубокое ревью — а не только давать поверхностные замечания по диффу. Помимо ревью диффов, `ocr scan` позволяет проверять файлы целиком — удобно для аудита незнакомой кодовой базы или каталогов без значимого диффа.
39
39
 
40
40
  ![Highlights](imgs/highlights-en.png)
41
41
 
@@ -227,6 +227,10 @@ ocr review --from main --to feature-branch
227
227
 
228
228
  # Один коммит
229
229
  ocr review --commit abc123
230
+
231
+ # Полнофайловое сканирование — ревью целых файлов вместо диффа (история git не нужна)
232
+ ocr scan # сканировать весь репозиторий
233
+ ocr scan --path internal/agent # сканировать каталог или конкретные файлы
230
234
  ```
231
235
 
232
236
  ### Интеграция с кодинг-агентами
@@ -338,7 +342,8 @@ ocr review \
338
342
 
339
343
  | Команда | Алиас | Описание |
340
344
  |---------|-------|----------|
341
- | `ocr review` | `ocr r` | Запустить код-ревью |
345
+ | `ocr review` | `ocr r` | Запустить код-ревью на основе диффа |
346
+ | `ocr scan` | `ocr s` | Ревью целых файлов (дифф не нужен) |
342
347
  | `ocr rules check <file>` | — | Показать, какое правило ревью применяется к пути файла |
343
348
  | `ocr config provider` | — | Интерактивная настройка провайдера (встроенный, пользовательский или ручной) |
344
349
  | `ocr config model` | — | Интерактивный выбор модели для активного провайдера |
@@ -357,6 +362,7 @@ ocr review \
357
362
  | `--from` | — | — | Исходный ref (например, `main`) |
358
363
  | `--to` | — | — | Целевой ref (например, `feature-branch`) |
359
364
  | `--commit` | `-c` | — | Один коммит для ревью |
365
+ | `--exclude` | — | — | Паттерны в стиле gitignore через запятую для пропуска файлов; объединяются с excludes из rule.json |
360
366
  | `--preview` | `-p` | `false` | Показать, какие файлы попадут в ревью, без запуска LLM |
361
367
  | `--format` | `-f` | `text` | Формат вывода: `text` или `json` |
362
368
  | `--concurrency` | — | `8` | Максимум одновременных ревью файлов |
@@ -369,6 +375,27 @@ ocr review \
369
375
  | `--max-git-procs` | — | встроенное | Максимум одновременных git-подпроцессов |
370
376
  | `--tools` | — | — | Путь к пользовательскому JSON-конфигу инструментов |
371
377
 
378
+ ### Флаги `ocr scan`
379
+
380
+ `ocr scan` проверяет целые файлы, а не дифф — удобно для аудита незнакомой кодовой базы, предмиграционного сканирования или любого каталога без значимого диффа. Работает и в каталогах без git (используется обход файловой системы с учётом `.gitignore`).
381
+
382
+ | Флаг | Короткая форма | По умолчанию | Описание |
383
+ |------|----------------|--------------|----------|
384
+ | `--path` | — | весь репозиторий | Каталоги/файлы для сканирования через запятую |
385
+ | `--exclude` | — | — | Паттерны в стиле gitignore через запятую для пропуска файлов; объединяются с excludes из rule.json |
386
+ | `--preview` | `-p` | `false` | Показать список файлов для сканирования без запуска LLM |
387
+ | `--max-tokens-budget` | — | `0` (без ограничений) | Ограничить суммарное потребление токенов; при превышении диспетчеризация прекращается |
388
+ | `--no-plan` | — | `false` | Пропустить предварительное планирование по файлам |
389
+ | `--no-dedup` | — | `false` | Пропустить дедупликацию похожих комментариев в рамках батча |
390
+ | `--no-summary` | — | `false` | Пропустить сводку на уровне проекта |
391
+ | `--batch` | — | `by-language` | Стратегия батчинга: `none`, `by-language` или `by-directory` |
392
+ | `--format` | `-f` | `text` | Формат вывода: `text` или `json` (JSON включает поле `project_summary`) |
393
+ | `--concurrency` | — | `8` | Максимум одновременных сканирований файлов |
394
+ | `--rule` | — | — | Путь к пользовательским JSON-правилам ревью |
395
+ | `--repo` | — | текущий каталог | Корень репозитория или каталога для сканирования |
396
+
397
+ Перед каждым запуском `ocr scan` выводит приблизительную оценку стоимости в токенах. Используйте `--preview`, чтобы сначала посмотреть список файлов, и `--max-tokens-budget`, чтобы ограничить расход на больших репозиториях.
398
+
372
399
  ## Примеры
373
400
 
374
401
  ```bash
@@ -407,6 +434,21 @@ ocr review --rule /path/to/my-rules.json
407
434
  ocr rules check src/main/java/com/example/Foo.java
408
435
  ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml
409
436
 
437
+ # Полнофайловое сканирование: сначала просмотреть список файлов (без вызовов LLM)
438
+ ocr scan --preview
439
+
440
+ # Сканировать весь репозиторий, ограничив расход ~500k токенов
441
+ ocr scan --max-tokens-budget 500000
442
+
443
+ # Сканировать подкаталог, пропустив сгенерированные/тестовые файлы
444
+ ocr scan --path internal --exclude '**/*_test.go,**/generated/**'
445
+
446
+ # Сканировать каталог без git с JSON-выводом (включает project_summary)
447
+ ocr scan --repo /path/to/plain/dir --format json
448
+
449
+ # Самое быстрое сканирование: пропустить планирование, дедупликацию и сводку проекта
450
+ ocr scan --no-plan --no-dedup --no-summary
451
+
410
452
  # Открыть историю сессий ревью в браузере
411
453
  ocr viewer
412
454
  ocr viewer --addr :3000
package/README.zh-CN.md CHANGED
@@ -35,7 +35,7 @@
35
35
 
36
36
  Open Code Review 是一款 AI 驱动的代码审查 CLI 工具。它的前身是阿里集团内部官方 AI 代码审查助手,过去两年在内部服务了数万开发者,识别了数百万个代码缺陷。经过大规模充分验证后,我们将其孵化为开源项目,对社区开放。只需配置一个模型端点即可使用。
37
37
 
38
- 它读取 Git diff,通过具备工具调用能力的 Agent 将变更文件发送至可配置的 LLM,生成具有行级精度的结构化审查意见。Agent 可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文,从而进行深度审查——而非仅停留在表面的 diff 反馈。
38
+ 它读取 Git diff,通过具备工具调用能力的 Agent 将变更文件发送至可配置的 LLM,生成具有行级精度的结构化审查意见。Agent 可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文,从而进行深度审查——而非仅停留在表面的 diff 反馈。除了 diff 审查,`ocr scan` 可以审查整个文件,适用于审计不熟悉的代码库或没有有意义 diff 的目录。
39
39
 
40
40
  ![Highlights](imgs/highlights-zh.png)
41
41
 
@@ -227,6 +227,10 @@ ocr review --from main --to feature-branch
227
227
 
228
228
  # 单个提交
229
229
  ocr review --commit abc123
230
+
231
+ # 全量文件扫描 —— 审查整个文件而非 diff(无需 git 历史)
232
+ ocr scan # 扫描整个仓库
233
+ ocr scan --path internal/agent # 扫描指定目录或文件
230
234
  ```
231
235
 
232
236
  ### 集成到编程 Agent
@@ -336,7 +340,8 @@ ocr review \
336
340
 
337
341
  | 命令 | 别名 | 描述 |
338
342
  |------|------|------|
339
- | `ocr review` | `ocr r` | 开始代码审查 |
343
+ | `ocr review` | `ocr r` | 开始基于 diff 的代码审查 |
344
+ | `ocr scan` | `ocr s` | 审查整个文件(无需 diff) |
340
345
  | `ocr rules check <file>` | — | 预览某个文件路径生效的审查规则 |
341
346
  | `ocr config provider` | — | 交互式供应商设置(内置、自定义或手动) |
342
347
  | `ocr config model` | — | 为当前供应商交互式选择模型 |
@@ -355,6 +360,7 @@ ocr review \
355
360
  | `--from` | — | — | 源引用(如 `main`) |
356
361
  | `--to` | — | — | 目标引用(如 `feature-branch`) |
357
362
  | `--commit` | `-c` | — | 审查单个提交 |
363
+ | `--exclude` | — | — | 以逗号分隔的 gitignore 风格模式,用于跳过匹配文件;与 rule.json 中的 excludes 合并 |
358
364
  | `--preview` | `-p` | `false` | 预览将被审查的文件列表,不调用 LLM |
359
365
  | `--format` | `-f` | `text` | 输出格式:`text` 或 `json` |
360
366
  | `--concurrency` | — | `8` | 最大并发文件审查数 |
@@ -367,6 +373,27 @@ ocr review \
367
373
  | `--max-git-procs` | — | 内置默认 | 最大并发 git 子进程数 |
368
374
  | `--tools` | — | — | 自定义 JSON 工具配置路径 |
369
375
 
376
+ ### `ocr scan` 参数
377
+
378
+ `ocr scan` 审查整个文件而非 diff —— 适用于审计不熟悉的代码库、迁移前扫描,或任何没有有意义 diff 的目录。它也可以在非 git 目录中工作(会回退到遵循 `.gitignore` 的文件系统遍历)。
379
+
380
+ | 参数 | 缩写 | 默认值 | 描述 |
381
+ |------|------|--------|------|
382
+ | `--path` | — | 整个仓库 | 以逗号分隔的待扫描目录/文件 |
383
+ | `--exclude` | — | — | 以逗号分隔的 gitignore 风格模式,用于跳过匹配文件;与 rule.json 中的 excludes 合并 |
384
+ | `--preview` | `-p` | `false` | 列出将被扫描的文件,不运行 LLM |
385
+ | `--max-tokens-budget` | — | `0`(无限制) | 限制总 token 使用量;超出后停止分发 |
386
+ | `--no-plan` | — | `false` | 跳过按文件的规划预处理 |
387
+ | `--no-dedup` | — | `false` | 跳过按批次的相似评论去重 |
388
+ | `--no-summary` | — | `false` | 跳过项目级别的总结 |
389
+ | `--batch` | — | `by-language` | 批处理策略:`none`、`by-language` 或 `by-directory` |
390
+ | `--format` | `-f` | `text` | 输出格式:`text` 或 `json`(JSON 包含 `project_summary` 字段) |
391
+ | `--concurrency` | — | `8` | 最大并发文件扫描数 |
392
+ | `--rule` | — | — | 自定义 JSON 审查规则路径 |
393
+ | `--repo` | — | 当前目录 | 要扫描的仓库或目录根路径 |
394
+
395
+ 每次运行前,`ocr scan` 会打印粗略的 token 费用估算。使用 `--preview` 先查看文件列表,使用 `--max-tokens-budget` 限制大型仓库的开销。
396
+
370
397
  ## 示例
371
398
 
372
399
  ```bash
@@ -405,6 +432,21 @@ ocr review --rule /path/to/my-rules.json
405
432
  ocr rules check src/main/java/com/example/Foo.java
406
433
  ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml
407
434
 
435
+ # 全量文件扫描:先预览文件列表(不调用 LLM)
436
+ ocr scan --preview
437
+
438
+ # 扫描整个仓库,限制消耗约 500k token
439
+ ocr scan --max-tokens-budget 500000
440
+
441
+ # 扫描子目录,跳过生成的/测试文件
442
+ ocr scan --path internal --exclude '**/*_test.go,**/generated/**'
443
+
444
+ # 扫描非 git 目录,使用 JSON 输出(包含 project_summary)
445
+ ocr scan --repo /path/to/plain/dir --format json
446
+
447
+ # 最快扫描:跳过规划、去重和项目总结
448
+ ocr scan --no-plan --no-dedup --no-summary
449
+
408
450
  # 在浏览器中查看审查会话历史
409
451
  ocr viewer
410
452
  ocr viewer --addr :3000
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alibaba-group/open-code-review",
3
- "version": "1.5.1",
3
+ "version": "1.6.1",
4
4
  "description": "OpenCodeReview CLI — AI-powered code review tool",
5
5
  "bin": {
6
6
  "ocr": "bin/ocr.js"
@@ -28,12 +28,12 @@
28
28
  "checksumPattern": "https://github.com/alibaba/open-code-review/releases/download/v{version}/sha256sum.txt"
29
29
  },
30
30
  "optionalDependencies": {
31
- "@alibaba-group/ocr-darwin-arm64": "1.5.1",
32
- "@alibaba-group/ocr-darwin-x64": "1.5.1",
33
- "@alibaba-group/ocr-linux-arm64": "1.5.1",
34
- "@alibaba-group/ocr-linux-x64": "1.5.1",
35
- "@alibaba-group/ocr-win32-arm64": "1.5.1",
36
- "@alibaba-group/ocr-win32-x64": "1.5.1"
31
+ "@alibaba-group/ocr-darwin-arm64": "1.6.1",
32
+ "@alibaba-group/ocr-darwin-x64": "1.6.1",
33
+ "@alibaba-group/ocr-linux-arm64": "1.6.1",
34
+ "@alibaba-group/ocr-linux-x64": "1.6.1",
35
+ "@alibaba-group/ocr-win32-arm64": "1.6.1",
36
+ "@alibaba-group/ocr-win32-x64": "1.6.1"
37
37
  },
38
38
  "engines": {
39
39
  "node": ">=14"