Codexが使えなくなって、開発が止まった。だからGitHubをAIの外部記憶にした

公開日 · 更新日 · 9 MIN READ · 理解の記録

RECORD / 2026

Codexが使えなくなっても、開発全体まで止める必要はない。

先週、Codexの週間利用枠に到達した。最後の2日ほど、思うように使えなくなった。

すると、開発もほとんど止まった。

ここで気づいた。問題はCodexを使いすぎたことだけではない。

Codexが止まると、開発全体が止まる仕組みになっていた。

一台のAI実装機が止まり、すべての仕事が暗転した制作環境

止まったのは一台のAIだった。それなのに、判断も記録も次の仕事も同じ場所へ集めていたため、制作ライン全体が暗くなった。ここで初めて、問題はAIの停止ではなく、一台に依存した仕事のつなぎ方だと気づいた。

そこで、ChatGPT Classicを司令室にする。GitHubを外部記憶にする。Codexは実装担当にする。開発体制を、この3つの役割に分けて作り直した。

Codex停止を「開発停止」から「実装の一時停止」へ変える

以前の流れは単純だった。

作りたいことを思いつく。Codexに相談する。Codexと仕様を考える。そのまま実装する。判断も記録も、同じ会話の中にあった。

動いている間は速い。ただしCodexが使えなくなると、考えていたことも次の作業も取り出しにくくなる。

以前は、こうだった。

Codex停止 = 開発停止

これを、次の形へ変える。

Codex停止 = 実装工程の一時停止

実装が止まっても、問題整理はできる。仕様を決められる。優先順位をつけられる。Issueを作り、次の仕事を準備できる。

AIの利用枠と、プロジェクト全体の進行を切り離す。

これが今回作り直したかった仕組みの中心だ。

自分、ChatGPT Classic、GitHub、Codexの役割を分ける

新しい役割分担は、難しくしなかった。

自分
目的を決める。違和感を伝える。最後に判断する。

ChatGPT Classic
問題を整理する。仕様を考える。優先順位を決める。Codexへ渡す仕事を設計する。

GitHub
現在地、決定、失敗、修正結果、次にやることを残す。

Codex
コードを調査する。実装する。修正する。テストする。

流れにすると、こうなる。

自分 → ChatGPT Classic → GitHub → Codex → GitHub → ChatGPT Classic

重要なのは、Codexを開発全体の中心から外したことだ。

Codexは強力だ。ただし今後は「開発そのもの」ではなく、実装を担当するリソースの一つとして扱う。

3Dのトリケラトプスが重いとき、いきなり実装しない

たとえば、3Dのトリケラトプスを歩かせたら処理が重くなったとする。リアルさは残したい。

以前なら、そのままCodexに「軽くして」と頼んでいたかもしれない。

新しい流れでは、先にChatGPT Classicと問題を分ける。

  • 完全な3D移動は必要か
  • 横スクロールなら、移動計算は2Dでよいのではないか
  • 見た目だけ3Dにできないか
  • リアルさを残す場所はどこか
  • 新しい物理エンジンを入れずに済むか

ここで、次の方針を決める。

見た目は3D、ゲームロジックは2Dにする。

さらにGitHubへ、実装条件を残す。

  • X方向を中心に移動する
  • 不要な奥行き計算を削る
  • 歩行アニメーションには3Dを使う
  • 見た目のリアルさは維持する
  • 新しい物理エンジンは追加しない

ここまで決まってからCodexへ渡す。

Codexは「何を作るべきか」から考えなくてよい。決まった修正をコードにすることへ集中できる。

これは利用量の節約にもつながる。ただし目的は節約ではない。判断と実装を分け、仕事を途中で引き継げるようにすることだ。

Codexが使えない日は、実装待ちの仕事を作る

木曜日に週間利用枠へ到達し、Codexが使えなくなったとする。

以前なら、そこで開発が止まっていた。

新しい体制では、ChatGPT Classicとの会話を続ける。

  • 次にどこを直すか
  • UIの何が使いにくいか
  • 仕様をどう変えるか
  • どの修正を先にするか
  • 既存実装の何を残すか

考えた結果はGitHubへ残す。

たとえば、次のようなIssueを準備する。

  • Issue #31 日付ピッカー修正
  • Issue #32 曜日表示修正
  • Issue #33 スマホUI修正
  • Issue #34 CTA修正
  • Issue #35 レイアウト崩れ修正

