OpenQodex:Claude Code と Codex 向け、プッシュ前のオープンソース AI コードレビュー

Published · AI Daily — AI-assisted deep research, methodology & disclosure

OpenQodex は Claude Code と Codex 向けの、プッシュ前に動くオープンソースの AI コードレビューツールだ。一つのコマンドで未プッシュと未コミットの変更を特定し、合うスキャナを実行し、変更行の検出だけを残す。別プロセスのレビュアーが確認し、スクリプトが検証して四形式のレポートを出す。追加の鍵やサーバは不要である。

AIコーディングエージェントはコードを書く速度を大きく引き上げたが、レビューの速度までは引き上げていない。差分は膨らみ、人間の注意力は擦り減り、本当に問題のある数行がもっともらしい変更の山に埋もれてしまう。OpenQodex はこの問題に素朴な方法で応える。レビューをプッシュの前に置き、変更がローカルマシンを離れる前の最後の関門にするのである。対象は Claude Code と Codex で、ターミナルから直接実行することもできる。中核は openqodex review という一つのコマンドだ。まず今回の変更範囲を確定する。まだプッシュしていないコミットと、コミットされていないすべての変更である。次に変更ファイルに合うスキャナを実行し、自分が触れた行に該当する検出結果だけを残す。古いコードに積もった過去の負債に気を取られることはない。

スキャナの出力は原材料にすぎない。続いて OpenQodex は独自のレビュアーを起動する。凍結された変更のコピーを読む、別個の Claude Code または Codex のプロセスである。このレビュアーはスキャナの検出結果を一件ずつ確認し、変更されたすべての行を渡される。その回答は鵜呑みにされず、OpenQodex がスクリプトで検証したうえで一つのレポートにまとめる。この設計の要点は役割分担にある。ルールベースのスキャナはパターンを安定して再現可能に見つけられるが、誤検知が多く、文脈を理解しない。言語モデルは意図と文脈を理解できるが、見落としたり、事実を作り出したりすることがある。モデルにスキャナの各検出を裁定させ、さらに決定的なスクリプトでモデルの結論を検査する。三層が互いを牽制するので、どれか一つに頼るよりも信頼できる。 このプロジェクトで最も注意深く読むべきなのは、レビュアーの隔離の度合いである。README によれば、Claude Code がレビュアーの場合、読み取り、検索、一覧の各ツールだけを持ち、変更のコピーの内側で動作し、利用者の設定、フック、プラグイン、メモリ、指示ファイルは一切読み込まれない。イベントストリームにはすべての読み取りが現れるので、レポートには読んだファイルが列挙される。Codex は少し事情が異なる。読み取り専用のサンドボックスで起動し、読み取りは変更のコピーとシステムフォルダに限られ、コマンドにネットワークはなく、利用者の設定、プラグイン、フック、リポジトリの指示ファイルも読み込まれない。ただし文書は二つの限界を率直に認めている。グローバルの ~/.codex/AGENTS.md は今も読み込まれること、そしてイベントストリームがすべてのコマンドを示すわけではないため、レポートには読み取りが記録されなかったと明記されることである。絶対の安全を謳うよりも、こうした境界を文書に書くほうが信頼でき、各利用者が自分の脅威モデルに照らして判断する助けにもなる。

ここでは「完全」に明確な定義がある。レビューが完了したと言えるのは三つの条件が揃ったときだけだ。すべての段階が実行されたこと。スキャナの検出がすべて提起されたか、理由付きで破棄されたこと。変更されたすべての行がレビュアーの目に触れたこと。後者はブリーフの中でも、OpenQodex からの後続メッセージでも、Claude Code の場合は読んだファイルの中でもよい。一つでも欠ければ、ツールは体裁の良い結論を出さず「Review incomplete」と表示する。カバレッジがスローガンから検査可能な条件に変わるわけだ。曖昧な承認に慣れたチームにとって、参考にする価値のある作法である。 出力も抑制が効いている。実行が終わると、端末には短いレシートが表示される。結論、レビュアーの要約、検出ごとの一行(番号、重大度、カテゴリ、タイトル、ファイルと行)、そして report.html と report.md の絶対パスである。完全なレポートは HTML、Markdown、JSON、SARIF の四形式でディスクにも書き出され、SARIF は既存のセキュリティツールとの連携に役立つ。report.html はディスク上の単一ファイルで、各変更ファイルを差分として表示し、各検出をその行の下に置き、続いてカバレッジ、スキャナ、影響範囲を示す。README によれば、スクリプトは実行せず、外部から何も読み込まず、すべての文字列をエスケープし、スキャナが見つけた秘密情報は伏せ字にする。修正するかどうかの判断は人間に残される。付属のスキルはエージェントにレシートを見せさせ、「すべて直すか、どれを直すか」と尋ねさせ、指名された検出だけを直させる。openqodex findings 1,3 で指名した検出の全文を表示できる。

