AIエージェントが書いたコードを、本当に理解してからpushしているか。この問いに答えるオープンソースのGitフック「Sphinx」が、Hacker Newsで200ポイントを超える注目を集めました。保護したブランチへのpushを一時停止し、別のAIが差分から作ったクイズに正解するまで通しません。Claude CodeやCodex、Cursorなどと組み合わせて使え、ライセンスはMITです。
背景と文脈
コーディングエージェント(指示を受けて自律的にコードを書き、実行まで進めるAI)の普及で、開発の速度は大きく上がりました。その一方で、動くけれど中身を説明できないコードが増えています。差分をざっと眺めて承認し、障害が起きてから初めて挙動を知る、という場面に覚えがある人も多いでしょう。
レビューの負担も増えました。人間が1日に書ける量を超える差分が、エージェントから次々に届きます。テストやリンターは「正しく動くか」を確かめますが、「書いた本人が理解しているか」は確かめません。
Sphinxは、この隙間を埋める道具として作られました。コードの監査ではなく、開発者の理解度を確かめる仕組みです。作者はREADMEで、セキュリティの関門ではなく「練習」だと位置づけています。
技術/ビジネス面

導入はnpm install -g sphinx-understandとsphinx installの2手順です。インストール直後から、どのリポジトリでもmainとmasterへのpushが対象になります。既存のフックは先に実行されるため、今の設定を壊しません。
pushすると、別の「審査役」モデルが差分を読んで質問を作ります。審査役はエージェントとの会話を一切見ず、読み取り専用のGit操作でコードだけを調べます。問われるのはファイル名や関数名ではなく、挙動や失敗時の動き、守るべき前提です。公式サイトの例では、Webhookの処理でイベントIDを保存してから課金する実装について「再送されたら何が起きるか」を尋ねています。
質問は差分の大きさに応じて1〜3問です。コードを見ながら答えてよく、間違えると解説と別の場面設定の問題が出ます。質問がおかしいと思えば異議も出せます。合格は24時間有効で、Gitは最大25分待ちます。
審査役のモデルは選べます。サインイン済みのClaude CodeやCodexのCLI、OpenRouterのAPIキー、OpenAI互換のエンドポイントのいずれかです。1回のチェックでの呼び出しは5〜8回ほどで、.envなどの秘密情報ファイルは既定で読まれません。急ぐときはsphinx yoloで素通りできますが、スキップは理由とともに記録されます。
これからどうなるか
現在のバージョンは0.1で、制約もはっきりしています。対象はローカルのcommitとpushだけで、Web上のマージやCIは対象外です。Node.js 22.19以上が必要で、Windowsはネイティブ対応しておらずWSLが前提になります。審査役もLLMなので間違えることがあり、ローカル権限があれば回避もできます。
注目したいのは発想の転換です。これまでのAIレビューツールは「コードの誤りを探す」ものでした。Sphinxは「人間の理解の抜けを探す」方向に向いています。
開発者にとっては、エージェントに任せた変更の要点を自分の言葉で説明できるかを確かめる習慣づくりになります。チームで導入する前に、まず個人のリポジトリでmainへのpushだけに適用してみると、負担と効果を測りやすいでしょう。将来CIやマージ時のチェックに広がれば、レビュー工程の一部を置き換える可能性もあります。
まとめ
Sphinxは、AIが書いたコードの理解度をpush前のクイズで確かめるGitフックです。会話を見ない審査役が差分から質問を作り、正解するまでpushを止めます。まだ初期版で回避も可能ですが、「理解してから出す」を仕組みにする試みとして参考になります。
参考リンク
アイキャッチ画像: Photo by Jantine Doornbos on Unsplash