止まっているのは実装だけだ。

停止した実装工程を迂回し、仕様やIssueを先へ運ぶ制作ライン

止めないために必要なのは、無理に実装を動かすことではない。暗くなった実装工程を迂回し、仕様、判断、Issue、確認条件を明るい側へ運ぶ。Codexが戻るまでに、次の仕事は実装できる形へ整っていく。

設計、判断、仕様決定、問題整理、優先順位付け、タスク化は進められる。

Codexが戻ったら「さて、何を作ろう」から始めなくていい。GitHubに並んだ仕事を、上から処理できる。

GitHubをコード置き場ではなくAIの外部記憶にする

この仕組みでは、GitHubの役割が変わる。

コードを保存するだけではない。人間とAIが、次の作業へ戻るための記憶を置く。

最初に用意したのは、次の3つだ。

AGENTS.mdに常設ルールを書く

AIが毎回守るルールを書く。

たとえば、作業前に読む文書。勝手に実行してはいけない操作。変更対象の固定方法。テストと記録の残し方だ。

長い知識を全部入れるのではなく、必要な場所へ案内する地図として使う。

HANDOFF.mdに現在地を書く

ここには、今の状態だけを書く。

  • どこまで終わったか
  • 何を確認したか
  • 何が未確認か
  • 次に何をするか
  • 何をしてはいけないか

会話の全文は要らない。次のAIが迷わず再開できる情報だけでよい。

IssueとPRに正式な仕事を残す

Issueには、目的、対象、禁止事項、完了条件を書く。

PRには、変更内容、確認結果、残った問題を書く。

判断と実装結果をGitHubへ戻すことで、会話が途切れても知識が残る。

Codexが使えなくても消えない。別のAIへ変わっても消えない。数週間後に自分が忘れても、GitHubを読めば戻れる。

最小構成でも本当に再開できるか試した

文書を作っただけでは、引き継げるとは言えない。

そこで、既存の大量の作業ファイルがないclean環境を用意した。GitHubからリポジトリを取得し、記録だけを読んで再開できるか試した。

確認したのは次の4点だ。

  1. どのリポジトリが正本か
  2. 何を勝手に実行してはいけないか
  3. 現在どこまで終わっているか
  4. 次に何をすべきか

結果はPASSだった。

何もないclean環境で、別の実装機が共有記録だけを読み作業を再開した場面

以前の会話も、元の作業環境もない。残した記録だけを別の実装担当が読み、同じ制作ラインを再び動かした。この瞬間、GitHubが単なる保管場所ではなく、AIを交換しても仕事をつなぐ外部記憶になった。

元の会話や、作業中のCodexを知らなくても、GitHubから現在地を復元できた。

これで初めて「AIが止まっても、プロジェクトは止まらない」に近づいた。

今日から試すなら3つだけ作ればいい

最初から複雑な自動化は要らない。

まずは次の3つで十分だ。

AGENTS.md
HANDOFF.md
GitHub Issue / PR

Issueには、次の6項目を置く。

目的:
対象:
禁止:
完了条件:
証拠:
次の一手:

作業が終わったら、実装結果をPRへ書く。現在地と次の一手をHANDOFF.mdへ戻す。

この小さな循環を一度動かす。専用ツールや大きな自動化を考えるのは、そのあとでいい。

AIを一人の万能な人として扱わない

以前はCodexをメインにして、ChatGPTで勝ち筋を決めるという使い方をしていた。

今回の失敗で、その考えをもう一段進める必要があるとわかった。

ChatGPT ClassicはPM。Codexはエンジニア。GitHubはプロジェクト管理と外部記憶。そして自分がプロダクトオーナーだ。

エンジニアが一時的に動けなくなっても、会社全体まで止まる必要はない。

次の仕様を考えられる。仕事を整理できる。優先順位を決められる。エンジニアが戻ったら、準備した仕事を渡せる。

今回作ったのは、Codexを効率よく使う方法ではない。

ChatGPT Classicを入口にして、GitHubを外部記憶として使い、Codexが使えなくなっても開発全体を止めない仕組みだ。

AIを止めないことはできない。利用枠も、障害も、モデル変更も起きる。

だから、AIが止まることと、仕事が止まることを分けておく。

そこまで作って、ようやくAIと長く開発できる。

次に読む記事

コメントを残す