◉ANTIGRAVITY LABEN
記事一覧/アプリ開発
▣ アプリ開発/2026-07-02中級

依存パッケージの更新を月イチの苦行にしない — エージェントに任せる週次アップデートのリスク分類と検証ゲート

未更新47件を前に固まった経験から、依存パッケージ更新をエージェントに任せる週次運用へ移行しました。更新を3つのリスク帯に分ける機械化スクリプト、やらないことを先に書くプレイブック、lockfile 差分を範囲で見る検証ゲートを紹介します。

antigravity461agents99dependenciesnpm5automation54ci-cd16

✦ プレミアム記事

複数の Next.js リポジトリを一人で維持していると、依存パッケージの更新は静かに溜まっていきます。私自身、ある時点で npm outdated を流したら未更新が 47 件並んでいて、しばらく画面を眺めてしまいました。月に一度「まとめて更新する日」を作って一気に上げる運用を続けていたのですが、これが一番壊れやすいやり方だったと、いまは考えています。

まとめて上げると、ビルドが落ちたときに「47 件のうちどれが原因か」の切り分けから始まります。二分探索で戻していけば特定はできますが、その時間が惜しくて更新自体を先送りする悪循環に入ります。そこで発想を変えて、更新を週次の小さな束に分割し、束ごとの判断と作業を Antigravity のエージェントに任せる形に組み替えました。今回はその分類基準・プレイブック・検証ゲートを、実際に使っている実装と一緒に紹介します。

まとめ更新が壊れやすいのは「差分の大きさ」ではなく「切り分け不能性」

最初に整理しておきたいのは、まとめ更新の何が問題かという点です。差分が大きいこと自体は、テストが通れば問題になりません。問題は、失敗したときに原因の候補が多すぎて、失敗コストが件数に比例して膨らむことです。

週次に分割する価値はここにあります。1 束あたりの更新を 5〜8 件に抑え、しかも後述のリスク分類で「同じリスク帯のものだけ」を束ねると、失敗したときの容疑者が最初から絞られています。パッチ更新だけの束が落ちたなら、ほぼ間違いなく lockfile の解決か peerDependencies の連鎖です。メジャー更新を混ぜていないので、API 変更を疑う必要がありません。

エージェントに任せる前提でも、この「束の設計」は人間側の仕事です。エージェントは束の中の作業を高速にこなしてくれますが、束の切り方を誤ると、結局まとめ更新と同じ切り分け問題に戻ります。

更新を3つのリスク帯に分ける

私は semver の差分と「そのパッケージがビルドと実行のどちらに効くか」の 2 軸で、更新を 3 帯に分けています。

リスク帯条件扱い
Tier 1(自動)patch 更新、または devDependencies の minor 更新エージェントが更新〜検証〜コミットまで無人で実施
Tier 2(半自動)dependencies の minor 更新、型定義・ビルドツールの majorエージェントが変更ログ要約と検証まで実施し、マージは人間
Tier 3(人間)フレームワーク本体(Next.js・React 等)の major、認証・決済に関わるパッケージ全般エージェントは調査メモの作成のみ。作業自体は人間が着手

ポイントは 2 つあります。まず、devDependencies と dependencies を区別することです。ESLint のプラグインが minor で上がっても本番の実行コードには影響しませんが、ランタイム側の minor は挙動が変わり得ます。次に、semver 上は小さくても「決済・認証」に触るものは無条件で Tier 3 に送ることです。Stripe の SDK は patch でも私は手動で見ます。ここで事故ると金額の桁が違うからです。

✦

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

この記事の続きを読む

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

この記事で得られること
✦溜まった依存更新をまとめて当てて壊すのではなく、semverとパッケージ種別でリスク帯に分けて週次で消化する運用を組み立てられる
✦npm outdated のJSONからリスク分類を自動化するNodeスクリプトと、エージェントに渡すプレイブックYAMLをそのまま流用できる
✦変更ログ確認の幻覚対策と lockfile 差分の検証ゲートを備えた、無人でも「壊れたら止まる」更新パイプラインを構築できる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

▣ アプリ開発2026-08-24
消えたのは中身ではなく作業ディレクトリでした — 無人で走る破壊操作を fail-closed に組み直す
無人で走らせていた掃除処理が、掃除対象の中身ではなく作業ディレクトリそのものを消しました。mkdir -p が安全弁にならなかった理由と、取得失敗を既定値で埋める書き方が破壊側の分岐を選んでいた経緯を、実際の検証出力とともに整理します。
▣ アプリ開発2026-10-08
agy CLI をコンテナで動かす前に、擬似 agy で確かめておく 3 つの安全網
Antigravity CLI(agy)を Docker や Cloud Run のジョブから呼ぶ前に、インストーラーの取りこぼし・承認待ちの固まり・終了コード 0 の空振りを、擬似 agy で再現して潰します。公式 docs の記述と、手元で実行した結果だけを根拠に組み立てた手順です。
▣ アプリ開発2026-09-10
iOS 27 の配信日が決まってから、私が最初に grep したのは AGENTS.md でした
iOS 27 と iPadOS 27 の配信は9月14日です。版数の文字列はソースだけでなく、エージェントが読む設定ファイルにも残ります。両方を数えるスクリプトと、keyword 検索では拾えない一行の話を書き残します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます