0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codexの codex review --uncommitted でコミット前の変更をレビューする — 最初の1コマンド

0
Posted at

Codex CLIを入れてみたけれど、「AIエージェントに最初は何を頼めばええんやろ」と迷っていませんか。

最初の1回は、コードを書かせなくても大丈夫です。自分が変更したコードを、コミット前に読んでもらう。これだけでも、AIエージェントがファイルと変更履歴を見て仕事をする感覚をつかめます。

この記事では、Codexの codex review --uncommitted だけを使います。ゴールは、練習用の小さなリポジトリを作り、未コミットの変更に対してレビューを1回起動することです。

更新日: 2026年8月15日

この記事でできること

最後まで進むと、ターミナルで次の1行を実行できる状態になります。

codex review --uncommitted

codex review は、Codexにコードレビューを依頼するコマンドです。--uncommitted を付けると、まだコミットしていない変更がレビュー対象になります。

ここでいうコードレビューは、変更したコードにバグの可能性や不足しているテストがないかを、別の視点で確かめる作業です。コミットは、Gitにその時点の変更を履歴として記録すること。つまり今回は、履歴に残す前の確認をCodexに頼みます。

公式ドキュメントでは、--uncommitted の対象は次の3つです。

  • staged: 次のコミットに入れるため選んだ変更
  • unstaged: まだ選んでいない変更
  • untracked: Gitがまだ追跡していない新しいファイル

この3語を今すぐ覚える必要はありません。「練習フォルダの中で、最後のコミットより後に変わったものを見る」くらいで大丈夫です。

先に知っておきたい5つの言葉

手順に入る前に、この記事で使う言葉を短くそろえておきます。

  • AIエージェント: 質問に答えるだけでなく、目的に合わせてファイルやツールを使いながら作業するAI
  • CLI: ターミナルに文字を打って操作する方式
  • ターミナル: コマンドを文字で入力するアプリ
  • Git: ファイルの変更履歴を管理する仕組み
  • リポジトリ: Gitで変更履歴を管理するプロジェクト用フォルダ

Codex CLIは、ターミナルから使うAIエージェントです。この記事では本番のプロジェクトを触りません。練習用フォルダだけで完結させます。

前提を確認する

この記事はmacOSまたはLinuxのターミナルを前提にしています。WindowsではWSL(Windows上でLinuxのコマンドを使える仕組み)を使うと、同じ流れを試しやすいです。Windows手順は筆者環境では動作未確認です。

まず、Codex CLIとGitが使えるか確認します。

codex --version
git --version

codex-cli ...git version ... が表示されれば次へ進めます。

Codex CLIをまだ入れていない場合は、公式のインストール方法を確認してください。npmを使う場合の公式コマンドは次のとおりです。

npm install -g @openai/codex

インストール後、次のコマンドでサインイン状態を確認できます。

codex login status

サインインしていなければ、次を実行して画面の案内に従います。

codex login

認証方法や利用できる範囲はアカウント環境で異なるため、画面に表示された案内を確認してください。

10分で練習用の変更を作る

ここからはコピペで進められます。今回は「数量が0の商品は受け付けない」という小さな仕様を用意します。

1. 練習用リポジトリを作る

mkdir -p ~/codex-review-practice
cd ~/codex-review-practice
git init

mkdir -p はフォルダを作るコマンド、cd は作業するフォルダを移動するコマンド、git init はそのフォルダでGitの履歴管理を始めるコマンドです。

2. 正常なコードを作る

次のコードを price.js として保存します。

export function totalPrice(unitPrice, quantity) {
  if (!Number.isFinite(unitPrice) || !Number.isInteger(quantity)) {
    throw new TypeError("unitPrice must be finite and quantity must be an integer");
  }
  if (unitPrice < 0 || quantity <= 0) {
    throw new RangeError("unitPrice must be non-negative and quantity must be positive");
  }
  return unitPrice * quantity;
}

続いて、次を package.json として保存します。

{
  "type": "module",
  "scripts": {
    "test": "node --test"
  }
}

テストを price.test.js として保存します。

import test from "node:test";
import assert from "node:assert/strict";
import { totalPrice } from "./price.js";

test("multiplies a positive price and quantity", () => {
  assert.equal(totalPrice(120, 3), 360);
});

test("rejects zero quantity", () => {
  assert.throws(() => totalPrice(120, 0), RangeError);
});

ここではNode.js標準のテスト機能を使うため、追加パッケージのインストールは不要です。

3. 正常な状態を基準点としてコミットする

git add price.js price.test.js package.json
git commit -m "Add price calculation"

初回コミットで名前とメールアドレスを求められた場合は、Gitの案内に従って設定してください。このコミットが「変更前はここまで正常だった」という基準点になります。

テストも実行しておきます。

npm test

2件とも ok になれば正常です。

4. 意図的にバグを1つ入れる

price.js の次の行を変更します。

変更前:

