ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-08-25上級

無視された設定キーが CI を通り抜ける経路と、その塞ぎ方

設定ファイルに書いたキーが無警告で無視されることがあります。tsc・ESLint・wrangler・npm・vitest の実測で挙動を3層に分け、効いているかを挙動で確かめるプローブと、警告を失敗へ昇格させるゲートの作り方をまとめました。

antigravity444ci4configvitest3cloudflare-workers9

プレミアム記事

Cloudflare Workers へのデプロイが、ある日突然「エントリポイントが見つからない」で止まりました。wrangler.toml を開くと main は確かに書いてあります。スペルも合っています。パスも存在します。それでも通りません。

原因は書き方ではなく、書いた場所でした。[build] セクションを追記したあとに main を足していたため、TOML の規則どおり mainbuild テーブルの中の項目として読まれていたのです。ファイルの上では正しく、パーサから見ると別物でした。

このときエラーメッセージは「main を書き足してください」と案内してきます。すでに書いてあるものを書けと言われる状況ほど、原因から遠ざかる指示はありません。

個人開発では、こうした一件が半日を持っていきます。そして厄介なのは、同じ種類の食い違いが、もっと静かな形で日常に紛れ込んでいることです。

書いた場所で意味が変わる、という失敗の再現

先ほどの構成を最小化して再現しました。wrangler 4.125.0 で確認しています。

name = "probe-order"
compatibility_date = "2025-05-05"
 
[build]
command = "node scripts/stamp.mjs"
 
main = "index.js"
compatibility_flags = ["nodejs_compat"]

これを dry-run に通すと、次の2つが同時に出ます。

▲ [WARNING] Processing wrangler.order.toml configuration:
    - Unexpected fields found in build field: "main","compatibility_flags"
✘ [ERROR] Missing entry-point to Worker script or to assets directory

警告のほうが真犯人を名指ししています。ところが視線は赤い ERROR に吸い寄せられ、main を疑わない方向へ進みます。私自身、このとき最初に見たのはエントリポイントのパスでした。

対処そのものは単純で、トップレベルの項目を [build] より前へ移すだけです。復旧してから残ったのは、「設定ファイルは、書いた内容と読まれた内容がずれても教えてくれないことがある」という感触でした。

誤った設定キーは、3つの層に分かれる

その感触を確かめるため、手元でよく使うツールに同じ種類の誤りを入れて、反応を並べました。実行環境は Node 22.23.2 の Linux、2026年8月25日時点の各最新系です。

ツール入れた誤り反応終了コード
TypeScript 5.9.3strictNullCheck(正: strictNullChecks)TS5025 で停止。正しい候補まで提示2
TypeScript 5.9.3include を compilerOptions の中へTS5023 で停止2
ESLint 9.39.5(flat config)未知のキーを2つ追加ConfigError で即中断2
Wrangler 4.125.0compatability_flags(綴り違い)WARNING を出すが処理は続行0
npm 10.9.8depedencies(綴り違い)無警告。「up to date」と表示して0パッケージ0
Vitest 3.2.7無効キーを3つ同時に追加無警告。全テスト通過0

同じ「1文字の綴り違い」でも、止まるものと、素通りするものへ綺麗に割れました。試した6件のうち、終了コード 0 で通過したものが3件、ちょうど 50% あります。半分は、CI から見れば成功として記録される誤りだったということです。

npm の例が個人的にはいちばん堪えました。dependenciesdepedencies と打ち間違えた package.json に対して npm install は 327ms で完了し、「up to date」と表示し、終了コード 0 を返し、node_modules を作りませんでした。依存が1つも入っていない状態が、成功として記録されます。

同じファイルで scriptsscripst と間違えた場合は違いました。npm run build が「Missing script: build」で即座に落ちます。呼び出す側があるキーは声を上げ、宣言するだけのキーは黙る、という分かれ方です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
エージェントが書き換えた設定が本当に効いているかを、ファイルを読み比べるのではなく挙動で確かめられるようになる
無警告で無視される設定変更が本番へ流れる前に止める、数行のゲートを自分のリポジトリへ置けるようになる
手元のツールが「落ちる・警告する・黙る」のどれに属するかを見分け、プローブを置く場所を数か所に絞り込めるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

アプリ開発2026-06-30
Antigravity が書いたテストが全部グリーンなのに同じバグが再発するとき — 空回りするアサーションを計測する運用メモ
AI に書かせたテストがすべて通り、カバレッジも高いのに本番で同じ不具合が戻ってくる。原因はモック過多とトートロジー的なアサーションです。ミューテーションテストを正解とし、テストが実際に何を守っているかを実測して運用で立て直すメモです。
アプリ開発2026-04-28
Antigravity で SaaS を丸ごと作る — Stripe 課金・認証・デプロイを1つのIDEで完結させる
Antigravity IDE だけで SaaS プロダクトを構築する全工程を解説します。Supabase認証、Stripe課金、Cloudflare Workersデプロイまで、IDEを離れずに完結させる実践ガイドです。
アプリ開発2026-04-27
AntigravityでWebhook受信エンドポイントを取りこぼしなく作る実践パターン
Stripe の Webhook が 500 で再送され続けていた失敗を起点に、取りこぼさない受信エンドポイントの作り方をまとめました。Next.js + Cloudflare Workers の最小実装、署名検証の3つの落とし穴、KV による冪等性の保証を解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →