アフィリエイト広告を利用しています
アフィリエイト広告を利用しています

Claude CodeとCodexの併用:Codex CLIの実装を塊ごとに別のAIで確かめて受け渡す手順

「Codex CLIの実装を塊ごとに確かめる手順」の題と、要点3つ(塊ごとにlint・試験・起動・画面/直すものは次の塊の冒頭に書く/実装はネットなし、起動は確かめ役)を書いた図解カード AIオーケストレーション開発

Codex に実装を任せると「試験は通りました」と返ってくるのに、まとめて動かすと壊れていて、どこで壊れたか分からない。実装役はネットなしなので、起動も確かめられない。この記事を読むと、実装を Codex(CLI)に小さな塊で頼み、塊ごとに別のAIへ lint・試験・起動・画面を確かめさせて、見つけたものを次の塊の指示書の冒頭で直させる受け渡しの手順を、自分の開発に写して回せるようになります。枠のもとにしたのは、運営者が自分用に作っているYouTubeライブのコメント管理ツール「LiveJazzup」の、最初の開発の記録です。この開発は 2026-11-09 22:37 に始まり、工程42回を経て 2026-11-10 19:11 に完了として閉じました。ただし、人間による実機での確認はまだ済んでいません。この記事で主に使うのは、そのうち実装の7回(2026-11-10 00:36〜02:03)と、その後の直しの回で同じ確かめを続けた分です。

なお、記録で塊ごとの確かめをしたのは、工程を進める役のAIです。コードのレビューを受け持った Claude Code の担当とは別の担当で、どの製品で動かしていたかは確かめていません。Claude Code の担当がレビューに入ったのは、実装が終わった後です。

Claude Code と Codex に役割を分けるかどうか、何から分けるかをまだ決めていないなら、先にこちらを読んでください。この記事は、分けると決めた後の受け渡しの手順を扱います。

実装を塊に分けて確かめるときに写して使う枠

ここに載せるのは、記録の型を一般化した枠です。例は自作で、LiveJazzup の中身ではありません。「社内の備品の貸し出しを記録する、小さな Web アプリ」を AI に作らせる場面を想定しています。この枠を、私たちが別の開発で使って試してはいません。

先に言葉をそろえておきます。塊(chunk)は、実装を1回の依頼で終わる大きさに分けた1つです。lint(リント)は、プログラムの書き方の誤りや決まり違反を自動で探す道具です。単体試験は、部品1つずつをプログラムで自動的に確かめる試験です。試験の入口は、アプリの画面をブラウザで開けるようにした試験用のページで、コンソールはブラウザがエラーや警告を書き出す欄です。

担当・作業場所・書いてよいファイル・完了条件といった、どの指示書にも共通の欄の書き方は、前の記事に載せました。ここでは、塊に分けて受け渡すときに足すものだけを書きます。

役割の分け方:実装役はネットなし、導入と起動は確かめ役

作業 実装役(ネットなし) 確かめ役
部品の導入(npm install) しない 塊の後に流す。入れた部品は作業場所に置いたままにする
lint・単体試験 入れてもらった部品で、ネットなしで流し、出力を報告書に写す 塊の後に流し直す
アプリの起動・画面 起こさない 塊の後に起こし、試験の入口とコンソールを見る
コミット(変更をひとまとまりの記録として確定させること) しない 確かめた後にする
次の塊の指示書 — 見つけたものを冒頭に「最初に直すもの」として書く

記録では、確かめ役は、指示書を書いて結果を受け、次の工程を決める進行役のAIが兼ねていました。実装役と同じAIに確かめさせず、別の担当にしているのが要点です。

塊の切り方の表

実装を始める前に、塊の分け方と、塊ごとに「終わったときにどう通すか」を1つの表にしておきます。

## 実装の分け方(備品貸し出しアプリ)

| 塊 | その1回で作るもの | 終わったときの通し方 |
|---|---|---|
| 1. 土台 | 設定ファイル・lint の設定・空の画面・入力の読み取りと、その試験1件 | lint が作ったファイル全部を検査して通る。試験1件が通る。起動すると空の画面が開く |
| 2. 中身と保存 | 貸し出しの記録・保存・残りの試験 | lint と試験(全件)が通る。保存は一時フォルダだけで試す |
| 3. 画面 | 一覧・貸し出しと返却の操作・試験の入口 | lint と試験を保つ。起動して、試験の入口の一覧に記録が出る |
| 4. 仕上げ | 書き出し・使い方の文書 | lint と試験を保つ。最後の結果を報告書に残す |

- 各塊は、前の塊を壊さず、その1回で終わる
- 試験はその塊で足す(最後にまとめて足さない)