導入の負担は小さい。npx openqodex init は、マシン上の Claude Code、Cursor、Codex CLI、Cline を探し、書き込むファイルをすべて表示して一度だけ確認する。そのあと、見つけたレビュアー、または直すべき点を示す。必要なのは Node 22 以上と git で、macOS と Linux で動作し、Windows では WSL を使う。ログイン済みの Claude Code か Codex 以外に、鍵もアカウントもサーバも要らない。既定のローカル変更のほかに、review --all でリポジトリ全体を、review にブランチ名や '#42' のようなプルリクエスト番号を添えて、現在の作業ではない変更をレビューできる。OpenQodex はそれを取得し、一時フォルダにチェックアウトして、ベースから分岐して以降に加えられた内容をレビューする。現行版は 0.12.0 で、ライセンスは Apache-2.0 である。

日々の開発の形も変わる。多くのコードレビューはプルリクエストが開かれたあと、完成した履歴を前にして行われ、作者の文脈はすでに散っている。レビューをプッシュ前に移せば、問題は最も安く見つかる時点に現れる。変更はまだローカルにあり、作者は理由を覚えており、修正が同僚を中断させることもない。スキャナの結果は自分が変えた行に限られるので、レポートの各検出は今の作業に直結し、継承した問題を掘り返す必要がない。エージェントが大量にコードを生成するチームにとって、コミットと共有のあいだに安価で信頼できる関門が加わることになる。人間のレビュアーは、機械がまだ苦手とするアーキテクチャの選択や業務上の判断に注意を温存できる。 業界の視点では、OpenQodex は形をなしつつあるパターンを体現している。レビューはマージ後の工程ではなく、エージェントのワークフローの内側にある、ローカルで監査可能な一段階になるというものだ。冷静な見方も要る。同じ系統のモデルが似たモデルの書いたコードをレビューすれば、盲点を共有しかねない。Codex 経路の監査可能性は Claude Code 経路より明らかに低い。0.12.0 という版番号は、まだ初期段階であることも示す。本稿は公開された README の抜粋に基づいており、そこに含まれない部分については何も主張しない。それでも、証拠、カバレッジ、そして人間が決めるという三つの考えを製品の骨格に組み込んだ点は評価できる。エージェントを日常の開発に接続するすべてのチームが、真剣に受け止めるべき考えである。

Sources

FAQ

openqodex review は具体的にどのコードをレビューするのか。

まだプッシュしていないコミットと、コミットされていないすべての変更をレビューし、変更行にかかるスキャナの検出だけを残す。--all ならリポジトリ全体、ブランチ名や '#42' のような番号なら現在の作業以外の変更を、一時フォルダに取得してレビューする。

レビュアーはローカル環境からどこまで隔離されるのか。

README によれば、Claude Code のレビュアーは読み取り、検索、一覧のツールだけを持ち、変更のコピー内で動作し、設定、フック、プラグイン、メモリ、指示ファイルを読み込まない。Codex は読み取り専用サンドボックスでコマンドにネットワークはないが、グローバルの ~/.codex/AGENTS.md は読み込み、読み取りの全記録も残らない。レポートはその旨を明記する。

どんなときレビューは不完全と判定されるのか。

実行されなかった段階がある、スキャナの検出が提起も理由付き破棄もされていない、あるいはレビュアーの目に触れなかった変更行がある場合、体裁の良い結論ではなく「Review incomplete」と表示される。