AI

GPT-5.5退役準備入門——Codexのモデル指定を棚卸しする

OpenAIのGPT-5.5退役案内を題材に、CodexやChatGPT Workのモデル指定をNext.js + Firestore + GitHub Actionsで棚卸しする実践手順を解説します。

2026年9月22日
OpenAICodexGPT-5.6FirestoreGitHub Actions
GPT-5.5退役準備入門——Codexのモデル指定を棚卸しする

はじめに

AIコーディング環境をチームで使っていると、モデル指定は思ったより多くの場所に散らばります。Codex CLIの保存済み設定、ChatGPT Workのワークスペース既定値、カスタムエージェント、GitHub Actions、社内ドキュメントに残った起動例などです。

OpenAI DocsのChatGPT & Codex changelogでは、2026年10月14日に gpt-5.5 がChatGPT、ChatGPT Work、Codexから退役すると案内されています。対象はconsumer、Business、Enterprise、Eduを含む各プランです。一方で、この退役はOpenAI APIには適用されない、とも明記されています。

CodexをChatGPTサインインで使っている場合は、退役日までに gpt-5.5 から gpt-5.6-sol へ切り替える案内が出ています。更新対象は、ワークスペース既定値、保存済みモデル設定、管理設定、カスタムエージェント、スケジュールタスク、スクリプトです。

本記事では、架空の請求管理SaaS「InvoiceFlow」を題材に、Next.js App Router + Firestore + GitHub Actions + TypeScriptで「古いモデル指定がどこに残っているか」を棚卸しする仕組みを作ります。

参考にした一次情報は次の通りです。

何を棚卸しするのか

今回のポイントは、「すべてのOpenAI利用を一律に置き換える」ではありません。OpenAI APIの gpt-5.5 利用と、ChatGPTサインインのCodex利用では退役案内の範囲が違います。まずは対象を分けます。

見つかった場所対応
Codex / ChatGPT Work設定gpt-5.5gpt-5.6-sol への切替対象
カスタムエージェントmodel: gpt-5.5役割ごとに置換候補を確認
スケジュールタスク夜間レビュー、定期レポート実行前にモデル指定を更新
OpenAI APIコードmodel: "gpt-5.5"今回の退役対象外。ただし別途モデル方針として棚卸し
旧研究プレビューgpt-5.3-codex-spark2026年9月14日に非推奨済みなので除去対象

OpenAI APIのモデルガイダンスでは、GPT-5.6系の選択肢として gpt-5.6-solgpt-5.6-terragpt-5.6-luna が説明されています。また、gpt-5.6 エイリアスは gpt-5.6-sol にルーティングされるとされています。API側を動かす場合は、品質、コスト、レイテンシを測ってから切り替えます。

ハンズオン1: モデル指定を検出する

まず、InvoiceFlowのリポジトリで古いモデル名を検索します。最初は .codex.githubscriptssrcdocs を見ます。

rg "gpt-5\\.5|gpt-5\\.3-codex-spark" .codex .github scripts src docs package.json

検索結果は「どの面で見つかったか」に分類します。APIコードとCodex設定で対応が違うためです。

// src/lib/modelRetirementAudit.ts
export type ModelFinding = {
  path: string;
  line: number;
  model: string;
  surface: "codex" | "github-actions" | "script" | "app" | "docs";
  action: "replace" | "review-api-usage" | "remove";
};

const retiredModels = /(gpt-5\.5|gpt-5\.3-codex-spark)/g;

function detectSurface(path: string): ModelFinding["surface"] {
  if (path.startsWith(".codex/")) return "codex";
  if (path.startsWith(".github/")) return "github-actions";
  if (path.startsWith("scripts/")) return "script";
  if (path.startsWith("docs/")) return "docs";
  return "app";
}