「終わったときの通し方」の列が、次の確かめの表の期待値になります。塊1で起動まで通す決まりにしておけば、起動できない問題を土台の段階で見つけられます。

塊ごとの確かめの表(確かめ役が毎回埋める)

## 塊2 の確かめ(2026-04-01)

| 確かめ | 結果 |
|---|---|
| npm install | 通った(部品を入れ直したときだけ) |
| npm run lint | エラー 0 / 通らない(何件、どこで) |
| npm test | 何件 pass |
| npm start | 起動した / しない(出たメッセージ) |
| 試験の入口(ブラウザで開く) | 開けた。見えたもの |
| ブラウザのコンソール | エラー・警告の件数と中身 |
| 作業場所 | 試験が記録やログを残していない(git status に出ない) |
| 後始末 | 変えた設定を既定に戻し、アプリを止めた |

→ 次の塊の最初に直させるもの:
1. …
2. …

lint と試験は、実装役の報告書に出力が写されていても、確かめ役が流し直します。起動・試験の入口・コンソールの3行は、ネットなしの実装役には埋められない行です。最後の「次の塊の最初に直させるもの」が、次の指示書の冒頭にそのまま入ります。記録では進行役のAIが自分でこの表を埋めていました。確かめ役を別のAIに頼むなら、この表を渡して「塊の後にこの表を埋め、最後の欄に次の塊で直させるものを書く」と頼む形になります(この頼み方は記録には無く、試してもいません)。

次の塊の指示書の冒頭に置く「最初に直すもの」

## 1. この回で作るもの
塊1・2 は載っている。確かめ役の確かめは「塊2 の確かめ」の記録にある。
この回は 塊3「画面」。

### 1-1. 最初に直すもの(塊2 の確かめで見つかった2つ)

| # | 直すもの | 根拠 |
|---|---|---|
| 1 | 一覧の日時が「2026-04-01T00:30:00Z」の形で出る。手元の時刻で出す | 塊2 の確かめ |
| 2 | lint の「使っていない変数」が2件 | 塊2 の確かめ |

振る舞いを変えずに直す。
lint の規則を緩めて通さない(規則を締める側に足すのはよい)。

### 1-2. 画面
(この回で作るもの)

## 2. 確かめ方
部品は確かめ役が入れてある。ネットなしで次を流し、出力を報告書に写す。
1. npm run lint —— エラー 0
2. npm test —— 全件 pass
3. npm install をしない。アプリを起こさない
   (npm start と画面の確かめは、確かめ役がこの回の後にする)
4. コミットしない(確かめ役がする)

自分の開発に写すときは、題の行・塊の名前・§1-1 の表を書き換えます。§1-1 の根拠の列には、確かめの記録のどの節かを書いておくと、実装役が自分で読みに行けます。

塊を進めずに、先に直しの回を挟むとき

見つけたものは、ふつうは次の塊の冒頭で直させます。ただ、記録では1回だけ、次の塊へ進む前に直しだけの回を挟んでいます。試験は全部通っているのに、画面の1行に中身の代わりに部品の名前が出ていたときです。その直しの回では、同じ種類の不具合が二度と入らないように、lint で止める規則も足させていました。

どういうときに先に直すかの決まりは、記録には書かれていません。次の塊が、壊れている部分の上に積まれるかどうかで、あなたが決めてください。

コマンドを確かめた日と環境

枠の中のコマンド(npm install・npm run lint・npm test・npm start)は、記録の中で確かめ役が 2026-11-10 に流したものです。環境は記録にある範囲で、Windows 11 の開発機、Node.js 24.12.0、アプリの土台の Electron(Web の技術でデスクトップアプリを作る道具)45.2.3(中に入っている Node は 24.22.2)、eslint(lint の道具)9.39.1 です。この記事のために流し直してはいません。npm run lint などの名前は、そのプロジェクトの設定ファイル(package.json)に書いた命令の名前なので、あなたのプロジェクトでは違うことがあります。

根拠にした記録:7回の実装と、塊ごとの確かめで見つけたもの

ここからは、上の枠のもとになった記録です。担当の分け方は次のとおりです。

  • 実装:Codex。記録上の担当名で、動かしている製品は Codex CLI です(2026-11-10 に運営者に確認)。
  • 塊ごとの確かめ:進行役のAI(記録上の呼び名は「PM補佐」)。指示書を書き、結果を受けて次の工程を決め、コミットもする役です。どの製品で動かしていたかは、この記事では確かめていません。
  • コードのレビュー:Claude。動かしている製品は Claude Code です(同じく運営者に確認)。実装の7回が終わった後に入りました。

実装の前に、確かめ役が環境を確かめていた

