@alibaba-group/open-code-review 1.7.13 → 1.7.15

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.ko-KR.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
- <a href="https://alibaba.github.io/open-code-review/">
2
+ <a href="https://open-codereview.ai">
3
3
  <img src="imgs/logo-core.svg" alt="OpenCodeReview logo" width="180" />
4
4
  </a>
5
5
  <h1>OpenCodeReview</h1>
@@ -37,7 +37,7 @@ Open Code Review는 AI 기반 코드 리뷰 CLI 도구입니다. Alibaba Group
37
37
 
38
38
  이 도구는 Git diff를 읽고, 변경 파일을 tool-use 기능을 가진 agent를 통해 설정 가능한 LLM으로 전달한 뒤, 라인 단위 위치 정보가 포함된 구조화된 리뷰 코멘트를 생성합니다. agent는 전체 파일 내용 읽기, 코드베이스 검색, 다른 변경 파일 확인 등을 통해 맥락을 확보하고 표면적인 diff 피드백이 아닌 깊이 있는 리뷰를 수행할 수 있습니다. diff 리뷰 외에도 `ocr scan`은 전체 파일을 리뷰할 수 있어, 익숙하지 않은 코드베이스를 감사하거나 의미 있는 diff가 없는 디렉터리를 검토하는 데 유용합니다.
39
39
 