export function findRetiredModelReferences(
  files: { path: string; content: string }[],
): ModelFinding[] {
  return files.flatMap((file) =>
    file.content.split("\n").flatMap((text, index) =>
      [...text.matchAll(retiredModels)].map((match) => {
        const model = match[1];
        const surface = detectSurface(file.path);
        return {
          path: file.path,
          line: index + 1,
          model,
          surface,
          action:
            model === "gpt-5.3-codex-spark"
              ? "remove"
              : surface === "app"
                ? "review-api-usage"
                : "replace",
        };
      }),
    ),
  );
}

review-api-usage は、今回のGPT-5.5退役がOpenAI APIには適用されないための分類です。APIコードを放置するのではなく、Codex退役対応とは別の移行判断として扱います。

ハンズオン2: Firestoreに移行台帳を作る

次に、検出結果をFirestoreへ保存します。複数リポジトリにまたがる対応は、PRコメントだけでなく台帳として残すと追跡しやすくなります。

// src/app/actions/saveModelRetirementAudit.ts
"use server";

import { FieldValue } from "firebase-admin/firestore";
import { db } from "@/lib/firebaseAdmin";
import type { ModelFinding } from "@/lib/modelRetirementAudit";

export async function saveModelRetirementAudit(input: {
  repository: string;
  commitSha: string;
  findings: ModelFinding[];
}) {
  const replaceCount = input.findings.filter((f) => f.action === "replace").length;

  await db.collection("aiModelMigrationAudits").add({
    provider: "openai",
    retirement: "gpt-5.5-codex-2026-10-14",
    repository: input.repository,
    commitSha: input.commitSha,
    status: replaceCount > 0 ? "needs_action" : "reviewed",
    findingCount: input.findings.length,
    replaceCount,
    findings: input.findings,
    checkedAt: FieldValue.serverTimestamp(),
  });
}

保存するのはファイルパス、行番号、モデル名、分類、対応方針だけです。設定ファイルやプロンプト全文は保存しません。AIエージェント向けの設定には、社内URLや認証フローのヒントが含まれることがあるためです。

ハンズオン3: GitHub Actionsで退役日まで止める

最後に、PR時点で古いCodex向けモデル指定を止めます。退役日が明確なので、2026年10月14日を過ぎてから慌てるより、9月中に検出できる状態にします。

name: OpenAI model retirement audit

on:
  pull_request:
    paths:
      - ".codex/**"
      - ".github/**"
      - "scripts/**"
      - "src/**"
      - "docs/**"
      - "package.json"

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Detect retired Codex model references
        run: |
          if rg "gpt-5\\.5|gpt-5\\.3-codex-spark" .codex .github scripts docs package.json; then
            echo "Retired or retiring Codex model reference found."
            echo "Migrate Codex gpt-5.5 references before 2026-10-14."
            exit 1
          fi

ここでは src のAPIコードを失敗条件から外しています。今回の公式案内ではOpenAI APIは退役対象外だからです。API側でGPT-5.6へ移るなら、OpenAIのモデルガイダンスに沿って reasoning.effort を維持して比較し、必要に応じて一段低い設定も測ります。

まとめ

GPT-5.5退役のニュースは、モデル名を置換するだけでなく、AI開発環境の設定がどこに散らばっているかを見直すきっかけになります。

  • 2026年10月14日に gpt-5.5 はChatGPT、ChatGPT Work、Codexから退役する
  • Codex with ChatGPT sign-inでは gpt-5.6-sol への切替が案内されている
  • OpenAI APIは今回の退役対象外なので、Codex設定とAPIコードを分けて扱う
  • Next.js + Firestoreで移行台帳を作ると、複数リポジトリの対応状況を追いやすい
  • GitHub Actionsでは、まず .codex.githubscriptsdocs の古い指定を止める

20〜30個のリポジトリを見る場合も、一気に全修正せず、3〜4リポジトリずつ進めるとレビューしやすいです。退役日が決まっている変更は、モデル指定を「個人の手元設定」ではなく、運用品質の一部として扱っていきましょう。