実装の前の工程で、実行環境のレビュー役が「確かめられなかった」とした4点がありました。進行役はそれを開発機で確かめ、6項目の表に残しています。確かめた場所は作業場所の外の一時フォルダで、作業場所には何も足していません。

その6項目めが、この手順の分担のもとになっています。Electron の本体は npm install では落ちてこず、最初にアプリを起こしたときに取りに行く作りでした。つまり、最初の起動の1回だけネットからの取得が要ります。ネットにつながらない実装役では、起動までは確かめられません。実際、塊1の確かめで進行役が初めて npm start を流したとき、Electron の本体を取りに行っています。

この確かめの結果、保存の形を決める工程は工程表の順のまま置きました。レビュー役が出していた「塊1の後に置く」案は、その理由が無くなったので採っていません。決めかねていたことを、手を動かせる担当が確かめてから決めた例です。

塊は5つ、実装の回は7回

塊の分け方は、実装の前の調べの工程(Codex の担当)が決めました。土台・中身と保存・画面と模擬配信(本物の配信につながずに、作り物のコメントを流す機能)・ライブチャットを取得する層・拡張と文書と仕上げ、の5つで、塊ごとに「終わったときの通し方」の列があります。「各塊は前の塊を壊さず単独で完了する」とも書かれていました。

実際の実装は、塊5を前半と後半に分け、その間に直しの回を1回挟んだので、7回になりました。

回 終わった時刻 確かめの結果 次へ渡したもの
塊1 土台 00:50 導入・試験2件・起動は通った。lint は通らない(まだ無いフォルダ・使っていない変数4件)。コンソールに警告1件 3つを塊2の冒頭へ
塊2 中身と保存 01:02 lint エラー0・試験12件・起動。コンソールの警告がまだ1件 警告の残りなどを塊3の冒頭へ
塊3 画面と模擬配信 01:16 lint エラー0・試験12件。模擬配信のコメントが流れた。コンソールのエラー0。見た目の不具合4件 4件を塊4の冒頭へ
塊4 ライブチャットを取得する層 01:39 lint エラー0・試験12件。塊3の4件が直った 読んで気づいた1件を塊5の冒頭へ
塊5 前半(拡張の仕組み) 01:53 lint エラー0・試験12件。画面のコメント1行に、中身の代わりに部品名が出た 先に直しの回を起こす
直しの回 01:57 lint エラー0・試験12件。1行に中身が出た —
塊5 後半 02:03 lint エラー0・試験12件。起動して、足した拡張の画面が開いた 文書の足りない所1件を、後の直しの回へ

塊1を 00:36 に起こしてから、7回めが 02:03 に終わるまで、約1時間半です。塊4の中身と、そこで渡した1件の中身は、この記事では扱いません。

確かめの表の行は、毎回ほぼ同じでした。lint・試験・起動・試験の入口・コンソール・作業場所に何か残っていないか・後始末(アプリを止めた)です。塊2では「試験が記録やログを作業場所に残していない」、塊3では「保存先にファイルができ、作業場所には何も残っていない」を確かめています。

次の塊の冒頭で直させた4回

塊1→2・2→3・3→4・4→5 の4回、見つけたものを次の塊の指示書の冒頭に置いています。塊2の指示書の書き方はこうでした(中身は言い換えています)。

  • 見出しは「最初に直すもの(塊1の確かめで見つかった3つ)」。番号・直すもの・根拠の3列の表
  • 1つめ:lint が、まだ無いフォルダを探して止まる。空の登録ファイルを作って通す。lint の命令の中身は変えない
  • 2つめ:使っていない変数が4件。lint の規則を緩めて通さない
  • 3つめ:画面の守りの設定(CSP。ブラウザに「このページで読んでよいもの・してよいこと」を守らせる決まり)の1項目が、ブラウザが無視する場所に書かれていた。効く場所で送る
  • 根拠の列には、確かめの記録の節を書く(1つめだけは、実装前の調べの記録を指していた)

指示書に添える一覧ファイルの説明にも「最初に塊1の lint 2件と、画面の守りの設定を直す」と書かれていました。塊4の指示書では、塊3で見つけた見た目の不具合4件(空のときの表示が消えない・時刻が世界標準時の生の文字列で出る・1行の並びが崩れる・極端に長い行)を「振る舞いを変えずに直す」とし、1行の長さを lint で検査する規則を足させています。規則を締める側の変更です。

塊2以降の確かめでは、lint はどれもエラー0、単体試験は12件とも通っていました。

塊を進めずに、直しの回を4分で挟んだ1回

