ブログ一覧へ戻る

Claude CodeとCodexをまたぐ引き継ぎで何が起きるのか

Claude Codeで設計し、Codexでレビューする開発フローで、なぜ前提や判断理由を説明し直すことになるのかを整理します。会話履歴だけでなく、調査履歴や作業履歴を渡す考え方です。

レビュー引き継ぎClaude CodeCodex作業メモリMCP

複数エージェントをまたぐと文脈が切れる

Claude Codeで設計した判断、Codexで見つけたレビュー観点、Cursorで直した差分は、それぞれのツールの中に分かれて残ります。次のAIエージェントへ渡したいのは会話ログそのものよりも、なぜその判断をしたのかという作業の流れです。

最近の開発では、Claude Codeで設計を相談し、Codexで差分や実装方針を検証し、Cursorで編集し、ターミナルではGitHub Copilotを使う、というように複数のAIエージェントを横断することが増えました。

便利な一方で、それぞれのエージェントは互いの会話を見ていません。Claude Codeで決めたことをCodexに説明し直し、Codexで見つけた懸念をCursorに説明し直す。人間が毎回ブリッジ役になります。

この説明コストは小さく見えますが、毎朝、毎セッション、毎レビューで積み重なります。特に、作業の途中で日をまたいだときに痛みが大きくなります。

会話履歴だけでは足りない

エージェント横断の記憶というと、まず会話履歴の共有を考えます。しかし、開発の意思決定はチャットに入る前にかなり進んでいます。

Stack Overflowを読む、GitHub Issueを追う、VS Codeで試しに実装して消す、ログを眺める、ブラウザでドキュメントを確認する。こうした前段の探索は、どのエージェントの会話履歴にも残りません。

つまり、チャットログをつなぐだけでは、エージェントは『何を言ったか』は見られても『なぜそう考えたか』までは追いにくいままです。

作業文脈をタイムラインとして持つ

Contextbergでは、エージェント会話履歴だけでなく、画面、ブラウザ履歴、アプリ利用、キーストロークをまとめて1本のタイムラインにします。

たとえば、月曜夜にEdgeでOAuthの仕様を読み、VS Codeで認証コードを触り、Codexに差分レビューを投げ、火曜朝にClaude Codeで続きを相談する。この流れ全体を、エージェントが参照できる文脈として残します。

重要なのは、どのエージェントが話したかではなく、ユーザーの作業がどの順序で進んだかです。エージェントをまたいでも、作業者は同じ人間なので、記憶は人間の作業単位で持つ方が自然です。

MCPを出口にする理由

記憶をアプリ内チャットだけに閉じると、また別のサイロが増えます。Claude CodeにもCodexにもCursorにも渡したいので、ContextbergではMCPを出口にしています。

MCP経由でget_activityやget_agent_history、read_ltmを呼べるようにすれば、各エージェントは自分の会話履歴だけでなく、ユーザーの作業履歴全体を必要な範囲で読めます。

これにより、人間が『昨日はここまでやって、途中でこのIssueを読んで、この方針にした』と毎回説明する回数を減らせます。

最初に狙う体験

最初に狙っている体験はシンプルです。月曜に作業を止め、火曜にClaude Codeを開いて『昨日の続き、どこからやる?』と聞いたら、エージェントが前日の作業文脈を読んで返せること。

その返答には、会話履歴だけでなく、読んでいたドキュメント、触っていたファイル、見ていた画面、Codexで確認した差分まで含まれていてほしい。

Contextbergは、そのためのローカルメモリ層です。エージェントを賢くするというより、エージェントが失っている人間側の文脈を渡すための土台です。

引き継ぎで渡すべき情報

レビュー引き継ぎで重要なのは、会話全文ではありません。次のエージェントが判断を再開するために必要な、短くて検証できる情報です。

Claude CodeからCodexへ渡す文脈
文脈渡す内容渡さない方がよいもの
目的何を直したかったのか、なぜその変更が必要だったのか最初の曖昧な相談全文
制約採用しなかった案、避けたい依存、既存パターン古い仮説や一度捨てた思いつき
差分触ったファイル、重要な関数、未確認の影響範囲無関係なログや大きすぎるbuild output
検証通したテスト、失敗したテスト、再現手順結果だけで原因が分からない一言メモ
調査元読んだIssue、公式doc、Stack Overflow、関連PR開いたが読んでいないページの羅列

実際に聞くプロンプト

Contextbergで作業文脈が読める状態なら、Codex側では最初からレビューに入るのではなく、まず前提を復元させます。

Codexへ渡す最初の質問例
昨日Claude Codeで進めていた認証リファクタについて、
読んでいたIssue、触ったファイル、決めた方針、残っている不安を分けて要約して。
そのうえで、今回の差分レビューで最初に見るべき箇所を3つ挙げて。
返ってくる回答イメージ
昨日の認証リファクタは、Claude CodeでAccessTokenStoreの責務分離を相談し、最終的にDPAPIでrefresh tokenを保護する方針に寄せています。

読んでいたもの:
- GitHub Issue: token refreshが並列実行された時のrace condition
- Microsoft docs: ProtectedData.Protect / CurrentUser scope
- Stack Overflow: DPAPI利用時の例外処理とユーザー切り替え時の注意

触っていたファイル:
- src/auth/AccessTokenStore.ts
- src/auth/refreshToken.ts
- tests/auth/token-refresh.test.ts

決めた方針:
- token保存処理はAccessTokenStoreに寄せる
- refresh処理は冪等にする
- logout時にPKCE stateとrefresh tokenを同時に消す

残っている不安:
- refresh失敗時に古いtokenが残らないか
- 並列refresh時に片方の結果で上書きされないか
- logout後にbackground taskが再保存しないか

今回の差分レビューで最初に見るべき箇所:
1. refreshToken.ts の排他制御
2. logout処理が保存済みtokenとPKCE stateを両方消しているか
3. token-refresh.test.ts に並列refreshとlogout直後のケースがあるか

この聞き方にすると、エージェントは単にdiffを見るだけでなく、なぜそのdiffが生まれたかを踏まえてレビューできます。レビュー品質を上げるというより、レビュー開始前の説明コストを減らす効果が大きいです。

関連記事