if (unitPrice < 0 || quantity <= 0) {

変更後:

if (unitPrice < 0 || quantity < 0) {

<= 0< 0 に変わったため、数量0を受け付けるようになってしまいました。見た目は1文字の差ですが、仕様は変わっています。

テストをもう一度実行します。

npm test

今度は rejects zero quantity が失敗します。これは練習として正しい状態です。バグをテストで見える形にできています。

5. Codexに未コミット変更をレビューしてもらう

同じフォルダで、次の1行を実行します。

codex review --uncommitted

成功するとCodexがGitの差分を読み、レビュー結果をターミナルに返します。出力の文章は、利用するモデルやCodexのバージョン、周辺のコードによって変わる可能性があります。特定の文面がそのまま出ることを成功条件にはしないでください。

今回のサンプルでは、次の観点が指摘されるかを確認します。

  • price.js の数量チェックが0を拒否しなくなったこと
  • 既存の rejects zero quantity テストが失敗すること
  • 条件を quantity <= 0 に戻す必要があること

ファイル名や該当箇所、問題になる理由が示されていれば、AIエージェントに未コミット差分を読ませる最初の1回は成功です。

筆者環境で確認できた範囲

2026年8月15日に、次を確認しました。

  • codex-cli 0.147.0codex review --help を実行し、--uncommitted が存在することを確認
  • Node.js v22.23.1でサンプルテストを実行し、条件変更後に1件失敗することを確認
  • 公式ドキュメントとCLIのヘルプで、codex review --uncommitted が未コミット変更を対象にすることを確認

一方、筆者環境の codex review --uncommitted は認証期限切れによる401エラーで中断しました。そのため、この記事に架空のレビュー出力は載せていません。レビュー結果の取得部分は筆者環境では動作未確認です。

正直、ここを曖昧にして成功したように書く方が簡単です。でもAIエージェントの記事では、「公式に確認できたこと」「手元で動いたこと」「まだ動いていないこと」を分ける方が、読者にとって再現しやすいかなと思います。

指摘を受けた後に人間がすること

Codexの指摘は、そのまま採用する命令ではありません。まず該当コードとテストを見て、仕様に照らして正しいか判断します。

今回なら、条件を元へ戻します。

if (unitPrice < 0 || quantity <= 0) {

そしてテストを再実行します。

npm test

2件とも通ることを確認してからコミットします。

git add price.js
git commit -m "Reject zero quantity"

AIは差分を読むのが得意です。でも、「数量0を本当に禁止すべきか」という業務仕様を決めるのは人間です。AIに見つけてもらい、人間が意味を確かめ、テストで固定する。この分担が扱いやすいと思います。

つまずきポイント

1. not a git repository と表示される

Gitリポジトリの外で実行している可能性があります。

pwd
git status

pwd で現在のフォルダを確認し、~/codex-review-practice に移動してから再実行します。

cd ~/codex-review-practice
codex review --uncommitted

2. レビューする変更がない

意図的なバグを入れる前、または変更をすでにコミットした後かもしれません。

git status --short
git diff

git status --shortM price.js が出て、git diff に条件の変更が表示されることを確認します。

3. 401やログイン関連のエラーが出る

認証が切れている可能性があります。

codex login status

サインインが必要なら、次を実行して案内に従います。

codex login

ログイン、2段階認証、組織の利用制限は環境ごとに異なります。自分で判断できない組織アカウントでは、管理者の方針を確認してください。

4. 記事と同じ文章で指摘されない

レビュー結果は固定文ではありません。大切なのは言い回しではなく、数量0を許す挙動変更と失敗テストを問題として捉えているかです。

5. 指摘が0件だった

差分が読まれていても、AIが問題を見落とすことはあります。まず npm test の失敗を確認してください。テストが失敗しているのにレビュー指摘がない場合、それ自体が「AIレビューだけに任せない方がよい」という大事な結果です。

6. 会社のコードを送ってよいか分からない

練習ではこの記事のダミーコードを使ってください。実務コードでは、所属先の生成AI利用ルール、機密情報の扱い、利用できるアカウントを先に確認します。許可が不明なコードを入力しないことが優先です。

この機能が向かない条件

codex review --uncommitted は便利ですが、万能ではありません。

たとえば、仕様書にしか書かれていない業務ルール、外部サービスの実際の挙動、実行時だけ起きる問題は、差分だけを読んでも分からないことがあります。指摘が0件でも「正しい」とは限りません。

数行の単純な変更で、テストが十分にそろっているなら、人間が差分とテスト結果を見るだけで早い場合もあります。無料・手作業で十分な人もいます。見分け方は、差分の意図を30秒で説明でき、テストも全部通っているかです。説明できない変更や影響範囲が広い変更で、もう一組の目として使うと価値が出やすいです。

よくある質問

codex review --uncommitted はファイルを書き換えますか

Codex CLIの公式ページでは、専用レビューは作業ツリーを変更せず指摘を返すと説明されています。ただし、実行前に git status で現在の差分を把握しておくと、より安心です。

コミット後でも使えますか

この記事は未コミット変更だけを対象にしています。別の対象をレビューする機能も公式リファレンスにありますが、1記事1機能に絞るためここでは扱いません。

テストがなくても使えますか

コマンドは実行できます。ただ、期待する挙動がコードやテストに表れていないと、Codexも判断しにくくなります。最初の練習では、今回のように1件だけでもテストがある題材がおすすめです。

毎回使うべきですか

必須ではありません。影響範囲が広い変更、条件分岐を変えた変更、テストの不足が気になる変更から使うと負担が小さくなります。

まとめ

今日覚えるコマンドは1つだけです。

codex review --uncommitted

このコマンドで、コミット前の変更をCodexにレビューしてもらえます。

最初の1回は本番の大きなリポジトリでなくて大丈夫です。この記事の練習用コードで、差分を作る、レビューを起動する、指摘を確かめる。ここまでできたら、AIエージェントを「質問に答えるチャット」から「手元の変更を確かめる作業相手」へ一歩進められています。

次の1アクションは、普段の小さな未コミット差分で codex review --uncommitted を1回だけ実行し、指摘を採用するか自分で判断することです。

参考リンク

生成AI活用エンジニア&3児のパパ。AI×開発の実践知を毎日発信しています → X

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?