塊5前半の確かめで、進行役が試験の入口で模擬配信を流すと、コメント1行に中身の代わりに部品の名前が並びました。単体試験の12件は通っていた回です。原因は、画面のスクリプト2つが同じ名前の関数を、ページ全体で共有される名前の置き場に置いていて、後から読まれた方が先の方を上書きしていたことでした。アプリ本体の窓も同じ部品を同じ順で読むので、同じように崩れる、と記録にあります。

進行役は、塊5後半(文書と見本だけを読ませて、拡張を1つ足させる回)へ進む前に、直しの回を起こしました。01:53 に起こし、01:57 に終わっています。直しの指示書は、各スクリプトの中身を包んで外に出す名前を1つにすること、同じことが再び起きたら lint で落ちる規則を足すこと、振る舞いは変えないこと、の3点でした。進行役の確かめでは、1行に中身が出て、部品の名前は出なくなり、コンソールのエラーは0でした。

レビューの後も、直しの回ごとに同じ表で確かめた

実装の7回の後は、Claude Code によるコードのレビューに入りました。その後の直しの回も8回あり、進行役は毎回、同じ形の表で確かめています。進行役が自分の確かめで新しく見つけ、直しの回を起こしたのは、塊5前半の後を含めて5回です。

例を1つ挙げます。レビューの指摘を直した回の確かめで、進行役は「試験の入口で模擬配信の速さを変えても、流れている間は効かない」ことを見つけました。その回の直しで入ったものではなく、前から在った食い違いです。次の直しの回で直させた後、進行役は届いたコメントを数えて確かめています。

操作 数えた速さ
1件/秒で始める 1.0件/秒
流したまま 20 に変える 15.3件/秒
流したまま 0.2 に変える 0.2件/秒

注記:15.3件/秒は、変えた直後の1.5秒を除いた3秒で数えた値です。止め直さずに切り替わったこと、開き直しても最後に選んだ値が残ることも確かめています。後始末では、速さを1件/秒に戻してアプリを止めていました。

うまくいかなかった所・確かめきれなかったもの

塊1は、実装役が lint を流せないまま出した

塊1の指示書には「ネットがないので、lint と起動はこの回では流せない。報告書に流していないと書く」とあり、実装役は部品の要らない試験と文法の確かめだけを流しました。その結果、lint が通らないことは、進行役の確かめで初めて分かりました。

塊2の指示書からは、進行役が入れた部品が作業場所にある前提にし、実装役がネットなしで lint と試験を流せる形に変えています。あなたの環境で、確かめ役が先に部品を入れておけるなら、塊1から実装役に lint を流させる形にできます。ただし、記録で試したのは塊2からです。

アプリ本体の窓は、確かめ役の道具では見ていない

進行役が見たのは、ブラウザで開く試験の入口です。アプリ本体の窓は、塊3の時点で「この道具では見ていない」と書かれ、後の直しの回でも「画面を操作する道具で、作業場所の窓を名前で選べない」ため目では見られなかった、と残っています。窓は人間による実機での確認に回しましたが、開発を閉じた時点で、その確認はまだです。

文書だけでは足りなかった1件は、後の直しの回へ回した

塊5後半は、拡張の足し方の文書と見本だけを読ませて、拡張を1つ足させる回でした。文書のとおりに書くと lint が3件で落ちたため、実装役は書き方を変えて通し、文書の足りない所として報告しています。進行役はこれを次の塊の冒頭には置かず、「レビューの指摘と一緒に直す」として後の直しの回へ回しました。その直しの後の確かめでも、lint の規則の対象と文書の書き方に小さな食い違いが残り、再レビューへ渡しています。

確かめ役が、自分の読みを後で訂正した

システムテスト(アプリを実際に動かして、項目ごとに確かめる試験)のやり直しが途中で止まった後、進行役はアプリを動かして、遡って読むために流れを止めた一覧が数十秒で空になることを見つけました。進行役は、その原因を一覧に保つ件数の上限だと書き、直しの回を起こしています。その直しの回の後で、進行役は「先に効いていたのは、模擬配信の台本が一定の件数ごとに、ある投稿者のコメントをまとめて消す動きだった」と自分で訂正しました。上限で押し出される問題もソースのとおり在り、直した後は押し出された行が残ることを確かめた、とも添えています。確かめ役の書いた原因も読み違えることがある、という記録です。

塊ごとに確かめても、システムテストには時間がかかった

塊ごとに確かめた後も、全体のシステムテストは、6回・314分かかりました。中身は、この記事では扱いません。

この枠をどこまで当てにできるか

これは1件の開発の記録です。上の枠は記録の型を写したもので、別の開発で試していません。塊ごとに確かめた進行役のAIがどの製品かは確かめていません。開発は 2026-11-10 19:11 に完了として閉じましたが、人間による実機での確認は、その時点でまだ済んでいません。

コメント

タイトルとURLをコピーしました