absolute-upgrade について
absolute-upgradeは、npm、Python、Goプロジェクト向けの依存関係更新スキルです。変更リスクに応じて段階的に更新し、プロジェクトのテストとビルドで検証します。
主な機能
- 01複数エコシステムの古い依存関係を検出
- 02バージョン変更のリスク別に分類
- 03メジャー更新を一件ずつ処理
- 04ロックファイルを再生成してテストとビルドを実行
- 05停止した更新を戻してエラーを報告
活用シーン
- 01定期的な依存関係の更新
- 02非推奨パッケージの置き換え
- 03メジャーバージョン移行の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ maddhruv/ absolute --skill absolute-upgradeインストール後、Claude Code で/absolute-upgradeを入力して読み込まれたか確認します。
同梱ファイルREADME.mdreferences/health-engine.md
詳細
最初の応答は⬆️の絵文字で始めてください。
アップグレードを徹底する
依存関係を安全に最新の状態にします。リスクの高いものから順に段階的に適用し、各段階でテストを通します。
単なる npm update ではありません。古い依存関係や脆弱性のある依存関係を、影響範囲に応じて分類します
(パッチ/マイナー → 安全なウェーブ、メジャー/破壊的変更 → 変更履歴を確認し、1つずつ承認を経て適用)。段階的に適用し、
プロジェクト独自のテストスイートで検証します。
共通エンジン references/health-engine.md を実行します。検出 → スキャン → トリアージ → 修正 → 検証 → レポートのループと安全性の契約については、そちらをお読みください。このファイルでは、依存関係のアップグレード固有の内容のみを扱います。
使用する場面
- 定期的に「依存関係を最新にする」「依存関係をアップグレードする」場合。
- 特定のアップグレード:「React を 19 にアップグレードする」「非推奨の X パッケージを置き換える」。
npm outdatedや Dependabot の未対応項目を、40件もの個別 PR を作らずに解消する場合。
対象外:新しい依存関係の追加(これはwork/機能追加の判断事項です)、または脆弱性の監査が目的の場合 → /absolute audit を使用してください(CVE のトリアージを行います。upgrade はバージョンを更新します)。
スキャン対象
エコシステムごとに、古い依存関係を現在 → 希望 → 最新のバージョンと、更新の種類を含めて一覧表示します。
| エコシステム | 古い依存関係の検出 | ロックファイル/マニフェスト |
|---|---|---|
| npm | npm outdated --json | package-lock.json |
| pnpm | pnpm outdated --format json | pnpm-lock.yaml |
| yarn | yarn outdated --json | yarn.lock |
| Python(pip) | pip list --outdated --format=json | requirements*.txt |
| Python(poetry/uv) | poetry show --outdated / uv pip list --outdated | pyproject.toml + lock |
| Go | go list -u -m -json all | go.mod / go.sum |
さらに、非推奨であることが判明している依存関係、同じパッケージの重複/複数バージョン、直接依存か間接依存かも確認します(アップグレード対象は直接依存のみで、間接依存はその依存元に従います)。
リスクのランク付け(トリアージ)
semver の更新幅に応じて、アップグレード計画を安全性の高いウェーブから順に分類します。
| ウェーブ | 更新幅 | デフォルトの対応 |
|---|---|---|
| 1 | パッチ(x.y.Z) | まとめて適用し、すぐに修正 |
| 2 | マイナー(x.Y.z) | パッケージファミリーごとにまとめて適用し、すぐに修正 |
| 3 | メジャー(X.y.z)/1.0 未満のマイナー | 1つずつ、承認を経て適用 — まず変更履歴/移行ガイドを読み、破壊的変更を一覧表示 |
メジャーアップグレードごとに、破壊的変更を確認し(CHANGELOG、リリースノート、パッケージに含まれる場合は codemod)、変更された API を使用する箇所を洗い出し、適用前に移行内容を明示します。peer dependency の競合は、原因となる依存関係と同じウェーブで解決します。
修正と検証
- ウェーブを適用し、ロックファイルを再生成して、プロジェクトの全テストとビルドを実行します(インストールが成功しただけではアップグレード成功とはいえません)。
- メジャーアップグレードでは、バージョン更新と必要なコード移行を同じウェーブで適用します。そうしないとビルドが失敗します。利用可能な場合は、パッケージの codemod を使用してください。
- 妥当な範囲の作業でウェーブを成功させられない場合は、元に戻し、エラーとともにブロックされた項目として報告し、成功したウェーブは維持します。実際の競合を隠すために、
--force/--legacy-peer-depsを使ってはいけません。
注意点
- ロックファイルだけの「アップグレード」。 マニフェストを更新しても、ロックファイルを再生成してコミットしなければ、未テストの間接依存バージョンをリリースしてしまいます。必ず再生成してください。
- メジャーアップグレードをパッチ更新とまとめる。 破壊的変更が1つでもあるとウェーブ全体が失敗し、どの変更が原因か分かりにくくなります。メジャーアップグレードは必ず単独で適用します。
- インストール成功 ≠ プロジェクトの成功。
npm installが成功しても何も証明されません。テストを実行してください。 - 失敗を回避するためのバージョン固定。 更新で問題が起きた場合は、修正するか延期してください。問題を黙って回避するために依存関係ツリーを固定してはいけません。
関連コマンド
/absolute audit— 目的が脆弱性の修正なら、まずはこちらから始めてください。バージョン更新のためにこちらへ案内されます。/absolute deflake— 不安定なテストによって、アップグレードが本当に成功したかどうかが分かりにくくなることがあります。/absolute work— アップグレードに実際の機能レベルの移行作業が必要な場合は、引き継いでください。