OpenAIのエンジニアが、Codexの内部利用についての質問に回答。すでに「Codex開発における自身のコードの99%はCodex自身に書かせている」と言っていたらしい。

なら私もやりたい。(単純)
いいね。その目標は“現実的に達成可能”。やり方はシンプル──人間は要件・テスト・レビューに集中、コード生成はAIに全面委任。下記の運用に切り替えれば、4週間で「タイピング≤10%」→3ヶ月で「AI 95–99%」まで持っていける。
直球の答え
- 到達法: ①要件→②テスト→③AI実装→④自動チェック→⑤人間レビュー、の固定フローにする。
- KPI: 「AIが書いた差分比率(=AI作者コミット割合)」「手書き行数」「1PRあたり手入力時間」。
- 目標: 4週目でAI比率90%超、3ヶ月で95–99%。
- 鍵: プロンプト標準化・テンプレ化、徹底的な自動化(フォーマッタ/リンタ/テスト/型/セキュリティ)・レビューの型化。
ステップバイステップ(実装手順)
- リポ構造をAI前提に最適化
/specs: 機能仕様(短い箇条書き)/tests: 失敗するテスト(先に用意)/src: 実装はAIが生成/docs: 使い方・決定事項.tooling/: lint/format/型/セキュリティ設定
- Definition of Done(AI用の完成条件)を固定
- テストパス / Lintゼロ / 型OK / セキュリティ警告ゼロ / コメント&Docstringあり / ログ最小。
- “生成プロンプト”をテンプレ化(貼って使う)
- Spec→Test→Impl
- Spec:「機能を3–7項目で要件化。境界条件/失敗ケース/性能目安を明記」
- Test:「上記要件を自動テストで先に書け。既存CIで動くコマンドを使え」
- Impl:「テストグリーンになる最小差分パッチを出力。既存スタイルに準拠」
- Diff-Onlyモード
- 「
<<<FILE:path>>>現在の内容、>>>PATCH以下に最小差分のパッチだけ出す。説明は要らない」
- 「
- CI/CDを“門番”にする(人間は通さない)
- 必須チェック:
format → lint → typecheck → unit → e2e(必要なら) → secscan(dep+静的解析) - どれか落ちたら自動でAIリトライ(プロンプトに失敗ログを差し戻す)。
- レビューを“観点表”で固定
- ①仕様整合 ②境界条件 ③副作用 ④ログ/計測 ⑤セキュリティ ⑥パフォーマンス。
- コメントは要件へのギャップ指摘だけ(書き直しはAIに再投げ)。
- 生成結果の“再学習プロンプト”
- CI失敗ログをそのまま貼る→「同じ方針で最小修正パッチを再生成せよ」
- 定型作業を全自動
- スキャフォールド、CRUD、APIクライアント、型定義、Storybook、i18nキー作成は全部テンプレに。
- 画像/アイキャッチ/文章も同様(あなたの得意領域は特に自動化余地が大きい)。
- 計測(手入力を可視化)
- コミットメッセージ末尾に
Co-authored-by: AIを付与。 - 週次で
git shortlogとAI共著比率を集計→ダッシュボード化。 - キー入力時間はエディタのメトリクスで可視化。
- セキュリティの型を先に決める
- 秘匿情報は.env.template化、危険APIはラッパー越しのみ、依存性は
allowlist。 - SAST/依存性監査はPRブロッカー。
- ナレッジを“ミニ手順書”化
- 「この種類の変更はこのプロンプト+このチェックリスト」で誰でも回せる状態へ。
代替パースペクティブ(盲点になりがちなこと)
- 小改修は手で打った方が速いこともある。 ただし“毎回”ではなく“都度判断”。
- 生成の質は“テスト密度×仕様の粒度”で決まる。 仕様が曖昧だと99%は無理。
- スパゲッティな既存コードはAIの天敵。 リファクタを先にAIで一掃(分離・純関数化・型付け)。
- 長生きするのは“最小差分パッチ運用”。 全ファイル出力させるより、パッチ指向が壊れない。
いますぐ動く実務アクション(チェックリスト)
Day 1–2
- プロジェクトに
pre-commit(format/lint/type)を導入 - CIをPRブロッカー化
- “Spec→Test→Impl”テンプレをREADMEに貼る
- スキャフォールド用のプロンプトSnippetをエディタに登録
Week 1
- 既存タスク3本をAIで実装(あなたは仕様とテストだけ)
- 失敗ログ→AI再生成の往復を2サイクル体験
- 週末にAI比率を計測し、90%未満ならテスト/仕様の粒度を上げる
Week 2–3
- リファクタ対象をAIに列挙→モジュール分離/純関数化
- CRUD/API/型生成の“自動キット”を固める
- セキュリティ/監査のチェックをPR必須へ
Week 4
- 新機能を要件→テスト→実装の完全自動フローで通す
- KPI: AI比率≥90%、手打ち時間≤10%
- ギャップをテンプレ/CIに反映(学習)
プロンプト雛形(3本だけ持てば足りる)
- 仕様化
あなたは熟練アーキテクト。下記要求を3–7項目の機能要件に変換し、境界条件/失敗ケース/性能目安も列挙:
[自由記述の要求...]
- テスト先行
上記要件が満たされていないことを証明する自動テストを書いて。既存プロジェクトのツール類に合わせて。
出力は【ファイルパス → 追加/修正内容】の差分指示のみ。実行コマンドも併記。
- 最小差分パッチ
テストをパスする最小限の変更だけを、パッチ形式で出力。
既存のコードスタイル/設計に合わせ、不要な再生成はしない。説明文は不要、パッチのみ。
リスクと回避
- ハルシネーション: 外部仕様/型/DBスキーマを“参照専用モジュール”に集約し、AIには必ずそれを見せる。
- 静かな破壊: 変更は小さく頻繁、e2eを夜間に。
- セキュリティ抜け: 権限・入力検証・秘密管理は“ラッパー越し”以外禁止。
まとめ(実行プラン)
- 方針: 人は要件とテストと判断、コードはAI。
- 今やること: CIブロッカー→テンプレ3つ→KPI計測→3タスクで試走。
- 到達: 4週で90%・3ヶ月で95–99%。
- 勝ち筋: “最小差分×テスト先行×自動ゲート”。
やるなら今すぐ着手しよう。最初の3タスク、どれからAI化する?こちらで要件→テストまで一気に書く。
🚀 小学生でもわかるAI開発の流れ
1. やることを決める(要件)
- まず「何を作るか」を3〜7個のポイントで書き出す。
例:「足し算ができる」「0以下の数字もOK」「100を超えるとエラー」
2. 先にテストを書く
- 作る前に「できてるかどうかチェックする問題」をつくる。
例:「2+3=5になるか?」「-1+2=1になるか?」
3. AIに作らせる
- 自分で書かない。AIに「テストが全部○になるコード」を書かせる。
4. 自動で見張る
- 機械(CI)がチェックする。
やることは:- コードがキレイか(フォーマット)
- 間違いがないか(Lint)
- 型が合ってるか(Typeチェック)
- テストに合格するか
- 危ない部分はないか(セキュリティ)
1つでも×ならAIに「直せ!」と返す。
5. 人間が最後に見る
- 見るポイントはいつも同じ:
①ちゃんと仕様どおり?
②変な抜け道ない?
③他に悪影響ない?
④ログが多すぎない?
⑤セキュリティ大丈夫?
⑥動きが遅くない?
書き直すのはAI。人間は「ここ違うよ」だけ言う。
🎯 目標(KPI)
- AIが書いたコードの割合をどんどん増やす
→ 4週目で90%、3か月後に95〜99% - 人が書く行数を減らす
- 1回のPRにかかる人の時間を減らす
🛠️ 工夫のしかた
- プロンプトをテンプレにして、いつも同じ書き方にする
- 自動でやれること(フォーマット、テスト、画像づくりなど)は全部自動
- PR(提出物)には「Co-authored-by: AI」をつけて、どれくらいAIが書いたか数える
- 定期的に「AIがどれくらい書いたか」をグラフにして見る
✅ ゴール(完成条件)
- テスト全部○
- コードきれい
- 型エラーなし
- 危ないコードなし
- コメントちゃんとあり
- ログは必要最低限