From e0bab8e03ac41554e46508a19fbbdd0ab117d820 Mon Sep 17 00:00:00 2001
From: Kite <254839944+lizhengfeng101@users.noreply.github.com>
Date: Tue, 15 Sep 2026 13:24:36 +0800
Subject: [PATCH] docs: tidy repo root and refresh screenshots; fix highlights
label alignment (#1260)
* docs: refresh landing screenshots and add Korean
Regenerate the highlights and benchmark images for en/ja/ru/zh and add the Korean (ko) variants now that the site ships a Korean locale.
* docs: move localized README and CONTRIBUTING into docs/i18n/
The repo root listed five READMEs and five CONTRIBUTING files. Move the four translations of each into docs/i18n/ so only the English entry points remain in the root, and update every reference: the language switchers in the English files, the documentation-file table in CONTRIBUTING.md, the README sync rule in AGENTS.md, the README_FILES paths in the translation-sync checker, and the docs/i18n/** path trigger in the workflow. Relative links inside the moved files are rewritten to resolve from their new location.
* chore: move SECURITY.md into .github/
GitHub still surfaces the Security policy when SECURITY.md lives under .github/, matching projects like kubernetes and vite. Update the two links in GOVERNANCE.md to the new path.
* fix(pages): keep highlights stat labels aligned across locales
Long stat labels wrapped to two lines on the fixed-width column, left-aligning the wrapped text and dropping that column's caption below the others. The label style now centers text and reserves two lines (lineHeight 16px, minHeight 32px) so every column's caption shares a baseline regardless of label length or locale. Also shorten highlights.stat2Label from 'NPM COMMUNITY DOWNLOADS' to 'NPM DOWNLOADS' across all five locales so it reads directly and fits one line, and regenerate the highlights screenshots to match.
* docs: realign CONTRIBUTING documentation-file tables
The docs/i18n/ path prefix widened the first column and knocked the table pipes out of alignment. Re-pad the columns (display-width aware, so the CJK and Cyrillic rows line up too).
* docs: revert no-op benchmark screenshot re-renders
Generating the Korean benchmark image re-rendered en/ja/ru too, producing byte-different but visually identical PNGs. Restore those three to their main versions; only benchmark-ko.png (the new Korean locale) is a real addition.
---
SECURITY.md => .github/SECURITY.md | 0
.github/workflows/translation-sync.yml | 1 +
AGENTS.md | 10 +++---
CONTRIBUTING.md | 28 ++++++++--------
GOVERNANCE.md | 4 +--
README.md | 2 +-
.../i18n/CONTRIBUTING.ja-JP.md | 18 +++++------
.../i18n/CONTRIBUTING.ko-KR.md | 18 +++++------
.../i18n/CONTRIBUTING.ru-RU.md | 30 +++++++++---------
.../i18n/CONTRIBUTING.zh-CN.md | 18 +++++------
README.ja-JP.md => docs/i18n/README.ja-JP.md | 22 ++++++-------
README.ko-KR.md => docs/i18n/README.ko-KR.md | 22 ++++++-------
README.ru-RU.md => docs/i18n/README.ru-RU.md | 22 ++++++-------
README.zh-CN.md => docs/i18n/README.zh-CN.md | 22 ++++++-------
imgs/benchmark-ko.png | Bin 0 -> 416342 bytes
imgs/highlights-en.png | Bin 49275 -> 53992 bytes
imgs/highlights-ja.png | Bin 53528 -> 58765 bytes
imgs/highlights-ko.png | Bin 0 -> 53733 bytes
imgs/highlights-ru.png | Bin 52615 -> 60088 bytes
imgs/highlights-zh.png | Bin 54324 -> 58515 bytes
pages/src/components/HighlightsSection.tsx | 5 +++
pages/src/i18n/en.ts | 2 +-
pages/src/i18n/ja.ts | 2 +-
pages/src/i18n/ko.ts | 2 +-
pages/src/i18n/ru.ts | 2 +-
pages/src/i18n/zh.ts | 2 +-
.../github-actions/check-translation-sync.js | 12 ++++---
scripts/verify-english-only.go | 6 ++--
28 files changed, 129 insertions(+), 121 deletions(-)
rename SECURITY.md => .github/SECURITY.md (100%)
rename CONTRIBUTING.ja-JP.md => docs/i18n/CONTRIBUTING.ja-JP.md (94%)
rename CONTRIBUTING.ko-KR.md => docs/i18n/CONTRIBUTING.ko-KR.md (93%)
rename CONTRIBUTING.ru-RU.md => docs/i18n/CONTRIBUTING.ru-RU.md (91%)
rename CONTRIBUTING.zh-CN.md => docs/i18n/CONTRIBUTING.zh-CN.md (93%)
rename README.ja-JP.md => docs/i18n/README.ja-JP.md (92%)
rename README.ko-KR.md => docs/i18n/README.ko-KR.md (91%)
rename README.ru-RU.md => docs/i18n/README.ru-RU.md (93%)
rename README.zh-CN.md => docs/i18n/README.zh-CN.md (91%)
create mode 100644 imgs/benchmark-ko.png
create mode 100644 imgs/highlights-ko.png
diff --git a/SECURITY.md b/.github/SECURITY.md
similarity index 100%
rename from SECURITY.md
rename to .github/SECURITY.md
diff --git a/.github/workflows/translation-sync.yml b/.github/workflows/translation-sync.yml
index 3a9da5d..836360f 100644
--- a/.github/workflows/translation-sync.yml
+++ b/.github/workflows/translation-sync.yml
@@ -10,6 +10,7 @@ on:
pull_request:
paths:
- "README*.md"
+ - "docs/i18n/**"
- "pages/src/content/docs/**"
- "scripts/github-actions/check-translation-sync.*"
diff --git a/AGENTS.md b/AGENTS.md
index d91a205..54f0b9a 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -37,7 +37,7 @@ open-code-review (`ocr`) is an AI-powered code review CLI tool written in Go (mo
- After writing code, run `make check`. It formats and tidies in place, so there is no need to run `gofmt` or `go vet` separately.
- **Source files are written in English** — comments, identifiers and strings alike. `make english-check` enforces this in CI. It flags any letter outside ASCII, whichever the writing system (Han, kana, Hangul, Cyrillic, and equally the diacritics that spell German or Vietnamese), plus combining accents and fullwidth punctuation (`:`, `(`), which is easy to leave behind in an otherwise English sentence. Symbols and emoji (`─ → ≥ ✅`) pass, since they are not letters. Prose spelled entirely in ASCII (`Loeschen der Datei`, or a romanised transcription) takes a dictionary to spot and stays a matter for review.
-- **Translated prose has its own homes, none of them scanned.** `README..md` and `CONTRIBUTING..md` (`zh-CN`, `ja-JP`, `ko-KR`, `ru-RU`); the doc pages under `pages/src/content/docs//` (`en`, `zh`, `ja`, `ru`, Markdown throughout); and the UI copy tables in `pages/src/i18n/.ts`. Markdown is out of scope by extension, so translations go there freely. The i18n tables are `.ts` and would be scanned, so they are exempt by prefix instead — translated UI strings belong in those tables rather than inline in a component.
+- **Translated prose has its own homes, none of them scanned.** `docs/i18n/README..md` and `docs/i18n/CONTRIBUTING..md` (`zh-CN`, `ja-JP`, `ko-KR`, `ru-RU`); the doc pages under `pages/src/content/docs//` (`en`, `zh`, `ja`, `ru`, Markdown throughout); and the UI copy tables in `pages/src/i18n/.ts`. Markdown is out of scope by extension, so translations go there freely. The i18n tables are `.ts` and would be scanned, so they are exempt by prefix instead — translated UI strings belong in those tables rather than inline in a component.
- **Two escape hatches for the exceptional case, narrower one preferred.** Append an `allow-non-english: ` marker comment to the offending line — the right choice for a handful of lines, such as an encoding fixture or a language-switcher label, and it leaves the rest of the file protected. Only for a whole tree that is inherently non-English, add a prefix to `allowedPrefixes` in `scripts/verify-english-only.go`; it currently holds just `pages/src/i18n/` and `extensions/vscode/`, the latter temporary until the extension's Chinese comments are translated.
## Testing
@@ -49,7 +49,7 @@ open-code-review (`ocr`) is an AI-powered code review CLI tool written in Go (mo
## README
- When modifying README.md, always sync the changes to all localized versions:
- - README.zh-CN.md
- - README.ja-JP.md
- - README.ko-KR.md
- - README.ru-RU.md
+ - docs/i18n/README.zh-CN.md
+ - docs/i18n/README.ja-JP.md
+ - docs/i18n/README.ko-KR.md
+ - docs/i18n/README.ru-RU.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5a234b0..62c3bdb 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,7 +2,7 @@
Thank you for your interest in contributing to OpenCodeReview! Every contribution matters — whether it's fixing a typo, reporting a bug, or implementing a new feature.
-[简体中文版](CONTRIBUTING.zh-CN.md) | [日本語版](CONTRIBUTING.ja-JP.md) | [한국어](CONTRIBUTING.ko-KR.md) | [Русский](CONTRIBUTING.ru-RU.md)
+[简体中文版](docs/i18n/CONTRIBUTING.zh-CN.md) | [日本語版](docs/i18n/CONTRIBUTING.ja-JP.md) | [한국어](docs/i18n/CONTRIBUTING.ko-KR.md) | [Русский](docs/i18n/CONTRIBUTING.ru-RU.md)
## Code of Conduct
@@ -173,7 +173,7 @@ Documentation is a crucial part of OpenCodeReview. We welcome improvements to RE
- Clarifying confusing explanations or adding missing context
- Adding usage examples for commands or configuration options
- Updating outdated content (e.g., after a feature change)
-- Translating or improving localized documentation (`README.zh-CN.md`, `README.ja-JP.md`, `README.ko-KR.md`, `README.ru-RU.md`, `CONTRIBUTING.zh-CN.md`, `CONTRIBUTING.ja-JP.md`, `CONTRIBUTING.ko-KR.md`, `CONTRIBUTING.ru-RU.md`)
+- Translating or improving localized documentation (`docs/i18n/README.zh-CN.md`, `docs/i18n/README.ja-JP.md`, `docs/i18n/README.ko-KR.md`, `docs/i18n/README.ru-RU.md`, `docs/i18n/CONTRIBUTING.zh-CN.md`, `docs/i18n/CONTRIBUTING.ja-JP.md`, `docs/i18n/CONTRIBUTING.ko-KR.md`, `docs/i18n/CONTRIBUTING.ru-RU.md`)
### Documentation Workflow
@@ -183,18 +183,18 @@ Documentation is a crucial part of OpenCodeReview. We welcome improvements to RE
### Documentation Files
-| File | Purpose |
-| ----------------------- | ------------------------------------ |
-| `README.md` | Main project documentation (English) |
-| `README.zh-CN.md` | Chinese translation |
-| `README.ja-JP.md` | Japanese translation |
-| `README.ko-KR.md` | Korean translation |
-| `README.ru-RU.md` | Russian translation |
-| `CONTRIBUTING.md` | Contribution guide (English) |
-| `CONTRIBUTING.zh-CN.md` | Contribution guide (Chinese) |
-| `CONTRIBUTING.ja-JP.md` | Contribution guide (Japanese) |
-| `CONTRIBUTING.ko-KR.md` | Contribution guide (Korean) |
-| `CONTRIBUTING.ru-RU.md` | Contribution guide (Russian) |
+| File | Purpose |
+| --------------------------------- | ------------------------------------ |
+| `README.md` | Main project documentation (English) |
+| `docs/i18n/README.zh-CN.md` | Chinese translation |
+| `docs/i18n/README.ja-JP.md` | Japanese translation |
+| `docs/i18n/README.ko-KR.md` | Korean translation |
+| `docs/i18n/README.ru-RU.md` | Russian translation |
+| `CONTRIBUTING.md` | Contribution guide (English) |
+| `docs/i18n/CONTRIBUTING.zh-CN.md` | Contribution guide (Chinese) |
+| `docs/i18n/CONTRIBUTING.ja-JP.md` | Contribution guide (Japanese) |
+| `docs/i18n/CONTRIBUTING.ko-KR.md` | Contribution guide (Korean) |
+| `docs/i18n/CONTRIBUTING.ru-RU.md` | Contribution guide (Russian) |
## Submitting Changes
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 8e7e224..b23e6af 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -60,7 +60,7 @@ Contributors are expected to follow:
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
- [CONTRIBUTING.md](CONTRIBUTING.md)
-- [SECURITY.md](SECURITY.md) for vulnerability reporting
+- [SECURITY.md](.github/SECURITY.md) for vulnerability reporting
### Maintainers
@@ -160,7 +160,7 @@ The project's public collaboration channels are:
- pull requests for concrete code and documentation review
Security issues should follow the private reporting guidance in
-[SECURITY.md](SECURITY.md).
+[SECURITY.md](.github/SECURITY.md).
## Continuity
diff --git a/README.md b/README.md
index 2320acf..2213744 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@
- English | 简体中文 | 日本語 | 한국어 | Русский
+ English | 简体中文 | 日本語 | 한국어 | Русский
---
diff --git a/CONTRIBUTING.ja-JP.md b/docs/i18n/CONTRIBUTING.ja-JP.md
similarity index 94%
rename from CONTRIBUTING.ja-JP.md
rename to docs/i18n/CONTRIBUTING.ja-JP.md
index 9d63562..7dcb9cf 100644
--- a/CONTRIBUTING.ja-JP.md
+++ b/docs/i18n/CONTRIBUTING.ja-JP.md
@@ -2,7 +2,7 @@
OpenCodeReviewへのコントリビューションに興味を持っていただきありがとうございます!タイポの修正、バグ報告、新機能の実装など、あらゆる貢献が重要です。
-[English Version](CONTRIBUTING.md) | [简体中文版](CONTRIBUTING.zh-CN.md) | [한국어](CONTRIBUTING.ko-KR.md) | [Русский](CONTRIBUTING.ru-RU.md)
+[English Version](../../CONTRIBUTING.md) | [简体中文版](CONTRIBUTING.zh-CN.md) | [한국어](CONTRIBUTING.ko-KR.md) | [Русский](CONTRIBUTING.ru-RU.md)
## 行動規範
@@ -163,7 +163,7 @@ AI を開発に使った場合は、下記のルールに従ってください
- 分かりにくい説明の明確化や不足しているコンテキストの追加
- コマンドや設定オプションの使用例の追加
- 古くなった内容の更新(機能変更後など)
-- 中国語ドキュメント(`README.zh-CN.md`、`CONTRIBUTING.zh-CN.md`)の翻訳や改善
+- 中国語ドキュメント(`docs/i18n/README.zh-CN.md`、`docs/i18n/CONTRIBUTING.zh-CN.md`)の翻訳や改善
### ドキュメントのワークフロー
@@ -173,12 +173,12 @@ AI を開発に使った場合は、下記のルールに従ってください
### ドキュメントファイル
-| ファイル | 用途 |
-| ----------------------- | ------------------------------------ |
-| `README.md` | メインのプロジェクトドキュメント(英語) |
-| `README.zh-CN.md` | 中国語訳 |
-| `CONTRIBUTING.md` | コントリビューションガイド(英語) |
-| `CONTRIBUTING.zh-CN.md` | コントリビューションガイド(中国語) |
+| ファイル | 用途 |
+| --------------------------------- | ---------------------------------------- |
+| `README.md` | メインのプロジェクトドキュメント(英語) |
+| `docs/i18n/README.zh-CN.md` | 中国語訳 |
+| `CONTRIBUTING.md` | コントリビューションガイド(英語) |
+| `docs/i18n/CONTRIBUTING.zh-CN.md` | コントリビューションガイド(中国語) |
## 変更の提出
@@ -255,4 +255,4 @@ PR を素早くレビュー・マージしてもらいたいですか?以下
## ライセンス
-OpenCodeReviewにコントリビューションすることで、あなたのコントリビューションが[Apache License 2.0](LICENSE)の下でライセンスされることに同意したことになります。
+OpenCodeReviewにコントリビューションすることで、あなたのコントリビューションが[Apache License 2.0](../../LICENSE)の下でライセンスされることに同意したことになります。
diff --git a/CONTRIBUTING.ko-KR.md b/docs/i18n/CONTRIBUTING.ko-KR.md
similarity index 93%
rename from CONTRIBUTING.ko-KR.md
rename to docs/i18n/CONTRIBUTING.ko-KR.md
index 5846205..0c31862 100644
--- a/CONTRIBUTING.ko-KR.md
+++ b/docs/i18n/CONTRIBUTING.ko-KR.md
@@ -2,7 +2,7 @@
OpenCodeReview에 기여해 주셔서 감사합니다. 오타 수정, bug report, 새 기능 구현 등 모든 기여는 프로젝트에 도움이 됩니다.
-[English](CONTRIBUTING.md) | [简体中文版](CONTRIBUTING.zh-CN.md) | [日本語版](CONTRIBUTING.ja-JP.md) | 한국어 | [Русский](CONTRIBUTING.ru-RU.md)
+[English](../../CONTRIBUTING.md) | [简体中文版](CONTRIBUTING.zh-CN.md) | [日本語版](CONTRIBUTING.ja-JP.md) | 한국어 | [Русский](CONTRIBUTING.ru-RU.md)
## Code of Conduct
@@ -164,7 +164,7 @@ AI가 개발 과정에 관여했다면 아래 규칙을 따라 주세요.
- 혼란스러운 설명을 명확히 하거나 빠진 맥락 추가
- command나 configuration option의 사용 예시 추가
- feature 변경 이후 오래된 내용 update
-- 지역화 문서 번역 또는 개선(`README.zh-CN.md`, `README.ja-JP.md`, `README.ko-KR.md`, `CONTRIBUTING.zh-CN.md`, `CONTRIBUTING.ja-JP.md`, `CONTRIBUTING.ko-KR.md`)
+- 지역화 문서 번역 또는 개선(`docs/i18n/README.zh-CN.md`, `docs/i18n/README.ja-JP.md`, `docs/i18n/README.ko-KR.md`, `docs/i18n/CONTRIBUTING.zh-CN.md`, `docs/i18n/CONTRIBUTING.ja-JP.md`, `docs/i18n/CONTRIBUTING.ko-KR.md`)
### 문서 workflow
@@ -177,13 +177,13 @@ AI가 개발 과정에 관여했다면 아래 규칙을 따라 주세요.
| File | Purpose |
|------|---------|
| `README.md` | main project documentation (English) |
-| `README.zh-CN.md` | Chinese translation |
-| `README.ja-JP.md` | Japanese translation |
-| `README.ko-KR.md` | Korean translation |
+| `docs/i18n/README.zh-CN.md` | Chinese translation |
+| `docs/i18n/README.ja-JP.md` | Japanese translation |
+| `docs/i18n/README.ko-KR.md` | Korean translation |
| `CONTRIBUTING.md` | contribution guide (English) |
-| `CONTRIBUTING.zh-CN.md` | contribution guide (Chinese) |
-| `CONTRIBUTING.ja-JP.md` | contribution guide (Japanese) |
-| `CONTRIBUTING.ko-KR.md` | contribution guide (Korean) |
+| `docs/i18n/CONTRIBUTING.zh-CN.md` | contribution guide (Chinese) |
+| `docs/i18n/CONTRIBUTING.ja-JP.md` | contribution guide (Japanese) |
+| `docs/i18n/CONTRIBUTING.ko-KR.md` | contribution guide (Korean) |
## 변경 제출
@@ -260,4 +260,4 @@ PR이 빠르게 리뷰되고 merge되길 원하시나요? 다음 사항들이
## License
-OpenCodeReview에 기여하면 해당 기여가 [Apache License 2.0](LICENSE)에 따라 license되는 것에 동의하는 것입니다.
+OpenCodeReview에 기여하면 해당 기여가 [Apache License 2.0](../../LICENSE)에 따라 license되는 것에 동의하는 것입니다.
diff --git a/CONTRIBUTING.ru-RU.md b/docs/i18n/CONTRIBUTING.ru-RU.md
similarity index 91%
rename from CONTRIBUTING.ru-RU.md
rename to docs/i18n/CONTRIBUTING.ru-RU.md
index 6c19afc..592f2f3 100644
--- a/CONTRIBUTING.ru-RU.md
+++ b/docs/i18n/CONTRIBUTING.ru-RU.md
@@ -2,7 +2,7 @@
Спасибо за интерес к развитию OpenCodeReview! Важен любой вклад — будь то исправленная опечатка, сообщение о баге или новая функциональность.
-[English](CONTRIBUTING.md) | [简体中文版](CONTRIBUTING.zh-CN.md) | [日本語版](CONTRIBUTING.ja-JP.md) | [한국어](CONTRIBUTING.ko-KR.md) | Русский
+[English](../../CONTRIBUTING.md) | [简体中文版](CONTRIBUTING.zh-CN.md) | [日本語版](CONTRIBUTING.ja-JP.md) | [한국어](CONTRIBUTING.ko-KR.md) | Русский
## Кодекс поведения
@@ -163,7 +163,7 @@ make build
- Прояснение запутанных объяснений и добавление недостающего контекста
- Добавление примеров использования команд и параметров конфигурации
- Обновление устаревшего содержимого (например, после изменения функциональности)
-- Перевод и улучшение локализованной документации (`README.zh-CN.md`, `README.ja-JP.md`, `README.ko-KR.md`, `README.ru-RU.md`, `CONTRIBUTING.zh-CN.md`, `CONTRIBUTING.ja-JP.md`, `CONTRIBUTING.ko-KR.md`, `CONTRIBUTING.ru-RU.md`)
+- Перевод и улучшение локализованной документации (`docs/i18n/README.zh-CN.md`, `docs/i18n/README.ja-JP.md`, `docs/i18n/README.ko-KR.md`, `docs/i18n/README.ru-RU.md`, `docs/i18n/CONTRIBUTING.zh-CN.md`, `docs/i18n/CONTRIBUTING.ja-JP.md`, `docs/i18n/CONTRIBUTING.ko-KR.md`, `docs/i18n/CONTRIBUTING.ru-RU.md`)
### Процесс работы с документацией
@@ -173,18 +173,18 @@ make build
### Файлы документации
-| Файл | Назначение |
-| ----------------------- | ------------------------------------------- |
-| `README.md` | Основная документация проекта (английский) |
-| `README.zh-CN.md` | Китайский перевод |
-| `README.ja-JP.md` | Японский перевод |
-| `README.ko-KR.md` | Корейский перевод |
-| `README.ru-RU.md` | Русский перевод |
-| `CONTRIBUTING.md` | Руководство контрибьютора (английский) |
-| `CONTRIBUTING.zh-CN.md` | Руководство контрибьютора (китайский) |
-| `CONTRIBUTING.ja-JP.md` | Руководство контрибьютора (японский) |
-| `CONTRIBUTING.ko-KR.md` | Руководство контрибьютора (корейский) |
-| `CONTRIBUTING.ru-RU.md` | Руководство контрибьютора (русский) |
+| Файл | Назначение |
+| --------------------------------- | ------------------------------------------ |
+| `README.md` | Основная документация проекта (английский) |
+| `docs/i18n/README.zh-CN.md` | Китайский перевод |
+| `docs/i18n/README.ja-JP.md` | Японский перевод |
+| `docs/i18n/README.ko-KR.md` | Корейский перевод |
+| `docs/i18n/README.ru-RU.md` | Русский перевод |
+| `CONTRIBUTING.md` | Руководство контрибьютора (английский) |
+| `docs/i18n/CONTRIBUTING.zh-CN.md` | Руководство контрибьютора (китайский) |
+| `docs/i18n/CONTRIBUTING.ja-JP.md` | Руководство контрибьютора (японский) |
+| `docs/i18n/CONTRIBUTING.ko-KR.md` | Руководство контрибьютора (корейский) |
+| `docs/i18n/CONTRIBUTING.ru-RU.md` | Руководство контрибьютора (русский) |
## Отправка изменений
@@ -261,4 +261,4 @@ feat(agent): add support for custom tool definitions
## Лицензия
-Внося вклад в OpenCodeReview, вы соглашаетесь с тем, что ваш вклад будет лицензирован на условиях [Apache License 2.0](LICENSE).
+Внося вклад в OpenCodeReview, вы соглашаетесь с тем, что ваш вклад будет лицензирован на условиях [Apache License 2.0](../../LICENSE).
diff --git a/CONTRIBUTING.zh-CN.md b/docs/i18n/CONTRIBUTING.zh-CN.md
similarity index 93%
rename from CONTRIBUTING.zh-CN.md
rename to docs/i18n/CONTRIBUTING.zh-CN.md
index 5c5b934..81710a9 100644
--- a/CONTRIBUTING.zh-CN.md
+++ b/docs/i18n/CONTRIBUTING.zh-CN.md
@@ -2,7 +2,7 @@
感谢你对 OpenCodeReview 的关注!无论是修复拼写错误、报告 Bug,还是实现新功能,每一份贡献都很有价值。
-[English version](CONTRIBUTING.md) | [日本語版](CONTRIBUTING.ja-JP.md) | [한국어](CONTRIBUTING.ko-KR.md) | [Русский](CONTRIBUTING.ru-RU.md)
+[English version](../../CONTRIBUTING.md) | [日本語版](CONTRIBUTING.ja-JP.md) | [한국어](CONTRIBUTING.ko-KR.md) | [Русский](CONTRIBUTING.ru-RU.md)
## 行为准则
@@ -163,7 +163,7 @@ make build
- 完善表述不清的说明或补充缺失的上下文
- 为命令或配置项添加使用示例
- 更新过时的内容(例如功能变更后的文档同步)
-- 翻译或改进中英文文档(`README.zh-CN.md`、`CONTRIBUTING.zh-CN.md`)
+- 翻译或改进中英文文档(`docs/i18n/README.zh-CN.md`、`docs/i18n/CONTRIBUTING.zh-CN.md`)
### 文档贡献流程
@@ -173,12 +173,12 @@ make build
### 文档文件一览
-| 文件 | 用途 |
-| ----------------------- | -------------------- |
-| `README.md` | 项目主文档(英文) |
-| `README.zh-CN.md` | 中文翻译 |
-| `CONTRIBUTING.md` | 贡献指南(英文) |
-| `CONTRIBUTING.zh-CN.md` | 贡献指南(中文) |
+| 文件 | 用途 |
+| --------------------------------- | ------------------ |
+| `README.md` | 项目主文档(英文) |
+| `docs/i18n/README.zh-CN.md` | 中文翻译 |
+| `CONTRIBUTING.md` | 贡献指南(英文) |
+| `docs/i18n/CONTRIBUTING.zh-CN.md` | 贡献指南(中文) |
## 提交变更
@@ -255,4 +255,4 @@ feat(agent): add support for custom tool definitions
## 许可证
-向 OpenCodeReview 贡献代码即表示你同意你的贡献将以 [Apache License 2.0](LICENSE) 进行许可。
+向 OpenCodeReview 贡献代码即表示你同意你的贡献将以 [Apache License 2.0](../../LICENSE) 进行许可。
diff --git a/README.ja-JP.md b/docs/i18n/README.ja-JP.md
similarity index 92%
rename from README.ja-JP.md
rename to docs/i18n/README.ja-JP.md
index 1ac5f75..da4b0b1 100644
--- a/README.ja-JP.md
+++ b/docs/i18n/README.ja-JP.md
@@ -1,6 +1,6 @@
-
+
OpenCodeReview
@@ -29,7 +29,7 @@
- English | 简体中文 | 日本語 | 한국어 | Русский
+ English | 简体中文 | 日本語 | 한국어 | Русский
---
@@ -42,7 +42,7 @@ Gitのdiffを読み取り、変更されたファイルをツール利用機能
詳細は[公式サイト](https://open-codereview.ai)をご覧ください。
-
+
## ベンチマーク
@@ -60,7 +60,7 @@ Gitのdiffを読み取り、変更されたファイルをツール利用機能
| **平均時間 (Avg Time)** | レビューあたりの実時間 | CIパイプラインの待機時間に影響 |
| **平均トークン (Avg Token)** | レビューあたりの総トークン消費量 | APIコストに直接影響 |
-
+
## なぜOpen Code Reviewなのか?
@@ -123,7 +123,7 @@ ocr config provider # ビルトインプロバイダーを選択また
ocr config model # アクティブなプロバイダーのモデルを選択
```
-
+
対話的UIがプロバイダーの選択、APIキーの入力、モデル設定をガイドし、完了後に自動的に接続テストを行います。
@@ -172,11 +172,11 @@ ocr delegate rule src/main.go src/handler.go
- [設定](https://open-codereview.ai/docs/configuration) — 設定キーと環境変数
- [MCP サーバー](https://open-codereview.ai/docs/mcp) — 外部ツールでレビューエージェントを拡張
- コーディングエージェント連携 — 使用するプラットフォームを選択
- - [Claude Code](plugins/open-code-review/README.md#claude-code) — レビュー用スラッシュコマンドを含むプラグインをインストール
- - [Codex](plugins/open-code-review/README.md#codex) — 呼び出し可能なレビュースキルを含むプラグインをインストール
- - [Cursor](plugins/open-code-review/README.md#cursor) — 移植可能なレビュースキルを含むプラグインをインストール
- - [OpenCode](plugins/open-code-review/opencode/README.md) — ネイティブレビュー・ツールとスラッシュコマンドをインストール
- - [QCA Forward](plugins/open-code-review/qca/README.md) — QCA ホストモデルと公開可能なテンプレートで委任モードを実行
+ - [Claude Code](../../plugins/open-code-review/README.md#claude-code) — レビュー用スラッシュコマンドを含むプラグインをインストール
+ - [Codex](../../plugins/open-code-review/README.md#codex) — 呼び出し可能なレビュースキルを含むプラグインをインストール
+ - [Cursor](../../plugins/open-code-review/README.md#cursor) — 移植可能なレビュースキルを含むプラグインをインストール
+ - [OpenCode](../../plugins/open-code-review/opencode/README.md) — ネイティブレビュー・ツールとスラッシュコマンドをインストール
+ - [QCA Forward](../../plugins/open-code-review/qca/README.md) — QCA ホストモデルと公開可能なテンプレートで委任モードを実行
- [Skill 対応エージェント](https://open-codereview.ai/docs/agent-skill) — 移植可能なエージェントスキルをインストール
- レビュー実行モード — 連携後、どの LLM がレビューを実行するかを選択
- [デフォルト(OCR が管理)](https://open-codereview.ai/docs/configuration) — OCR が設定済みの LLM を使用してレビューを実行
@@ -196,4 +196,4 @@ ocr delegate rule src/main.go src/handler.go
## ライセンス
-[Apache-2.0](LICENSE) — Copyright 2026 Alibaba
+[Apache-2.0](../../LICENSE) — Copyright 2026 Alibaba
diff --git a/README.ko-KR.md b/docs/i18n/README.ko-KR.md
similarity index 91%
rename from README.ko-KR.md
rename to docs/i18n/README.ko-KR.md
index e774683..d8e516e 100644
--- a/README.ko-KR.md
+++ b/docs/i18n/README.ko-KR.md
@@ -1,6 +1,6 @@
-
+
OpenCodeReview
@@ -29,7 +29,7 @@
- English | 简体中文 | 日本語 | 한국어 | Русский
+ English | 简体中文 | 日本語 | 한국어 | Русский
---
@@ -42,7 +42,7 @@ Open Code Review는 AI 기반 코드 리뷰 CLI 도구입니다. Alibaba Group
자세한 내용은 [공식 웹사이트](https://open-codereview.ai)를 참조하세요.
-
+
## 벤치마크
@@ -60,7 +60,7 @@ Open Code Review는 AI 기반 코드 리뷰 CLI 도구입니다. Alibaba Group
| **평균 시간 (Avg Time)** | 리뷰당 실제 소요 시간 | CI 파이프라인 대기 시간에 영향 |
| **평균 토큰 (Avg Token)** | 리뷰당 총 토큰 소비량 | API 비용에 직접 영향 |
-
+
## 왜 Open Code Review인가?
@@ -123,7 +123,7 @@ ocr config provider # built-in provider 선택 또는 custom provider
ocr config model # 활성 provider의 model 선택
```
-
+
대화형 UI가 provider 선택, API key 입력, model 설정을 안내하며, 완료 후 자동으로 연결 테스트를 수행합니다.
@@ -172,11 +172,11 @@ ocr delegate rule src/main.go src/handler.go
- [설정](https://open-codereview.ai/docs/configuration) — 설정 키와 환경 변수
- [MCP 서버](https://open-codereview.ai/docs/mcp) — 외부 도구로 리뷰 에이전트 확장
- 코딩 에이전트 연동 — 사용하는 플랫폼 선택
- - [Claude Code](plugins/open-code-review/README.md#claude-code) — 리뷰 슬래시 명령이 포함된 플러그인 설치
- - [Codex](plugins/open-code-review/README.md#codex) — 호출 가능한 리뷰 스킬이 포함된 플러그인 설치
- - [Cursor](plugins/open-code-review/README.md#cursor) — 이식 가능한 리뷰 스킬이 포함된 플러그인 설치
- - [OpenCode](plugins/open-code-review/opencode/README.md) — 네이티브 리뷰 도구와 슬래시 명령 설치
- - [QCA Forward](plugins/open-code-review/qca/README.md) — QCA 호스트 모델과 게시 가능한 템플릿으로 위임 모드 실행
+ - [Claude Code](../../plugins/open-code-review/README.md#claude-code) — 리뷰 슬래시 명령이 포함된 플러그인 설치
+ - [Codex](../../plugins/open-code-review/README.md#codex) — 호출 가능한 리뷰 스킬이 포함된 플러그인 설치
+ - [Cursor](../../plugins/open-code-review/README.md#cursor) — 이식 가능한 리뷰 스킬이 포함된 플러그인 설치
+ - [OpenCode](../../plugins/open-code-review/opencode/README.md) — 네이티브 리뷰 도구와 슬래시 명령 설치
+ - [QCA Forward](../../plugins/open-code-review/qca/README.md) — QCA 호스트 모델과 게시 가능한 템플릿으로 위임 모드 실행
- [Skill 호환 에이전트](https://open-codereview.ai/docs/agent-skill) — 이식 가능한 에이전트 스킬 설치
- 리뷰 실행 모드 — 연동 후 리뷰를 수행할 LLM 선택
- [기본 모드(OCR 관리)](https://open-codereview.ai/docs/configuration) — OCR이 설정된 LLM을 사용해 리뷰 수행
@@ -196,4 +196,4 @@ ocr delegate rule src/main.go src/handler.go
## License
-[Apache-2.0](LICENSE) Copyright 2026 Alibaba
+[Apache-2.0](../../LICENSE) Copyright 2026 Alibaba
diff --git a/README.ru-RU.md b/docs/i18n/README.ru-RU.md
similarity index 93%
rename from README.ru-RU.md
rename to docs/i18n/README.ru-RU.md
index 5bff0cf..d45150d 100644
--- a/README.ru-RU.md
+++ b/docs/i18n/README.ru-RU.md
@@ -1,6 +1,6 @@
-
+
OpenCodeReview
@@ -29,7 +29,7 @@
- English | 简体中文 | 日本語 | 한국어 | Русский
+ English | 简体中文 | 日本語 | 한국어 | Русский
---
@@ -42,7 +42,7 @@ Open Code Review — это CLI-инструмент для код-ревью н
Подробнее на [официальном сайте](https://open-codereview.ai).
-
+
## Бенчмарк
@@ -60,7 +60,7 @@ Open Code Review — это CLI-инструмент для код-ревью н
| **Avg Time** | Время выполнения одного ревью | Влияет на задержки в CI-пайплайне |
| **Avg Token** | Суммарное потребление токенов за ревью | Прямо влияет на стоимость API |
-
+
## Почему Open Code Review?
@@ -123,7 +123,7 @@ ocr config provider # Выбрать встроенного прова
ocr config model # Выбрать модель для активного провайдера
```
-
+
Интерактивный UI проведёт вас через выбор провайдера, ввод API-ключа и настройку модели, после чего автоматически проверит подключение.
@@ -172,11 +172,11 @@ ocr delegate rule src/main.go src/handler.go
- [Конфигурация](https://open-codereview.ai/docs/configuration) — ключи конфигурации и переменные окружения
- [MCP-сервер](https://open-codereview.ai/docs/mcp) — расширение агента ревью внешними инструментами
- Интеграции с кодинг-агентами — выберите используемую платформу
- - [Claude Code](plugins/open-code-review/README.md#claude-code) — установка плагина со slash-командами для ревью
- - [Codex](plugins/open-code-review/README.md#codex) — установка плагина с вызываемыми навыками ревью
- - [Cursor](plugins/open-code-review/README.md#cursor) — установка плагина с переносимыми навыками ревью
- - [OpenCode](plugins/open-code-review/opencode/README.md) — установка нативных инструментов ревью и slash-команд
- - [QCA Forward](plugins/open-code-review/qca/README.md) — запуск режима делегирования с хост-моделью QCA и готовым к публикации шаблоном
+ - [Claude Code](../../plugins/open-code-review/README.md#claude-code) — установка плагина со slash-командами для ревью
+ - [Codex](../../plugins/open-code-review/README.md#codex) — установка плагина с вызываемыми навыками ревью
+ - [Cursor](../../plugins/open-code-review/README.md#cursor) — установка плагина с переносимыми навыками ревью
+ - [OpenCode](../../plugins/open-code-review/opencode/README.md) — установка нативных инструментов ревью и slash-команд
+ - [QCA Forward](../../plugins/open-code-review/qca/README.md) — запуск режима делегирования с хост-моделью QCA и готовым к публикации шаблоном
- [Агенты с поддержкой Skill](https://open-codereview.ai/docs/agent-skill) — установка переносимого навыка агента
- Режимы выполнения ревью — после интеграции выберите, какая LLM выполняет ревью
- [По умолчанию (под управлением OCR)](https://open-codereview.ai/docs/configuration) — OCR выполняет ревью с помощью настроенной LLM
@@ -196,4 +196,4 @@ ocr delegate rule src/main.go src/handler.go
## Лицензия
-[Apache-2.0](LICENSE) — Copyright 2026 Alibaba
+[Apache-2.0](../../LICENSE) — Copyright 2026 Alibaba
diff --git a/README.zh-CN.md b/docs/i18n/README.zh-CN.md
similarity index 91%
rename from README.zh-CN.md
rename to docs/i18n/README.zh-CN.md
index 01d0bdb..9ea77a9 100644
--- a/README.zh-CN.md
+++ b/docs/i18n/README.zh-CN.md
@@ -1,6 +1,6 @@
-
+
OpenCodeReview
@@ -29,7 +29,7 @@
- English | 简体中文 | 日本語 | 한국어 | Русский
+ English | 简体中文 | 日本語 | 한국어 | Русский
---
@@ -42,7 +42,7 @@ Open Code Review 是一款 AI 驱动的代码审查 CLI 工具。它的前身是
访问[官方网站](https://open-codereview.ai)了解更多信息。
-
+
## 基准测试
@@ -60,7 +60,7 @@ Open Code Review 是一款 AI 驱动的代码审查 CLI 工具。它的前身是
| **平均耗时 (Avg Time)** | 每次审查的实际耗时 | 决定 CI 流水线的等待时间 |
| **平均 Token (Avg Token)** | 每次审查消耗的总 token 数 | 直接影响 API 使用成本 |
-
+
## 为什么选择 Open Code Review?
@@ -123,7 +123,7 @@ ocr config provider # 选择内置供应商或添加自定义供应商
ocr config model # 为当前供应商选择模型
```
-
+
交互式界面会引导你完成供应商选择、API Key 输入和模型配置,完成后自动测试连通性。
@@ -172,11 +172,11 @@ ocr delegate rule src/main.go src/handler.go
- [配置](https://open-codereview.ai/docs/configuration) —— 配置项与环境变量
- [MCP 服务器](https://open-codereview.ai/docs/mcp) —— 用外部工具扩展评审 agent
- 编程 Agent 集成 —— 选择你使用的平台
- - [Claude Code](plugins/open-code-review/README.md#claude-code) —— 安装包含评审斜杠命令的插件
- - [Codex](plugins/open-code-review/README.md#codex) —— 安装包含可调用评审 Skill 的插件
- - [Cursor](plugins/open-code-review/README.md#cursor) —— 安装包含可移植评审 Skill 的插件
- - [OpenCode](plugins/open-code-review/opencode/README.md) —— 安装原生评审工具和斜杠命令
- - [QCA Forward](plugins/open-code-review/qca/README.md) —— 使用 QCA 宿主模型运行委托模式,并提供可发布的模板
+ - [Claude Code](../../plugins/open-code-review/README.md#claude-code) —— 安装包含评审斜杠命令的插件
+ - [Codex](../../plugins/open-code-review/README.md#codex) —— 安装包含可调用评审 Skill 的插件
+ - [Cursor](../../plugins/open-code-review/README.md#cursor) —— 安装包含可移植评审 Skill 的插件
+ - [OpenCode](../../plugins/open-code-review/opencode/README.md) —— 安装原生评审工具和斜杠命令
+ - [QCA Forward](../../plugins/open-code-review/qca/README.md) —— 使用 QCA 宿主模型运行委托模式,并提供可发布的模板
- [兼容 Skill 的 Agent](https://open-codereview.ai/docs/agent-skill) —— 安装可移植的 Agent Skill
- 评审执行模式 —— 完成集成后,选择由哪个 LLM 执行评审
- [默认模式(OCR 驱动)](https://open-codereview.ai/docs/configuration) —— OCR 使用其已配置的 LLM 执行评审
@@ -196,4 +196,4 @@ ocr delegate rule src/main.go src/handler.go
## 许可证
-[Apache-2.0](LICENSE) — Copyright 2026 Alibaba
+[Apache-2.0](../../LICENSE) — Copyright 2026 Alibaba
diff --git a/imgs/benchmark-ko.png b/imgs/benchmark-ko.png
new file mode 100644
index 0000000000000000000000000000000000000000..5db8c9cf2e71c6c17d66892fb13473fd6ed4bf35
GIT binary patch
literal 416342
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