ソースコードの置換は終えたのに、コードの外側までは見ていなかった——月曜の朝、作業メモを見返していて、そのことに気づきました。個人開発で定期実行のスクリプトを少しずつ増やしてきたせいで、モデル名が書かれている場所は、私の記憶よりずっと多いはずでした。
最初にお伝えしたいのは、この記事の検証範囲です。停止後の API が旧名に対して実際にどんな応答を返すのかは、私の手元では再現しておりません。確かめたのは、次に載せる棚卸しスクリプトが、架空のサンプルツリーで旧名を拾えること、後継名を数えられること、終了コードが切り替わることまでです。
前提:何が、いつ止まったか
公式の廃止表では、Managed agents の antigravity-preview-05-2026 が 2026 年 10 月 5 日に停止し、後継は antigravity-preview-09-2026 とされています。差し替えで済むか改修が要るかの見極めは、10月5日に止まる antigravity-preview-05-2026、差し替えで済む構成と済まない構成に書きました。今回はその先、「差し替えたはずなのに、残っている」ほうの話です。
旧名が残りやすい 4 つの置き場所
ソースコードの agent="..." は、置換すればすぐ気づけます。見落とすのは、コードの外側です。
| 置き場所 | 残りやすい理由 |
|---|---|
.env / .env.example | 環境変数でモデル名を渡していると、コードを直しても値が古いままになる |
CI の設定(.github/workflows など) | 夜間ジョブ側の env: にだけ書かれていて、普段は開かない |
| cron・タスクスケジューラの登録内容 | リポジトリの外にあり、grep の対象にならない |
| README・手順書・コピペ用メモ | 次に誰かがコピーして貼る元になる |
3 つ目だけは、リポジトリを grep しても見えません。ここは後で触れます。
棚卸しスクリプト
何を解決するかを先に書きます。旧名がどのファイルの何行目に残っているかを一覧にし、残っていれば終了コード 1 を返すものです。
#!/usr/bin/env bash
# usage: audit.sh [dir] — 停止済みの識別子が残っていないか洗い出す
set -u
ROOT="${1:-.}"
STOPPED='antigravity-preview-05-2026'
CURRENT='antigravity-preview-09-2026'
hits=$(grep -rnI --exclude-dir={.git,node_modules,.next,dist} -- "$STOPPED" "$ROOT" || true)
if [ -z "$hits" ]; then
echo "OK: ${STOPPED} は見つかりませんでした"
else
echo "要確認: ${STOPPED} が残っています"
echo "$hits" | awk -F: '{printf " %s:%s\n", $1, $2}'
echo "合計 $(echo "$hits" | wc -l | tr -d ' ') 箇所"
fi
echo "--- 後継名 ${CURRENT} の使用箇所"
grep -rnI --exclude-dir={.git,node_modules,.next,dist} -c -- "$CURRENT" "$ROOT" | grep -v ':0$' || echo " なし"
[ -z "$hits" ] # 残っていれば exit 1なぜこう書くのか、三点だけ補足します。-I はバイナリを飛ばすためで、画像やビルド成果物に引っかからなくなります。node_modules と .next を除くのは、依存パッケージの中身まで「要確認」にすると、本当に直すべき行が埋もれるからです。そして最後の行で終了コードを返しているので、CI に置けば、旧名が再び紛れ込んだ日に落ちてくれます。
サンプルツリーで動かした結果
.env.example、.github/workflows/nightly.yml、scripts/crontab.txt に旧名を 1 つずつ、scripts/run.py に後継名を 1 つ置いた小さなツリーで実行しました。node_modules の中にも旧名を 1 つ置いてあります。
要確認: antigravity-preview-05-2026 が残っています
./.env.example:1
./.github/workflows/nightly.yml:4
./scripts/crontab.txt:1
合計 3 箇所
--- 後継名 antigravity-preview-09-2026 の使用箇所
./scripts/run.py:1
exit=1旧名は 3 箇所、node_modules 内の 1 つは除外され、終了コードは 1 でした。これは私が用意した架空の配置での結果であり、皆さまの環境で同じ数が出るという意味ではありません。
リポジトリの外は、別の確認が要ります
crontab やタスクスケジューラの中身は、grep では届きません。次のように、登録内容を書き出してから同じ検索を当てます。
crontab -l 2>/dev/null | grep -n 'antigravity-preview-05-2026' || echo "crontab: なし"Windows のタスクスケジューラや、クラウド側のスケジューラ設定は、画面かエクスポートした定義ファイルで見ることになります。ここは手作業が残ります。
数えて終わりにしない
後継名の使用箇所を数えているのは、旧名がゼロになったことだけでは「どれも正しく動いている」とは言えないからです。旧名を消した結果、モデル名を渡す行そのものが消えていた、ということも起こり得ます。旧名がゼロで、後継名が想定した数だけある——この二つがそろって、ようやく置換が終わったと見なせます。
旧名が消えたことだけでなく、想定した場所に新しい名前があることまで確かめます。 この線引きを、今回の棚卸しの原則にしております。
次の一歩として、まずは手元のリポジトリで audit.sh を一度だけ走らせ、出てきた行を眺めていただければと思います。crontab のような外側は、その後で構いません。