只按 accept 的隱憂
用 Codex、Claude Code、Cursor 這類 coding agent 寫程式,最容易養成的習慣是:看起來能跑,就按下 accept。Sphinx 的標語把問題講得很直白:「外包你的思考,但不要外包你的理解。」
作者在 Show HN 的說明是:Sphinx 是開源工具,接進你現有的 coding agent 工作流程,每次推送到正式環境時跳出問答,確認你真的懂自己推出去的程式碼在做什麼。

推送、出題、作答三步
官網把流程分成三步:
- 你推送:或由 agent 推送。Git 會在你設定保護的分支上暫停。
- Sphinx 出題:一個「沒看過你聊天紀錄」的審查者讀取 diff,問你這次修改在出錯時會怎麼運作。
- 你作答:答錯會告訴你為什麼,再換一個情境;答對才繼續推送。
官網的示範題目是 Stripe webhook:處理器先存事件 ID 再呼叫 charge(),若 Stripe 逾時重送,會發生什麼事?第一個回答「會扣款兩次」被判不對,接著追問 charge() 失敗時的情況,答出「之後重試會跳過扣款」才算過關。官網註明這是示範,實際題目來自你的 diff。

安裝與安全設計
依官網說明:
| 項目 | 內容 |
|---|---|
| 環境 | Node 22.19 以上;macOS、Linux 或 WSL |
| 安裝 | npm install -g sphinx-understand,再執行 sphinx install |
| 審查模型 | 可用現有 coding agent、OpenRouter 或任何 OpenAI 相容端點 |
| 支援工具 | Codex、Claude Code、Cursor、OpenCode、Pi,或純 Git |
| 隱私 | 你的回答不會傳給 coding agent;不會開啟 .env 與金鑰檔 |
| 趕時間 | sphinx yolo 可直接放行,但每次跳過都會留下紀錄 |
官網也強調它設計成用很少的 token 執行。
實用建議(本文整理):先只在 main 或正式部署分支開啟,避免每次小推送都被打斷;團隊導入時,可以定期看 sphinx yolo 的跳過紀錄,了解哪些改動最常被略過。