40
- 자세한 내용은 [공식 웹사이트](https://alibaba.github.io/open-code-review/)를 참조하세요.
40
+ 자세한 내용은 [공식 웹사이트](https://open-codereview.ai)를 참조하세요.
41
41
 
42
42
  ![Highlights](imgs/highlights-en.png)
43
43
 
@@ -99,116 +99,19 @@ agent의 강점은 동적 판단과 동적 context 검색이 중요한 지점에
99
99
 
100
100
  #### 설치
101
101
 
102
- **NPM 사용(권장)**
103
-
104
102
  ```bash
105
103
  npm install -g @alibaba-group/open-code-review
106
104
  ```
107
105
 
108
106
  설치 후 `ocr` 명령을 전역에서 사용할 수 있습니다.
109
107
 
110
- **업데이트**
111
-
112
- NPM으로 설치했다면 최신 버전으로 수동 업데이트할 수 있습니다:
113
-
114
- ```bash
115
- npm install -g @alibaba-group/open-code-review@latest
116
- ```
117
-
118
- NPM 설치의 `ocr`은 기본적으로 백그라운드에서 새 버전을 확인하고 자동으로 업데이트합니다. 자동 업데이트를 끄려면 `OCR_NO_UPDATE=1`을 설정하세요.
119
-
120
- 설치 스크립트나 수동 다운로드한 binary로 설치했다면 같은 설치/다운로드 명령을 다시 실행해 로컬 binary를 최신 release로 교체할 수 있습니다. 특정 release tag로 고정해야 한다면 `OCR_VERSION`을 사용하세요.
121
-
122
- **GitHub Release 사용**
123
-
124
- 명령 한 번으로 사용 중인 OS/아키텍처에 맞는 최신 binary를 설치합니다 (macOS / Linux):
125
-
126
- ```bash
127
- curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh | sh
128
- ```
129
-
130
- 이 스크립트는 알맞은 릴리스 binary를 선택하고 SHA-256 체크섬을 검증한 뒤 `ocr`로 `/usr/local/bin`에 설치합니다. 설치 위치는 `OCR_INSTALL_DIR`로, 릴리스 버전은 `OCR_VERSION`으로 재정의할 수 있습니다:
131
-
132
- ```bash
133
- OCR_INSTALL_DIR="$HOME/.local/bin" OCR_VERSION=v1.3.13 \
134
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh)"
135
- ```
136
-
137
- Windows (PowerShell 5.1+)에서는:
138
-
139
- ```powershell
140
- irm https://raw.githubusercontent.com/alibaba/open-code-review/main/install.ps1 | iex
141
- ```
142
-
143
- 이 스크립트는 알맞은 Windows 릴리스 binary를 선택하고 SHA-256 체크섬을 검증한 뒤 `ocr.exe`로 `%LOCALAPPDATA%\Programs\ocr`에 설치합니다. 설치 위치는 `OCR_INSTALL_DIR`로, 릴리스 버전은 `OCR_VERSION`으로 재정의할 수 있습니다:
144
-
145
- ```powershell
146
- $env:OCR_INSTALL_DIR = "$env:USERPROFILE\bin"
147
- $env:OCR_VERSION = "v1.3.13"
148
- irm https://raw.githubusercontent.com/alibaba/open-code-review/main/install.ps1 | iex
149
- ```
150
-
151
- 원격 스크립트를 셸로 바로 파이프하면 인터넷의 코드가 실행됩니다. 먼저 다운로드해 내용을 확인한 뒤 실행하는 방식을 권장합니다:
152
-
153
- ```bash
154
- curl -fsSL https://raw.githubusercontent.com/alibaba/open-code-review/main/install.sh -o install.sh
155
- less install.sh && sh install.sh
156
- ```
157
-
158
- ```powershell
159
- irm https://raw.githubusercontent.com/alibaba/open-code-review/main/install.ps1 -OutFile install.ps1
160
- notepad install.ps1 # 확인 후: .\install.ps1
161
- ```
162
-
163
- <details>
164
- <summary>수동 다운로드 (Windows 포함 모든 플랫폼)</summary>
165
-
166
- [GitHub Releases](https://github.com/alibaba/open-code-review/releases)에서 사용 중인 플랫폼의 binary를 다운로드합니다.
167
-
168
- ```bash
169
- # macOS (Apple Silicon)
170
- curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-darwin-arm64
171
- chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
172
-
173
- # macOS (Intel)
174
- curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-darwin-amd64
175
- chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
176
-
177
- # Linux (x86_64)
178
- curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-linux-amd64
179
- chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
180
-
181
- # Linux (ARM64)
182
- curl -Lo ocr https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-linux-arm64
183
- chmod +x ocr && sudo mv ocr /usr/local/bin/ocr
184
-
185
- # Windows (x86_64): ocr.exe를 PATH에 포함된 디렉터리로 이동하세요
186
- curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-amd64.exe
187
-
188
- # Windows (ARM64): ocr.exe를 PATH에 포함된 디렉터리로 이동하세요
189
- curl -Lo ocr.exe https://github.com/alibaba/open-code-review/releases/latest/download/opencodereview-windows-arm64.exe
190
- ```
191
-
192
- </details>
193
-
194
- **소스에서 빌드**
195
-
196
- ```bash
197
- git clone https://github.com/alibaba/open-code-review.git
198
- cd open-code-review
199
- make build
200
- sudo cp dist/opencodereview /usr/local/bin/ocr
201
- ```
108
+ 기타 설치 방법(설치 스크립트, GitHub Release binary, 소스 빌드)은 [설치 가이드](https://open-codereview.ai/docs/installation)를 참조하세요.
202
109
 
203
110
  #### Quick Start
204
111
 
205
112
  **1. LLM 설정**
206
113
 
207
- **코드 리뷰를 실행하기 전에 반드시 LLM 설정해야 합니다.**
208
-
209
- OCR은 통합 **Provider** 시스템으로 LLM 설정을 관리합니다. 다양한 주요 provider가 내장되어 있으며, 프라이빗 배포 또는 기타 호환 엔드포인트에 연결하기 위한 커스텀 provider 추가도 지원합니다. 설정은 `~/.opencodereview/config.json`에 저장됩니다.
210
-
211
- **Option A: 대화형 설정 (권장)**
114
+ 코드 리뷰 전에 LLM 설정이 필요합니다. [위임 모드](https://open-codereview.ai/docs/delegate)를 사용하는 경우에는 불필요합니다.
212
115
 
213
116
  ```bash
214
117
  ocr config provider # built-in provider 선택 또는 custom provider 추가
@@ -219,91 +122,9 @@ ocr config model # 활성 provider의 model 선택
219
122
 
220
123
  대화형 UI가 provider 선택, API key 입력, model 설정을 안내하며, 완료 후 자동으로 연결 테스트를 수행합니다.
221
124
 
222
- `ocr llm providers`를 실행하면 모든 built-in provider 확인할 있습니다. Built-in provider에는 API URL과 프로토콜이 사전 설정되어 있어 API key만 제공하면 바로 사용할 수 있습니다. 해당 환경 변수(예: `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`) 이미 설정되어 있으면 API key가 자동으로 읽힙니다.
223
-
224
- **커스텀 provider**도 대화형 UI에서 추가할 수 있습니다 — provider 이름, API URL, 프로토콜 타입(`anthropic` 또는 `openai`), API key를 입력합니다.
225
-
226
- **Option B: CLI 설정 (CI/CD 등 비대화형 환경용)**
227
-
228
- `ocr config set` 명령으로 provider 설정을 직접 작성합니다. 스크립트 및 자동화에 적합합니다.
229
-
230
- Built-in provider 사용:
231
-
232
- ```bash
233
- ocr config set provider anthropic
234
- ocr config set providers.anthropic.api_key your-api-key-here
235
- ocr config set providers.anthropic.model claude-sonnet-4-6
236
- ```
237
-
238
- 커스텀 provider 사용 (프라이빗 게이트웨이 또는 기타 호환 엔드포인트):
239
-
240
- ```bash
241
- ocr config set provider my-gateway
242
- ocr config set custom_providers.my-gateway.url https://my-llm-gateway.internal/v1
243
- ocr config set custom_providers.my-gateway.protocol openai
244
- ocr config set custom_providers.my-gateway.api_key your-api-key-here
245
- ocr config set custom_providers.my-gateway.model gpt-4o
246
- ```
247
-
248
- > 커스텀 provider에서는 `url`과 `protocol`이 필수입니다. 지원 프로토콜: `anthropic`, `openai`, `openai-responses`
249
-
250
- 선택 설정:
125
+ CLI 설정, 환경 변수, 커스텀 provider 고급 설정은 [설정 가이드](https://open-codereview.ai/docs/configuration) 참조하세요.
251
126
 
252
- | | 설명 |
253
- |----|------|
254
- | `providers.<name>.auth_header` | 인증 header: `x-api-key` 또는 `authorization` (기본값: `authorization`) |
255
- | `providers.<name>.extra_body` | 요청 body에 병합되는 커스텀 JSON 필드 |
256
- | `providers.<name>.extra_headers` | 쉼표로 구분된 `key=value` 쌍, 각 요청에 추가되는 커스텀 HTTP 헤더 |
257
- | `providers.<name>.models` | 대화형 선택용 model 목록 |
258
-
259
- **`extra_headers` (선택사항):** 모든 LLM API 요청에 커스텀 HTTP 헤더를 추가합니다. 프록시, 게이트웨이, 추가 헤더가 필요한 엔터프라이즈 엔드포인트(조직 ID, 트레이싱 ID 등)에 유용합니다. 형식은 쉼표로 구분된 `key=value` 쌍입니다. 쉼표가 포함된 값은 큰따옴표로 묶으세요:
260
-
261
- ```bash
262
- ocr config set llm.extra_headers "X-Org-ID=org-123,X-Forwarded-For=\"1.2.3.4,5.6.7.8\""
263
- ```
264
-
265
- provider 별로 추가 헤더를 설정할 수도 있습니다:
266
-
267
- ```bash
268
- ocr config set providers.anthropic.extra_headers "X-Org-ID=org-123"
269
- ```
270
-
271
- **환경 변수 (가장 높은 우선순위)**
272
-
273
- 환경 변수는 설정 파일의 값을 덮어씁니다. 설정 파일 작성이 불편한 CI/CD 시나리오에 적합합니다:
274
-
275
- ```bash
276
- export OCR_LLM_URL=https://api.anthropic.com/v1/messages
277
- export OCR_LLM_TOKEN=your-api-key-here
278
- export OCR_LLM_MODEL=claude-opus-4-6
279
- export OCR_USE_ANTHROPIC=true
280
- ```
281
-
282
- OpenAI Responses API(GPT-5.x / o-시리즈 모델)를 사용하려면 `OCR_USE_ANTHROPIC` 대신 `OCR_LLM_PROTOCOL`을 사용하세요:
283
-
284
- ```bash
285
- export OCR_LLM_URL=https://api.openai.com/v1
286
- export OCR_LLM_TOKEN=your-openai-key
287
- export OCR_LLM_MODEL=gpt-5.4
288
- export OCR_LLM_PROTOCOL=openai-responses
289
- ```
290
-
291
- `OCR_LLM_PROTOCOL`은 `anthropic`, `openai`, `openai-responses`를 허용하며, `OCR_USE_ANTHROPIC`과 함께 설정하면 우선 적용됩니다.
292
-
293
- Claude Code 환경 변수(`ANTHROPIC_BASE_URL`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_MODEL`)와도 호환되며, `~/.zshrc` / `~/.bashrc`의 export도 파싱합니다.
294
-
295
- > **CC-Switch 사용자 참고**: [CC-Switch](https://github.com/farion1231/cc-switch)를 [routing service](https://www.ccswitch.io/en/docs?section=proxy&item=service)와 함께 사용한다면, provider의 `url`을 CC-Switch proxy 주소로 지정하여 추가 설정 없이 사용할 수 있습니다:
296
- > - **Claude** provider: `providers.anthropic.url`을 `http://127.0.0.1:15721`로 설정
297
- > - **Codex** provider: 해당 provider의 `url`을 `http://127.0.0.1:15721/v1`로 설정
298
- > - `api_key`는 아무 값이나 사용 가능, `extra_body` 설정은 그대로 적용됨
299
-
300
- **2. 연결 테스트**
301
-
302
- ```bash
303
- ocr llm test
304
- ```
305
-
306
- **3. 리뷰 실행**
127
+ **2. 리뷰 실행**
307
128
 
308
129
  ```bash
309
130
  cd your-project
@@ -331,582 +152,24 @@ ocr delegate preview
331
152
  ocr delegate rule src/main.go src/handler.go
332
153
  ```
333
154
 
334
- ### Coding Agent와 통합
335
-
336
- OCR은 AI coding agent에 slash command로 자연스럽게 통합할 있으며, agent workflow 안에서 바로 코드 리뷰를 실행할 수 있습니다.
337
-
338
- #### Option 1: Skill로 설치
339
-
340
- `npx`로 OCR skill을 프로젝트에 설치합니다.
341
-
342
- ```bash
343
- npx skills add alibaba/open-code-review --skill open-code-review
344
- ```
345
-
346
- 명령은 [skills registry](skills/open-code-review/SKILL.md)의 `open-code-review` skill을 설치합니다. skill은 coding agent가 `ocr`을 호출해 코드 리뷰를 수행하고, issue를 우선순위별로 분류하며, 필요한 경우 fix를 적용하는 방법을 알려줍니다.
347
-
348
- **위임 모드** — 코딩 에이전트가 직접 리뷰를 수행하길 원하는 경우 (OCR은 파일 선택과 규칙 해석만 담당, OCR LLM 설정 불필요):
349
-
350
- ```bash
351
- npx skills add alibaba/open-code-review --skill open-code-review-delegate
352
- ```
353
-
354
- 자세한 내용은 [skills/open-code-review-delegate/SKILL.md](skills/open-code-review-delegate/SKILL.md)를 참조하세요.
355
-
356
- #### Option 2: Claude Code Plugin으로 설치
357
-
358
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)에서는 Claude Code 안에서 다음 명령으로 command plugin을 설치합니다.
359
-
360
- ```bash
361
- /plugin marketplace add alibaba/open-code-review
362
- /plugin install open-code-review@open-code-review
363
- ```
364
-
365
- 이렇게 하면 OCR을 실행하고 issue를 자동으로 필터링 및 수정하는 `/open-code-review:review` slash command가 등록됩니다. 또한 `/open-code-review:delegate-review` 위임 모드 명령도 제공됩니다 (에이전트가 자체 능력으로 리뷰를 수행하고, OCR은 파일 선택과 규칙 해석을 담당).
366
-
367
- #### Option 3: Codex Plugin으로 설치
368
-
369
- local Codex에서는 이 repository에서 Open Code Review plugin을 설치합니다.
370
-
371
- ```bash
372
- codex plugin marketplace add alibaba/open-code-review
373
- codex
374
- /plugins
375
- ```
376
-
377
- local checkout이나 fork에서는 다음을 사용할 수 있습니다.
378
-
379
- ```bash
380
- codex plugin marketplace add .
381
- codex
382
- /plugins
383
- ```
384
-
385
- `Open Code Review`를 설치하고 활성화한 뒤, 새 Codex thread를 시작해 명시적으로 호출합니다.
386
-
387
- ```text
388
- @Open Code Review review my current changes
389
- @Open Code Review review this branch against main
390
- @Open Code Review review and fix high-confidence issues
391
- ```
392
-
393
- 이 plugin은 local OCR CLI를 실행하는 Codex skill을 등록합니다.
394
-
395
- ```bash
396
- ocr review --audience agent
397
- ```
398
-
399
- 이 통합은 OCR의 내부 LLM backend를 변경하지 않으며 Codex용 OpenAI Responses API endpoint 설정을 요구하지 않습니다. OCR 자체는 CLI 설정 섹션에 설명된 대로 `ocr` CLI 설치와 설정이 필요합니다.
400
-
401
- 한국어 가이드: [`plugins/open-code-review/CODEX.ko-KR.md`](plugins/open-code-review/CODEX.ko-KR.md)
402
-
403
- #### Option 4: Cursor Plugin으로 설치
404
-
405
- [Cursor](https://www.cursor.com/)에서는 이 repository에서 Open Code Review plugin을 설치합니다:
406
-
407
- ```
408
- cursor-plugin marketplace add alibaba/open-code-review
409
- ```
410
-
411
- 수동으로 marketplace를 추가할 수도 있습니다. Cursor에서 `/plugins`를 열고 `Open Code Review`를 검색하여 설치합니다.
412
-
413
- local checkout이나 fork에서는 다음을 사용할 수 있습니다:
414
-
415
- ```
416
- cursor-plugin marketplace add .
417
- ```
418
-
419
- 설치 후, Cursor에서 다음과 같이 호출합니다:
420
-
421
- ```text
422
- @Open Code Review review my current changes
423
- @Open Code Review review this branch against main
424
- @Open Code Review review and fix high-confidence issues
425
- ```
426
-
427
- 이 plugin은 local OCR CLI를 실행하는 Cursor skill을 등록합니다:
428
-
429
- ```bash
430
- ocr review --audience agent
431
- ```
432
-
433
- 이 통합은 OCR의 내부 LLM backend를 변경하지 않습니다. OCR 자체는 CLI 설정 섹션에 설명된 대로 `ocr` CLI 설치와 설정이 필요합니다.
434
-
435
- #### Option 5: Command 파일 직접 복사
436
-
437
- package manager 없이 빠르게 설정하려면 command 파일을 복사해 Claude Code에서 `/open-code-review` slash command를 사용할 수 있습니다.
438
-
439
- **Project-level**(git으로 팀과 공유):
440
-
441
- ```bash
442
- mkdir -p .claude/commands
443
- curl -o .claude/commands/open-code-review.md \
444
- https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/claude-code/commands/review.md
445
- ```
446
-
447
- **User-level**(여러 프로젝트에서 개인 전역 사용):
448
-
449
- ```bash
450
- mkdir -p ~/.claude/commands
451
- curl -o ~/.claude/commands/open-code-review.md \
452
- https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/claude-code/commands/review.md
453
- ```
454
-
455
- 위임 모드 (OCR 측 LLM 설정 불필요):
456
-
457
- ```bash
458
- # 프로젝트 수준
459
- mkdir -p .claude/commands
460
- curl -o .claude/commands/open-code-review-delegate.md \
461
- https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/claude-code/commands/delegate-review.md
462
-
463
- # 사용자 수준
464
- mkdir -p ~/.claude/commands
465
- curl -o ~/.claude/commands/open-code-review-delegate.md \
466
- https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/claude-code/commands/delegate-review.md
467
- ```
468
-
469
- > **전제 조건**: 모든 통합 방식은 `ocr` CLI 설치가 필요합니다. 표준 모드는 추가로 LLM 설정이 필요합니다 — 위의 [설치](#설치) 및 [LLM 설정](#1-llm-설정)을 참조하세요. 위임 모드는 OCR 측 LLM 설정이 **필요 없습니다**.
470
-
471
- ### CI/CD 통합
472
-
473
- OCR은 CI/CD pipeline에 통합해 Merge Request / Pull Request 코드 리뷰를 자동화할 수 있습니다.
474
-
475
- CI 통합의 핵심 명령:
476
-
477
- ```bash
478
- ocr review \
479
- --from "origin/main" \
480
- --to "origin/feature-branch" \
481
- --format json
482
- ```
483
-
484
- `--format json` flag는 CI script에서 파싱하기 좋은 machine-readable 결과를 출력합니다.
485
-
486
- 각 finding에는 두 개의 구조화된 field가 포함되어, CI 통합에서 comment 텍스트를 다시 파싱하지 않고도 정렬·그룹화·필터링하거나 build를 gate할 수 있습니다:
487
-
488
- | Field | 허용 값 | 설명 |
489
- |-------|--------|------|
490
- | `category` | `bug`, `security`, `performance`, `maintainability`, `test`, `style`, `documentation`, `other` | 이슈가 속한 카테고리. |
491
- | `severity` | `critical`, `high`, `medium`, `low` | 이슈의 중요도. |
492
-
493
- JSON 출력에서 두 field는 `content`, `start_line` 등과 같은 수준의 sibling으로 나타납니다. 터미널에서는 comment 앞에 인라인 `[category · severity]` badge로 표시되며 severity에 따라 색상이 지정됩니다.
494
-
495
- 통합 예시는 [`examples/`](./examples/) 디렉터리를 참고하세요.
496
-
497
- - [`github_actions/`](./examples/github_actions/): GitHub Actions 통합 예시
498
- - [`gitlab_ci/`](./examples/gitlab_ci/): GitLab CI 통합 예시
499
- - [`gitflic_ci/`](./examples/gitflic_ci/): GitFlic CI 통합 예시
500
-
501
- #### GitHub Action
502
-
503
- GitHub의 경우, 이 리포지터리는 루트에 바로 사용할 수 있는 composite Action([`action.yml`](./action.yml))을 제공합니다. 직접 `ocr review` 스크립트를 작성하는 대신 이를 참조하기만 하면 전체 파이프라인 — checkout, OCR 설치, review 실행, inline/summary comment 게시, artifact 업로드, 재시도 및 멱등성 — 을 모두 처리합니다:
504
-
505
- ```yaml
506
- - uses: alibaba/open-code-review@main
507
- with:
508
- llm_url: ${{ secrets.OCR_LLM_URL }}
509
- llm_auth_token: ${{ secrets.OCR_LLM_AUTH_TOKEN }}
510
- llm_model: ${{ vars.OCR_LLM_MODEL }}
511
- llm_use_anthropic: ${{ vars.OCR_LLM_USE_ANTHROPIC }}
512
- ```
513
-
514
- 재현성을 위해 version tag나 commit SHA에 고정하세요. 전체 workflow 데모와 inputs/outputs, comment 게시 모드(sticky summary, incremental non-destructive posting)의 전체 목록은 [`examples/github_actions/`](./examples/github_actions/) 디렉터리를 참고하세요.
515
-
516
- ## Commands
517
-
518
- | Command | Alias | Description |
519
- |---------|-------|-------------|
520
- | `ocr review` | `ocr r` | diff 기반 코드 리뷰 시작 |
521
- | `ocr scan` | `ocr s` | 전체 파일 리뷰 (diff 불필요) |
522
- | `ocr delegate preview` | `ocr d preview` | 리뷰 대상 파일 목록을 모드/참조 메타데이터와 함께 출력 (LLM 불필요) |
523
- | `ocr delegate rule <path...>` | `ocr d rule` | 내용별로 그룹화된 리뷰 규칙 출력 (LLM 불필요) |
524
- | `ocr rules check <file>` | - | 파일 경로에 적용될 리뷰 rule 미리보기 |
525
- | `ocr config provider` | - | 대화형 provider 설정 (built-in, custom, 수동) |
526
- | `ocr config model` | - | 활성 provider의 대화형 model 선택 |
527
- | `ocr config set <key> <value>` | - | config 값 설정 |
528
- | `ocr config unset custom_providers.<name>` | - | custom provider 삭제 |
529
- | `ocr llm test` | - | LLM 연결 테스트 |
530
- | `ocr llm providers` | - | built-in LLM provider 목록 표시 |
531
- | `ocr session list` | `ocr sessions list`, `ocr session ls` | 저장된 review session 목록 표시 |
532
- | `ocr session show <id>` | `ocr sessions show <id>` | 단일 session과 파일별 checkpoint 확인 |
533
- | `ocr viewer` | `ocr v` | `localhost:5483`에서 WebUI session viewer 실행 |
534
- | `ocr version` | - | version 정보 표시 |
535
-
536
- ### `ocr review` Flags
537
-
538
- | Flag | Shorthand | Default | Description |
539
- |------|-----------|---------|-------------|
540
- | `--repo` | - | current dir | Git repository root |
541
- | `--from` | - | - | Source ref 예: `main` |
542
- | `--to` | - | - | Target ref 예: `feature-branch` |
543
- | `--commit` | `-c` | - | 리뷰할 단일 commit |
544
- | `--exclude` | - | - | 건너뛸 파일의 쉼표 구분 gitignore 스타일 패턴; rule.json의 excludes와 병합 |
545
- | `--preview` | `-p` | `false` | LLM 실행 없이 리뷰 대상 파일 미리보기 |
546
- | `--resume` | - | - | 이전의 호환되는 range 또는 단일 commit review session에서 재개 |
547
- | `--format` | `-f` | `text` | Output format: `text` 또는 `json` |
548
- | `--concurrency` | - | `8` | 최대 동시 파일 리뷰 수 |
549
- | `--timeout` | - | `10` | 동시 task timeout(분) |
550
- | `--audience` | - | `human` | `human`(progress 표시) 또는 `agent`(summary only) |
551
- | `--background` | `-b` | - | 리뷰를 위한 선택적 요구사항/비즈니스 컨텍스트. `--commit` 사용 시 미지정이면 commit message에서 자동 추출 |
552
- | `--background-file` | `-B` | - | Markdown 파일에서 읽어오는 선택적 요구사항/비즈니스 컨텍스트. `--background`와 함께 사용하면 inline 값이 먼저 배치됩니다 |
553
- | `--model` | - | - | 이번 리뷰에서 LLM model 선택 또는 override |
554
- | `--rule` | - | - | custom JSON review rules 경로 |
555
- | `--max-tools` | - | built-in | 파일별 최대 tool call round. template default보다 클 때만 적용 |
556
- | `--max-git-procs` | - | built-in | 최대 동시 git subprocess 수 |
557
- | `--tools` | - | - | custom JSON tools config 경로 |
558
-
559
- #### Resumable Reviews and Sessions
560
-
561
- 모든 `ocr review` 실행은 `~/.opencodereview/sessions/` 아래에 local session log를 저장합니다.
562
- 정상 완료된 text output은 review 결과에 집중하며 session ID를 출력하지 않습니다.
563
- 저장된 session은 `ocr session list/show`로 찾을 수 있고, `--format json`을 사용하면
564
- machine-readable output에 `session_id`가 포함됩니다. range 또는 단일 commit review가 중단된 경우,
565
- 저장된 session을 나열한 뒤 동일한 review target과 일치하는 session에서 재개합니다.
566
-
567
- ```bash
568
- ocr session list
569
- ocr session show <session-id>
570
- ocr review --from main --to feature-branch --resume <session-id>
571
- ocr review --commit abc123 --resume <session-id>
572
- ```
573
-
574
- Resume은 의도적으로 엄격합니다. branch range와 단일 commit review만 지원하고 workspace review는 지원하지 않습니다.
575
- 현재 `--from/--to` 또는 `--commit`은 저장된 session과 일치해야 합니다. `--preview`와 `--resume`은 함께 사용할 수 없습니다.
576
-
577
- `--format json`을 사용하면 재개된 run에는 다음 field가 포함됩니다.
578
-
579
- - `session_id`: 현재 run의 session ID
580
- - `resume.resumed_from`: source session ID
581
- - `resume.reused_files`: 저장된 checkpoint에서 재사용한 파일 수
582
- - `resume.rerun_files`: 현재 run에서 다시 review한 파일 수
583
-
584
- ### `ocr session` Flags
585
-
586
- | Command | Flag | Default | Description |
587
- |---------|------|---------|-------------|
588
- | `ocr session list` | `--repo` | current dir | session을 나열할 repository |
589
- | `ocr session list` | `--json` | `false` | session summary를 JSON으로 출력 |
590
- | `ocr session list` | `--limit` | `20` | 나열할 session 수 제한. `0`은 unlimited |
591
- | `ocr session show <id>` | `--repo` | current dir | 확인할 session의 repository |
592
- | `ocr session show <id>` | `--json` | `false` | session metadata와 파일별 item을 JSON으로 출력 |
593
-
594
- ### `ocr scan` Flags
595
-
596
- `ocr scan`은 diff가 아닌 전체 파일을 리뷰합니다 — 익숙하지 않은 코드베이스 감사, 마이그레이션 전 스캔, 의미 있는 diff가 없는 디렉터리 등에 유용합니다. 비-git 디렉터리에서도 작동합니다 (`.gitignore`를 따르는 파일 시스템 탐색으로 폴백).
597
-
598
- | Flag | Shorthand | Default | Description |
599
- |------|-----------|---------|-------------|
600
- | `--path` | - | 전체 repo | 스캔할 쉼표 구분 디렉터리/파일 |
601
- | `--exclude` | - | - | 건너뛸 파일의 쉼표 구분 gitignore 스타일 패턴; rule.json의 excludes와 병합 |
602
- | `--preview` | `-p` | `false` | LLM 실행 없이 스캔 대상 파일 목록 표시 |
603
- | `--max-tokens-budget` | - | `0` (무제한) | 총 토큰 사용량 제한; 초과 시 dispatch 중단 |
604
- | `--no-plan` | - | `false` | 파일별 planning 사전 처리 건너뛰기 |
605
- | `--no-dedup` | - | `false` | 배치별 유사 comment 중복 제거 건너뛰기 |
606
- | `--no-summary` | - | `false` | 프로젝트 수준 요약 건너뛰기 |
607
- | `--batch` | - | `by-language` | 배치 전략: `none`, `by-language`, 또는 `by-directory` |
608
- | `--format` | `-f` | `text` | Output format: `text` 또는 `json` (JSON에 `project_summary` 필드 포함) |
609
- | `--concurrency` | - | `8` | 최대 동시 파일 스캔 수 |
610
- | `--rule` | - | - | custom JSON review rules 경로 |
611
- | `--repo` | - | current dir | 스캔할 repository 또는 디렉터리 루트 |
612
-
613
- 각 실행 전에 `ocr scan`은 대략적인 토큰 비용 추정치를 출력합니다. `--preview`로 먼저 파일 목록을 확인하고, `--max-tokens-budget`으로 대규모 repository의 비용을 제한할 수 있습니다.
614
-
615
- ### `ocr delegate` 플래그
616
-
617
- `ocr delegate`는 AI 코딩 에이전트를 위한 위임 모드입니다. LLM을 호출하지 않고
618
- 결정론적인 파일 선택과 규칙 해석을 제공합니다 — 실제 리뷰는 호스트 에이전트가
619
- 자체 능력으로 수행합니다.
620
-
621
- | 하위 명령 | 설명 |
622
- |-----------|------|
623
- | `ocr delegate preview` | 리뷰 대상 파일 목록을 모드/참조 메타데이터와 함께 출력 |
624
- | `ocr delegate rule <path...>` | 내용별로 그룹화된 리뷰 규칙 출력 |
625
-
626
- 두 하위 명령은 다음 플래그를 공유합니다:
627
-
628
- | 플래그 | 축약형 | 기본값 | 설명 |
629
- |--------|--------|--------|------|
630
- | `--repo` | — | 현재 디렉터리 | Git 저장소 루트 |
631
- | `--from` | — | — | 소스 참조 (예: `main`) |
632
- | `--to` | — | — | 대상 참조 (예: `feature-branch`) |
633
- | `--commit` | `-c` | — | 단일 커밋 |
634
- | `--exclude` | — | — | 쉼표로 구분된 gitignore 스타일 제외 패턴 |
635
- | `--rule` | — | — | 커스텀 JSON 리뷰 규칙 경로 |
636
- | `--background` | `-b` | — | 선택적 요구사항/비즈니스 컨텍스트 |
637
- | `--background-file` | `-B` | — | Markdown 파일에서 비즈니스 컨텍스트 로드 |
638
- | `--max-git-procs` | — | `16` | 최대 동시 git 하위 프로세스 수 |
639
-
640
- ## Examples
641
-
642
- ```bash
643
- # 대화형 provider 및 model 설정
644
- ocr config provider
645
- ocr config model
646
- ocr llm providers
647
-
648
- # custom provider 삭제
649
- ocr config unset custom_providers.my-gateway
650
-
651
- # 리뷰 대상 파일 미리보기(LLM call 없음)
652
- ocr review --preview
653
- ocr review -c abc123 -p
654
-
655
- # default 설정으로 workspace 변경 리뷰
656
- ocr review
657
-
658
- # 더 높은 concurrency로 branch diff 리뷰
659
- ocr review --from main --to my-feature --concurrency 4
660
-
661
- # 특정 commit을 verbose JSON output으로 리뷰
662
- ocr review --commit abc123 --format json --audience agent
663
-
664
- # 중단된 range 또는 단일 commit review 재개
665
- ocr session list
666
- ocr session show <session-id>
667
- ocr review --from main --to my-feature --resume <session-id>
668
- ocr review --commit abc123 --resume <session-id>
669
-
670
- # 이번 리뷰에서 model 선택 또는 override
671
- ocr review --model claude-opus-4-6
672
- ocr review --commit abc123 --model claude-sonnet-4-6
673
-
674
- # 요구사항 컨텍스트를 제공하여 더 정확한 리뷰 수행
675
- ocr review --background "로그인 API에 rate limiting 추가"
676
-
677
- # Markdown 파일에서 요구사항 컨텍스트 제공
678
- ocr review --background-file ./docs/my_business_context.md
679
-
680
- # inline 컨텍스트와 로컬 컨텍스트 파일을 함께 사용(둘 다 적용됨)
681
- ocr review --background "인증에 집중" --background-file ./docs/my_business_context.md
682
-
683
- # custom review rules 사용
684
- ocr review --rule /path/to/my-rules.json
685
-
686
- # 파일에 적용될 rule 미리보기
687
- ocr rules check src/main/java/com/example/Foo.java
688
- ocr rules check --rule custom.json src/main/resources/mapper/UserMapper.xml
689
-
690
- # 전체 파일 스캔: 먼저 파일 목록 미리보기 (LLM call 없음)
691
- ocr scan --preview
692
-
693
- # 전체 repo 스캔, 비용을 ~500k 토큰으로 제한
694
- ocr scan --max-tokens-budget 500000
695
-
696
- # 하위 디렉터리 스캔, 생성/테스트 파일 건너뛰기
697
- ocr scan --path internal --exclude '**/*_test.go,**/generated/**'
698
-
699
- # 비-git 디렉터리를 JSON output으로 스캔 (project_summary 포함)
700
- ocr scan --repo /path/to/plain/dir --format json
701
-
702
- # 가장 빠른 스캔: planning, 중복 제거, 프로젝트 요약 건너뛰기
703
- ocr scan --no-plan --no-dedup --no-summary
704
-
705
- # 위임 모드 — AI 에이전트가 리뷰 수행 (LLM 설정 불필요)
706
- ocr delegate preview
707
- ocr delegate preview --from main --to feature-branch
708
- ocr delegate preview --commit abc123
709
- ocr delegate rule internal/handler.go internal/service.go cmd/main.go
710
-
711
- # browser에서 review session history 보기
712
- ocr viewer
713
- ocr viewer --addr :3000
714
- ```
715
-
716
- ### Viewer 보안
717
-
718
- viewer는 session JSONL 내용(LLM request messages와 responses)을 HTTP로 제공합니다. 모든 request에 대해 Host header allowlist를 적용합니다. loopback 이름(`localhost`, `127.0.0.0/8`, `::1`)과 실제 bind host는 항상 허용됩니다. wildcard bind(`--addr :3000`, `--addr 0.0.0.0:3000`)와 다른 non-loopback hostname은 `OCR_VIEWER_ALLOWED_HOSTS` 환경 변수에 comma-separated 값으로 추가해야 합니다.
719
-
720
- ```bash
721
- OCR_VIEWER_ALLOWED_HOSTS=review.internal,ocr.lan ocr viewer --addr :3000
722
- ```
723
-
724
- 이 설정은 local viewer를 대상으로 하는 DNS rebinding 공격을 차단합니다.
725
-
726
- ## Review Rules
727
-
728
- OCR은 네 계층의 priority chain으로 review rule을 해석합니다. 각 계층은 first-match-wins 방식입니다. 파일 경로가 pattern에 match되면 해당 rule을 사용하고, 아니면 다음 계층으로 넘어갑니다.
729
-
730
- | Priority | Source | Path | Description |
731
- |----------|--------|------|-------------|
732
- | 1 (highest) | `--rule` flag | User-specified path | CLI explicit override |
733
- | 2 | Project config | `<repoDir>/.opencodereview/rule.json` | project별 rule, git commit 가능 |
734
- | 3 | Global config | `~/.opencodereview/rule.json` | user-wide 개인 선호 |
735
- | 4 (lowest) | System default | Embedded `system_rules.json` | 일반 language와 file type을 다루는 built-in rule |
736
-
737
- ### Rule File Format
738
-
739
- 모든 계층은 같은 JSON format을 공유합니다.
740
-
741
- ```json
742
- {
743
- "rules": [
744
- {
745
- "path": "force-api/**/*.java",
746
- "rule": "All new methods must validate required parameters for null values",
747
- "merge_system_rule": true
748
- },
749
- {
750
- "path": "**/*mapper*.xml",
751
- "rule": "Check SQL for injection risks, parameter errors, and missing closing tags"
752
- }
753
- ]
754
- }
755
- ```
756
-
757
- - `path`는 `**` recursive matching과 `{java,kt}` brace expansion을 지원합니다.
758
- - `merge_system_rule`은 optional입니다. `true`이면 매칭된 built-in system rule을 이 user rule과 병합합니다.
759
- - 각 계층 안에서는 rule이 선언 순서대로 평가되며 첫 번째 match가 선택됩니다.
760
- - rule file이 없으면 조용히 건너뜁니다.
761
-
762
- **`rule` 필드는 인라인 콘텐츠와 파일 경로를 모두 지원합니다.** 시스템이 다음 순서로 자동 판별합니다:
763
-
764
- 1. 값에 줄바꿈이 포함된 경우 → **인라인 콘텐츠** (여러 줄 규칙은 파일 경로로 간주되지 않습니다).
765
- 2. 값이 한 줄이고 공백이 없으며 `.md` / `.txt` / `.markdown`으로 끝나는 경우 → **파일 경로**.
766
- - 절대 경로(`/`로 시작)는 그대로 사용됩니다.
767
- - 상대 경로는 프로젝트 루트에서 확인합니다. 경로 탐색(예: `../../etc/passwd.md`)은 차단됩니다. 없으면 `[WARN]`을 출력하고 규칙이 지워집니다 (인라인으로 폴백 없음).
768
- - 파일은 유효성 검사를 통과해야 합니다: 허용된 확장자, ≤ 512 KB, 심볼릭 링크 해석 후 대상도 허용된 확장자여야 합니다. 검증 실패 시 규칙이 지워집니다.
769
- 3. 그 외의 경우 → **인라인 콘텐츠**.
770
-
771
- ```json
772
- {
773
- "rules": [
774
- {
775
- "path": "**/*mapper*.xml",
776
- "rule": "docs/sql-rules.md"
777
- },
778
- {
779
- "path": "**/*.java",
780
- "rule": "Always check for null safety and resource leaks"
781
- },
782
- {
783
- "path": "**/*.go",
784
- "rule": "shared/go-concurrency.md"
785
- },
786
- {
787
- "path": "**/*.py",
788
- "rule": "/Users/me/team-rules/python.md"
789
- }
790
- ]
791
- }
792
- ```
793
-
794
- - `docs/sql-rules.md` — 상대 경로, `<project>/docs/sql-rules.md`에서 로드.
795
- - `Always check for null safety…` — 인라인 문자열, 그대로 사용.
796
- - `shared/go-concurrency.md` — 상대 경로, 동일하게 해결.
797
- - `/Users/me/team-rules/python.md` — 절대 경로, 그대로 사용.
798
-
799
- > 절대 경로는 프로젝트 외부 파일에 접근할 수 있으며, 이는 의도된 설계입니다. `rule.json`은 프로젝트 메인테이너가 작성하는 신뢰된 입력입니다. 팀은 공유 규칙을 공통 경로(예: `/opt/company-rules/`)에 두어 각 프로젝트에 복사할 필요가 없습니다.
800
-
801
- ## Configuration Reference
802
-
803
- Config file: `~/.opencodereview/config.json`
804
-
805
- | Key | Type | Example |
806
- |-----|------|---------|
807
- | `provider` | string | `anthropic` \| `openai` \| `dashscope` \| `deepseek` \| `z-ai` |
808
- | `providers.<name>.api_key` | string | Provider별 API key |
809
- | `providers.<name>.url` | string | Provider base URL override |
810
- | `providers.<name>.protocol` | string | `anthropic` \| `openai` \| `openai-responses` |
811
- | `providers.<name>.model` | string | Provider의 model 이름 |
812
- | `providers.<name>.models` | array | 대화형 선택에 사용할 optional provider model 목록 |
813
- | `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
814
- | `providers.<name>.extra_body` | object | 모든 요청 본문에 병합되는 JSON 객체 |
815
- | `providers.<name>.timeout_sec` | integer | 요청당 HTTP timeout(초), 기본값 `300` |
816
- | `providers.<name>.extra_headers` | string | 쉼표로 구분된 `key=value` HTTP 헤더 |
817
- | `custom_providers.<name>.*` | — | optional `models`를 포함한 `providers.<name>.*`과 동일한 필드 |
818
- | `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
819
- | `llm.auth_token` | string | `sk-xxxxxxx` |
820
- | `llm.auth_header` | string | Anthropic only: `x-api-key` \| `authorization` |
821
- | `llm.extra_body` | object | 모든 요청 본문에 병합되는 JSON 객체 |
822
- | `llm.timeout_sec` | integer | 요청당 HTTP timeout(초), 기본값 `300` |
823
- | `llm.extra_headers` | string | 쉼표로 구분된 `key=value` HTTP 헤더 |
824
- | `llm.model` | string | `claude-opus-4-6` |
825
- | `llm.protocol` | string | `anthropic` \| `openai` \| `openai-responses`; `llm.use_anthropic`보다 우선 |
826
- | `llm.use_anthropic` | boolean | `true` \| `false` (레거시; `llm.protocol` 권장) |
827
- | `mcp_servers.<name>.command` | string | MCP 서버를 시작하는 명령어 |
828
- | `mcp_servers.<name>.args` | array | MCP 서버의 커맨드라인 인수 |
829
- | `mcp_servers.<name>.env` | array | 환경 변수 (`KEY=VALUE` 형식) |
830
- | `mcp_servers.<name>.tools` | array | 허용할 도구 이름 (비어 있으면 모든 도구 허용) |
831
- | `mcp_servers.<name>.setup` | string | 서버 시작 전에 실행할 설정 명령어 |
832
- | `language` | string | 임의의 언어 이름, 예: `English`, `Chinese` (기본값: `English`) |
833
- | `telemetry.enabled` | boolean | `true` \| `false` |
834
- | `telemetry.exporter` | string | `console` \| `otlp` |
835
- | `telemetry.otlp_endpoint` | string | OTLP collector address |
836
- | `telemetry.content_logging` | boolean | telemetry에 prompt 포함 여부 |
837
-
838
- 환경 변수는 config file보다 우선합니다.
839
-
840
- ### MCP Server
841
-
842
- Open Code Review는 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 서버를 지원하여 리뷰 에이전트가 stdio 전송을 통해 코드 리뷰 중에 외부 도구를 사용할 수 있습니다.
843
-
844
- CLI로 MCP 서버를 설정합니다:
845
-
846
- ```bash
847
- # MCP 서버 추가
848
- ocr config set mcp_servers.<name>.command <command>
849
- ocr config set mcp_servers.<name>.args '["arg1","arg2"]'
850
- ocr config set mcp_servers.<name>.env '["KEY=VALUE"]'
851
- ocr config set mcp_servers.<name>.tools '["tool_name"]'
852
- ocr config set mcp_servers.<name>.setup '<setup command>'
853
-
854
- # MCP 서버 삭제
855
- ocr config unset mcp_servers.<name>
856
- ```
857
-
858
- | 필드 | 필수 | 설명 |
859
- |------|------|------|
860
- | `command` | 예 | MCP 서버를 시작하는 실행 명령어 |
861
- | `args` | 아니오 | 서버에 전달할 커맨드라인 인수 |
862
- | `env` | 아니오 | 환경 변수 (`KEY=VALUE` 형식) |
863
- | `tools` | 아니오 | 허용할 도구 이름. 비어 있으면 서버의 모든 도구 사용 가능 |
864
- | `setup` | 아니오 | 서버 시작 전에 실행할 셸 명령어 (예: 인덱스 빌드) |
865
-
866
- > **참고:** MCP 도구의 이름이 내장 도구와 충돌하면 경고와 함께 건너뜁니다. `setup` 명령어의 타임아웃은 5분입니다.
867
-
868
- **예시: [CodeGraph](https://github.com/nicholasgasior/codegraph)를 추가하여 코드 구조 분석 강화**
869
-
870
- ```bash
871
- ocr config set mcp_servers.codegraph.command codegraph
872
- ocr config set mcp_servers.codegraph.args '["serve","--mcp"]'
873
- ocr config set mcp_servers.codegraph.tools '["codegraph_explore"]'
874
- ocr config set mcp_servers.codegraph.setup 'codegraph init && codegraph index'
875
- ```
876
-
877
- ### Environment Variables
878
-
879
- | Variable | Purpose |
880
- |----------|---------|
881
- | `OCR_LLM_URL` | LLM API endpoint URL |
882
- | `OCR_LLM_TOKEN` | API key / auth token |
883
- | `OCR_LLM_AUTH_HEADER` | Anthropic auth header (`x-api-key` 또는 `authorization`) |
884
- | `OCR_LLM_EXTRA_HEADERS` | 쉼표로 구분된 `key=value` HTTP 헤더 |
885
- | `OCR_LLM_MODEL` | Model name |
886
- | `OCR_LLM_PROTOCOL` | 프로토콜: `anthropic` \| `openai` \| `openai-responses`; `OCR_USE_ANTHROPIC`보다 우선 |
887
- | `OCR_LLM_TIMEOUT` | 요청당 HTTP timeout(초), config file의 `timeout_sec`를 override |
888
- | `OCR_USE_ANTHROPIC` | `true` = Anthropic, `false` = OpenAI Chat Completions (레거시; `OCR_LLM_PROTOCOL` 권장) |
889
-
890
- ## Telemetry
891
-
892
- 관측성을 위한 OpenTelemetry 통합(spans, metrics)입니다. 기본값은 disabled입니다.
893
-
894
- ```bash
895
- ocr config set telemetry.enabled true
896
- ocr config set telemetry.exporter otlp
897
- ocr config set telemetry.otlp_endpoint localhost:4317
898
- ```
899
-
900
- exported data에 LLM prompt와 response를 포함하려면 `telemetry.content_logging`을 설정합니다.
901
-
902
- **프로토콜 선택:** 환경 변수 `OTEL_EXPORTER_OTLP_PROTOCOL`로 export 프로토콜을 선택할 수 있습니다:
903
-
904
- | 값 | 전송 방식 | 설명 |
905
- |---|---|---|
906
- | `grpc` (기본값) | gRPC | 기본 포트 4317 |
907
- | `http/protobuf` | HTTP | 기본 포트 4318 |
908
-
909
- **Endpoint 형식:** `telemetry.otlp_endpoint`는 `host:port` 또는 `http://host:port` 형식의 base URL을 지정합니다. 경로를 포함할 필요가 없습니다. SDK가 [OTLP 사양](https://opentelemetry.io/docs/specs/otlp/#otlphttp-request)에 따라 signal 경로(예: `/v1/traces`)를 자동으로 추가합니다.
155
+ ## Documentation
156
+
157
+ 전체 문서는 **[open-codereview.ai/docs](https://open-codereview.ai/docs)** 에서 확인할있습니다:
158
+
159
+ - [빠른 시작](https://open-codereview.ai/docs/quickstart) 설치하고 첫 리뷰 실행하기
160
+ - [설치](https://open-codereview.ai/docs/installation) — 모든 플랫폼 및 패키지 매니저
161
+ - [CLI 레퍼런스](https://open-codereview.ai/docs/cli-reference) 모든 명령어와 플래그
162
+ - [리뷰 규칙](https://open-codereview.ai/docs/review-rules) — 리뷰 규칙 커스터마이징, 경로 필터링 및 타겟팅
163
+ - [설정](https://open-codereview.ai/docs/configuration) — 설정 키와 환경 변수
164
+ - [MCP 서버](https://open-codereview.ai/docs/mcp) 외부 도구로 리뷰 에이전트 확장
165
+ - 코딩 에이전트 연동 — OCR을 Claude Code, Codex, Cursor 등에 통합
166
+ - [Skill](https://open-codereview.ai/docs/agent-skill) — 재사용 가능한 에이전트 스킬로 설치
167
+ - [Plugin](https://open-codereview.ai/docs/claude-code) Claude Code / Codex / Cursor 플러그인으로 설치
168
+ - [위임 모드](https://open-codereview.ai/docs/delegate) — 에이전트 자체 LLM으로 리뷰 수행
169
+ - [CI/CD 연동](https://open-codereview.ai/docs/cicd) GitHub Actions, GitLab CI, GitFlic CI, Gerrit 통합
170
+ - [세션 뷰어](https://open-codereview.ai/docs/viewer) — 브라우저에서 리뷰 세션 탐색 및 재생
171
+ - [텔레메트리](https://open-codereview.ai/docs/telemetry) — 관측성을 위한 OpenTelemetry 통합
172
+ - [FAQ](https://open-codereview.ai/docs/faq) 자주 묻는 질문과 문제 해결
910
173
 
911
174
  ## Contributing
912
175