本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
コーディングエージェントSphinx

AIが書いたコードをpushする前に本人へ質問、Gitの関所「Sphinx」

コーディングエージェントが書いたコードを、人がどこまで分かったうえで出しているか。その確かめをGitに組み込む無料の道具「Sphinx」が公開された。保護したブランチにpushすると、Gitがいったん止まり、別のAIモデルが変更を読んで「失敗した時に何が起きるか」を問う。答えが合えばpushが進む。ただし入れると、その機械のすべてのリポジトリで、mainへのpushが止まるようになる。作ったのはGitHubの個人のアカウントで、作者は「練習であって、安全のための関門ではない」と書いている。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

Sphinxの画面。git pushの途中で変更について問う画面が開く
画像: Sphinx

SphinxはMITライセンスの道具で、GitHubのリポジトリは10月15日(日本時間)に作られ、npmへの初登録は10月17日だった。npmの版は10月19日時点で0.1.8と、まだ出たばかりだ。GitHubのparthh01というアカウントが作り、作者の素性は分かっていない。Sphinxの公式ページには、孫子の言葉として「考えることは人に任せられても、理解は任せられない」という一文を掲げている。

pushの前に何が起きるか

公式ページとREADMEによると、仕組みはGitのフックだ。mainやmasterなど保護したブランチにpushすると、Gitが止まる。macOSではブラウザーに質問のページが開き、LinuxやWSLではURLが表示される。人が打ったpushでも、エージェントが打ったpushでも同じように止まる。

質問を作るのは、コードを書いた会話を見ていない別のAIモデルだ。このモデルは読み取り専用のGitの道具でコミットされた変更だけを読み、「この変更は、うまくいかない時にどう振る舞うか」を問う。ファイル名や関数名を覚えているかではなく、動き方、失敗の仕方、崩れてはいけない条件を聞くという。公式ページの例では、決済の重複を防ぐ処理について「Stripeが同じ通知を送り直したら、次はどうなるか」と聞いている。

答えを間違えると、理由の説明と、同じ考え方を試す別の場面が出る。正しく答えるとpushがそのまま進む。コードやエージェントに見せてもらいながら答えてよい、持ち込み可の試験だ。小さな変更なら質問は最大1問、大きな変更でも標準の深さなら最大3問。いったん合格すれば、同じ変更を24時間は聞き直さない。

pushは、合格するか、中断するか、今回だけ飛ばすまで、最長25分待つ。エージェントのシェルはそれより早く時間切れになることがあり、その場合はもう一度pushし直す。GitHubのコマンド「gh」にログインしていれば、合格したコミットに印が付き、プルリクエストに要約を書き込むこともできる。こちらはpushを止めない。

入れ方と、かかる費用

必要なのはNode.js 22.19以上とGitで、macOS、Linux、WSLで動く。Windowsそのものはまだ対応していない。「npm install -g sphinx-understand」で入れ、「sphinx install」でGitと手元のエージェントにつなぐ。Claude Code、Codex、Cursor、OpenCodeなどのエージェントに対応する。

注意したいのは、入れるとその機械のすべてのリポジトリに効く点だ。Git全体の設定を書き換えるので、既存のフックは先に動くものの、入れた直後からどのリポジトリでもmainへのpushが止まる。リポジトリごとの調整は「sphinx init」でする。このコマンドは、どのブランチで止めるかを決める設定、決して読ませないファイルの一覧、プロジェクトの短い説明の3つのファイルを作る。読ませたくないファイルがあれば、最初の確かめの前に一覧へ足しておく。説明のファイルは毎回の質問役に渡るので、秘密は書かない。

質問役のモデルは自分で用意する。Claude CodeやCodexにログインしていれば、そのサブスクの枠を使う。OpenRouterのAPIの鍵を使えば、別に料金がかかる。1回の確かめでモデルを呼ぶのは5〜8回ほどで、答えるたびに1回ずつ増えるという。Sphinx自体に有料の契約はない。

どこまで信じてよいか

作者はREADMEで、これは練習であって安全のための関門ではないと書いている。手元に入れる人なら、エージェントも含めて、フックを飛ばすこともできる。合格しても、その人が自力で分かっていた証明にはならず、問う側のAIが間違えることもある。

変更したコードと関連ファイル、答えの中身は、質問役のモデルの提供元に送られる。.envや秘密鍵などの決まったファイルは最初から外すが、普通のソースに貼り付けた秘密までは見分けられない。急ぐ時は「sphinx yolo」で確かめを止められ、止めた記録は理由とともに残る。答えはコーディングエージェントには渡らず、エージェントが見るのは進み具合だけだという。

編集部の見方

エージェントに書かせる量が増えるほど、レビューは「通ったか」だけになりやすい。Sphinxは、人が分かっているかをpushの手前で一度だけ問う、軽い仕掛けだ。個人のアカウントが出したばかりの道具で、使う人の評判はまだない。まず個人のリポジトリで試し、質問が的外れでないか、待ち時間に耐えられるかを見てから、チームに勧めるか決めたい。

出典

に確認(日本時間)

  1. GitHubのリポジトリ(github.com)
  2. npmの版(npmjs.com)
  3. Sphinxの公式ページ(sphinx-six-theta.vercel.app)

この記事をシェア

この記事は役に立ちましたか