Skip to content

設定 ​

設定分為專案設定與個人設定:三個檔案位於專案的 .review-bridge/,另有一個 settings.json 位於 data home(使用者資料目錄)。檔案採用 JSON 或 Markdown 格式。修改時請留意下方列出的受保護欄位。

.review-bridge/bridge.json ​

init 產生的設定如下。這是 0.3.0-rc.3 在一個有 package.json(沒有 test script)的專案、系統語言為繁體中文時寫出的檔案,照原樣:

json
{
  "schema_version": 4,
  "project_id": "bdbe7d5a-c1de-4d00-ad6e-59ed13cf8d0f",
  "profile_id": "node-backend",
  "roles": {
    "writer": { "provider_id": "claude" },
    "reviewer": { "provider_id": "codex" },
    "reviewer_readonly_required": true
  },
  "requires_human_authorization": true,
  "watch": { "port": 53559, "strict_port": false },
  "retention": { "days": 15 },
  "locale": "zh-TW",
  "test": { "profile_id": "node-backend", "rules": [{ "command": "npm test", "package_script": "test" }] },
  "readiness": { "reviewer_readonly_proven": "not_run" },
  "default_policy_ref": "review-bridge/config/default-policy.json",
  "project_override_ref": ".review-bridge/policy.override.json",
  "active_runs": "derive_from_run_projections"
}
欄位說明
project_id專案在 data home 與日誌目錄中的識別碼,請勿修改
roles.writer / roles.reviewer指定各角色使用 claude 或 codex。修改後於下一次 start 生效,卡片會顯示使用的配對
roles.reviewer_readonly_required、requires_human_authorization、readiness受保護欄位。init 分別寫入 true、true、"not_run";init 與 upgrade 會檢查這些值,若遭修改便停止,不能用來關閉安全限制
watch.port本機頁面的連接埠。strict_port 為 false 時,若埠被占用,會依序尋找下一個可用埠
retention.days執行日誌與已結束紀錄的保留天數,供 clean 清理時使用
locale卡片、status、up、down、ps、init 與結果檔使用的語言:en 或 zh-TW。init 依系統語言寫入
test.profile_id / test.rules專案類型與對應的驗證指令,見下方 profiles 表格

.review-bridge/policy.override.json ​

專案層的 policy 覆寫,用來調整套件預設規則。init 只會建立以下內容:

json
{ "schema_version": 5, "profile_id": null }

預設 policy(套件內 review-bridge/config/default-policy.json)的內容:

json
{
  "limits": {
    "rounds": 2,
    "call_timeout": 900000,
    "max_turns": 20,
    "tokens_per_call": 1500000,
    "tokens": 4000000,
    "test_timeout": 600000,
    "run_timeout": 21600000,
    "authorization_ttl": 86400000
  },
  "writer": { "mode": "writer_only", "disallowed_tools": [], "self_review": "one_local_consistency_pass" },
  "reviewer": { "mcp_allow": [] },
  "priority": {
    "default": "medium",
    "writer":   { "low": { "model": null, "effort": "low" }, "medium": { "model": null, "effort": "medium" }, "high": { "model": null, "effort": "high" }, "urgent": { "model": null, "effort": "high" } },
    "reviewer": { "low": { "model": null, "effort": "low" }, "medium": { "model": null, "effort": "medium" }, "high": { "model": null, "effort": "high" }, "urgent": { "model": null, "effort": "high" } }
  },
  "release_actions_require_human": true
}
  • limits 定義執行上限,工單的 budget 不得超過這些值。時間單位為毫秒;authorization_ttl 是卡片的有效期限,預設 24 小時。
  • priority 表指定各優先等級的模型與 effort。model: null 表示採用 CLI 預設模型;工單中的 writer:/reviewer: 設定優先於此表。工單可以降低 reviewer 的 effort,專案層覆寫則不得低於表中的設定。
  • reviewer.mcp_allow:允許 reviewer 使用的 MCP 伺服器名稱清單,預設為空,不放行任何伺服器。目前放行的伺服器未經唯讀驗證,卡片會顯示此限制。
  • writer.disallowed_tools:Claude writer 禁用的工具清單。Codex writer 不支援此設定,若 policy 有設定,Bridge 會拒絕執行。

.review-bridge/rules.md ​

Bridge 每次開始工作前提供給 writer 的規則摘要,說明可做事項、禁止事項與停止條件。可依專案需要修改,請維持在一頁以內。

settings.json(data home) ​

所有專案共用的個人設定:

json
{
  "schema_version": 1,
  "default_roles": { "writer": "claude", "reviewer": "codex" }
}
  • default_roles:init 詢問角色時採用的預設值。
  • database.port:資料庫開始尋找可用埠的位置,例如 "database": { "port": 5440 };下次資料庫啟動時生效。

專案類型(profiles) ​

在 init 的第三項設定中選擇。類型決定每輪 writer 完成後,Bridge 使用哪個驗證指令:

profile_id偵測驗證指令
vue-frontendVue 與 TypeScript 前端npm test
node-backendNode.js 後端npm test
rust-backendRustcargo test --workspace
go-backendGogo test ./...
python-backendPythonpython -m pytest
java-backendJavamvnw/mvn test、gradlew/gradle test
dotnet-backend.NET 與 C#dotnet test
php-laravelPHP Laravelphp artisan test
none—不執行測試;卡片與結果會標示測試「沒有設定」

環境變數 ​

變數作用
REVIEW_BRIDGE_DATA_HOME指定 data home 的位置,包含設定、資料庫與專案狀態;日誌改存於該目錄的 logs/
CLAUDE_CONFIG_DIRClaude Code 的設定目錄,Bridge 的 /review-bridge 入口會安裝於此目錄下
XDG_STATE_HOMELinux 日誌目錄的根路徑,預設為 ~/.local/state