發行紀錄
格式參考 Keep a Changelog,版本號依 Semantic Versioning。英文原文在 repo 的 CHANGELOG.md。
0.3.0-rc.3(2026-11-10)
第一個發行版。
新增
- 用套件管理器執行。 用
npx review-bridge init設定專案,不必全域安裝;用npm i -g review-bridge全域安裝也可以。Bridge 印出的指令照啟動它的套件管理器寫:npm 或看不出是哪一個時是npx review-bridge …,其他是pnpm dlx review-bridge …、yarn dlx review-bridge …、bun x review-bridge …。指令不帶版本號,用的是發行的latest;有全域安裝時npx會用那一份。這套寫法用在設定說明、status輸出、建議的下一步指令、代理入口與 VS Code 工作;只有--help用裸的程式名稱。需要 Node.js 22.8 以上。 - 互動式設定。 照 create-vite 的做法,
init依序問 writer、reviewer、專案類型,以及要不要加 VS Code 工作,每題都有預設值;問完就設定目前的資料夾,每一步印一行,最後印出接下來的指令。沒有額外的確認,也不先顯示計畫。用參數直接給答案;沒有互動式終端機時採用預設值。專案類型決定測試指令,可以是none。 - 專案裡只留一個資料夾。 除了你選擇加入的 VS Code 工作,
init只寫.review-bridge/:設定、規則與工單範本。資料夾自帶只有*的.gitignore,之後才git init也不會進 Git。設定完git status是乾淨的,不改專案的.claude/、AGENTS.md、CLAUDE.md。 - 使用者層級的代理入口。
init為 Claude Code 安裝~/.claude/commands/review-bridge.md(遵守CLAUDE_CONFIG_DIR),為 Codex 安裝~/.agents/skills/review-bridge/SKILL.md。/review-bridge與$review-bridge教代理四個動作:start、stop、resume、clean,並要求人同意。那些位置已有使用者自己的檔案時不碰。最後一個已設定的專案解除安裝時,移除 Bridge 的入口,除非你改過它們。 - 用來找程式碼的專案 graph。
init把 JavaScript、TypeScript、.vue的 script 區塊、Python、Go、Rust、Java、Kotlin、C++ 與 C# 的定義、名稱引用與 import 目標記進你的資料庫。進度輸出最後列出檔案、定義、引用與 import 的數量,以及沒能完整解析的檔。不在專案寫 graph 檔。JavaScript 與 TypeScript 以外的 parser 第一次用到時透過 npm 裝進 Bridge 的資料目錄。npm 與 pnpm workspace 裡,graph 涵蓋這個套件和它依賴的 workspace 套件。start只更新 Git 回報有改動的檔;npx review-bridge graph重建整份 graph。writer 與 reviewer 可以透過 Bridge 的唯讀 MCP 伺服器review-bridge-graph查詢。 - 不呼叫模型的合約。 Bridge 把工單當表單檢查,把每個標記區塊原樣抄進合約;結果檔的 token 表把這一步記為 0。驗收清單用 markdown-it 切,和 VitePress 相同。工單必須有要做的事(
requested_work或run_plan)與驗收清單。缺必填內容、不是清單項目的行(例如「一、」「(1)」)、還沒回答的待決問題,都會讓start在卡片前停下。Bridge 列出問題,並把缺的必填區塊標記與標題補回檔案最後面,不改既有內容。#標題可以不寫;沒有時標題是untitled。 - 各角色的模型與 effort。 工單 frontmatter 接受
writer:與reviewer:區塊,含model與effort,蓋過 policy 的 priority 表。頂層effort套用到 writer;兩種寫法同時出現會被拒絕。兩個角色預設都是model: null,用 CLI 自己的預設。與該角色 CLI 不符的模型名稱在卡片前就被拒絕。 - 一張卡、一次同意就開工。
npx review-bridge start <file>規劃工作並顯示指明合約的卡片。在終端機會問「開始這份工作嗎?[y/N]」,每一步印一行。沒有互動式終端機時,start與resume顯示卡片後停在「需要授權」;你同意後,代理加上--yes重跑。授權紀錄寫入authorized_via(terminal或agent)與封存的工單原文 SHA-256。--yes用的是之前顯示過那張卡的計畫;沒有顯示過卡片、工單或選項改過、卡片過了有效期限、卡片已經開過工時,一律拒絕,不授權、不開工,每次拒絕都附上下一步該跑的指令。 - 工單身分與版本歷史。 第一次同意時,Bridge 把
id寫進工單的 frontmatter,並在資料庫記下各版本。改名或搬移檔案仍是同一張;改內容是新版本。帶著別的檔 ID 的複製會拿到自己的 ID;同一個檔的兩個硬連結仍是一張工單。不提供檔案編號的檔案系統會被拒絕。檔名可以用任何文字的字母、數字與組合記號,加上.、_、-與單一空白,最長 80 個字元、180 位元組;比對與存檔前正規化成 NFC。卡片寫出這次授權的是哪一張工單;--update <work_order_id>與--as-new讓你指定別的判斷。 - 依序執行多張工單。
start <資料夾>把.review-bridge/work-packages/底下的子資料夾當成一條線:依檔名順序執行,可用01-、02_一類的序號,沒有序號的排最後。Bridge 先檢查整個資料夾,再顯示一張列出各檔、不列內容的卡片。一次同意授權整條,每張工單各有自己的 run、授權紀錄與合約。一張沒做成不會擋下一張;provider 登出、額度用完、stop或 Ctrl+C 會停下整條。再次開工時,已記為交付的工單會略過。status顯示進度,最後一張總表整理結果,檔案放在results/<資料夾>/<工單>/。 - 停止、恢復與清理。
stop <run_id>暫停一次執行並保留紀錄。resume <run_id>以相同的停點與範圍開新的執行。clean [<run_id>]清理已結束的紀錄;clean --all清掉這個專案在資料庫裡的紀錄。 - 兩種 provider 都能擔任兩種角色。 writer 與 reviewer 支援
claude與codex的四種配對,各自獨立工作階段。角色來自bridge.json,或start、resume、work-plan的單次--writer、--reviewer。卡片顯示選定的角色,該次執行中不會變。每筆執行紀錄與結果檔開頭都記下兩個角色的 provider、模型與 effort。 - reviewer 唯讀檢查。 模型開始做工之前,Bridge 先確認 reviewer 的限制。Codex:它的作業系統沙箱必須擋下一次真的寫入;檢查也認得中文版 Windows 上 PowerShell 的拒絕訊息。Claude Code:要求一個 plan mode 工作階段寫一個哨兵檔,這個工作階段的工具只有
Read、Grep、Glob,以及 Bridge 的唯讀 graph 伺服器與 policy 放行的伺服器(和每次審查相同);只有檔案不存在、CLI 正常結束、init事件確認預期的工作階段設定時才算通過。 - 隔離個人連接器。 每次 Claude Code 呼叫都用
--strict-mcp-config;只有 writer 拿到專案的.mcp.json。每次 Codex 呼叫都用--disable apps --disable plugins,並停用codex mcp list列出的每個伺服器;讀不到清單就不開工。policy 的reviewer.mcp_allow(預設為空)把指名的伺服器交給 reviewer,不另加限制。卡片、執行紀錄與結果檔列出提供了哪些伺服器。 - 由 Bridge 執行驗證。 每次 writer 呼叫後,Bridge 自己跑專案的測試指令。沒有測試指令的專案照樣能跑,卡片、紀錄與結果檔寫明測試沒有設定。專案有測試指令時,writer 回報
blocked但沒提問,仍會進到 Bridge 的測試與審查;沒有測試指令時,這種情況會停下交回給你。 - writer 的 token 預算。
tokens與tokens_per_call只算 writer,不含 cache read(結果檔另外列出)。reviewer 的用量會記錄,但不計入 token 預算。 - 附依據的結果檔。 每次執行在
results/<工單>/產生一份結果檔,說明決定了什麼、為什麼。需要你決定的結果附上 writer 自己的說法。「改了哪些檔」分開列出 Git 的改動、writer 未經核對的回報,以及執行前就存在的改動。 - PostgreSQL 裡的稽核軌跡。 每位使用者一份內嵌的 PostgreSQL 18,跨專案保存工單、版本、卡片、授權、合約、執行、依序編號的事件、reviewer 判定、Bridge 的驗收決定與交付;第一次使用時建立。每次狀態改變和它的事件在同一個交易提交。
clean <run_id>一起刪掉該次執行與附屬紀錄,但保留已用掉的授權,讓卡片不能重用。.review-bridge/底下的檔案與 log 都是副本。 - 資料庫的啟停。 關掉終端機或 VS Code 後資料庫仍在跑。
up先啟動資料庫、再啟動本機頁面;down依相反順序停止,照docker compose down停下up所啟動的東西的慣例。任何專案有執行中的工作時,down列出那些 run 並拒絕。status報告資料庫狀態,不會啟動資料庫。資料目錄不見、讀不到或內容不對時,印出路徑並以結束碼 4 結束,和pg_ctl status相同。啟動失敗會說明pg_ctl等了多久與伺服器最新的訊息。啟動時不清除已死伺服器留下的檔;它的程序仍在跑時,Bridge 會說明並請你重新開機。 - 遷移前備份。 新版要套用資料庫遷移前,第一個指令會先備份資料庫並印出備份位置;有執行中的工作時拒絕。資料庫裡有已安裝版本不認得的遷移時,Bridge 列出它們、拒絕開啟,不做任何改動。沒有執行中的工作時,可以用
backup手動備份。 - 資料庫掉線就停下。 執行途中資料庫無法使用時,該次執行以
database_unavailable停下,之後不再呼叫模型。這段期間收集的紀錄,由下一個打開資料庫的指令寫回。 - 可查詢的執行狀態。
status、work-status與doctor從資料庫讀出頁面、執行狀態、停止原因、來源檔與開始時間。結果每頁十筆;--after <run_id>取下一頁,--json取機器可讀的輸出。status另印出主機、連接埠、資料庫、使用者與密碼檔位置,供 VS Code 的 PostgreSQL 擴充套件或 SQLTools 連線。 - 在地化的 CLI 輸出。
init、status、up、down、ps與授權卡片使用專案的語言(英文或繁體中文),照 create-vue 的做法從系統偵測。 - VS Code 工作。 在 Quick Open 輸入
task review-bridge,就能執行start、stop、resume、clean、status、logs。可在init時選擇加入專案的.vscode/tasks.json、之後用npx review-bridge vscode加入,或用npx review-bridge vscode --user加到使用者層級;預設不加入專案。其他工作、註解與排版都保留;uninstall只移除 Bridge 的項目。 - Windows 編碼診斷。 PowerShell 沒有輸出 UTF-8(會讓 Codex 的中文輸出變亂碼)時,
doctor會說明,並給出要加進$PROFILE的那一行。 - 自動產生的指令說明。 每個指令的
--help都由指令表產生,含選項型別、預設值與說明。--help --all另列出給代理與腳本用的指令,例如work-plan、work-start。--version印出版本。
已知限制
- Windows 上同一張卡同時有兩個
--yes時,第二個可能回報檔案錯誤,而不是說卡片已用過。只會有一次執行開始。每張卡請只同意一次。 - Windows 上開啟 Git 的
core.autocrlf時,只差換行字元的改動也會算進工作證明與結果檔。請在start前 commit 或 stash。 - writer 做工途中不會停下來問問題。請在
start前把工單的歧義解決;open_questions裡還沒回答的行會擋下開工。 - writer 可能執行或修改專案的測試,Bridge 不阻擋也不標示。結果檔裡的測試證據來自 Bridge 在每次 writer 呼叫後自己跑的測試。請檢查結果檔列出的改動檔案。
- 用
npx執行時會向 npm registry 查最新版,需要網路。用npm i -g review-bridge全域安裝可以省掉這次查詢;之後npx review-bridge會用已安裝的那一份。 - 在終端機單張
start時按 Ctrl+C,指令會結束,但執行可能還在跑。用npx review-bridge status找到它,再npx review-bridge stop <run_id>。 - 這一版量過的執行裡,writer 與 reviewer 都沒有主動呼叫專案 graph 的工具。
- 部分給代理與腳本用的指令(包括
work-plan、work-start)的訊息還沒在地化。 - 卡片的有效期限以 UTC 顯示。
- 最後一行輸出不含 run ID。請用
npx review-bridge status查詢。 - 資料夾的工作在專案資料夾原地執行。同時開兩個資料夾會共用同一個專案工作區;請等一個跑完再開下一個。
npx review-bridge --help沒有列出vscode。請用npx review-bridge vscode --help看它的選項。- 工作證明只在 Bridge 的取樣點比較專案。在兩次檢查之間改了又改回的檔不會顯示為有改動。
- 原生執行在 Windows x64 驗證過。Apple Silicon macOS 可以選用但未驗證。Linux 擋下原生執行。
- 升級到不同主版本的 PostgreSQL 需要 dump 與 restore,這一版不處理。