mcpField
D
dependency-updater

dependency-updater

github.com/softaworks開発2.6k4.0k 回インストール34 週間前に更新
リポジトリ

dependency-updater について

複数言語のプロジェクト向け依存関係管理スキルです。プロジェクト形式を検出し、パッチ・マイナー更新を適用し、メジャー更新前に確認します。

主な機能

  1. 01言語とパッケージマネージャーの検出
  2. 02古いパッケージの確認
  3. 03パッチ・マイナー更新の適用
  4. 04メジャー更新前の確認
  5. 05依存関係のセキュリティ監査
  6. 06依存関係の競合診断

活用シーン

  1. 01プロジェクトの依存関係更新
  2. 02パッケージの脆弱性確認
  3. 03バージョン競合の調査
  4. 04モノレポの依存関係更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/softaworks/agent-toolkit --skill dependency-updater

インストール後、Claude Code で/dependency-updaterを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
scripts/
check-tool.sh
run-taze.sh

詳細

Dependency Updater

自動検出と安全なアップデートを備えた、あらゆる言語向けのスマートな依存関係管理。


クイックスタート

update my dependencies

このスキルはプロジェクトの種類を自動検出し、残りの処理を行います。


トリガー

トリガー例
依存関係を更新"update dependencies", "update deps"
古いパッケージを確認"check for outdated packages"
依存関係の問題を修正"fix my dependency problems"
セキュリティ監査"audit dependencies for vulnerabilities"
依存関係を診断"diagnose dependency issues"

サポートされている言語

言語パッケージファイル更新ツール監査ツール
Node.jspackage.jsontazenpm audit
Pythonrequirements.txt, pyproject.tomlpip-reviewsafety, pip-audit
Gogo.modgo get -ugovulncheck
RustCargo.tomlcargo updatecargo audit
RubyGemfilebundle updatebundle audit
Javapom.xml, build.gradlemvn versions:*mvn dependency:*
.NET*.csprojdotnet outdateddotnet list package --vulnerable

クイックリファレンス

更新の種類バージョン変更アクション
固定^ や ~ がないスキップ(意図的に固定されている)
PATCHx.y.z → x.y.Z自動適用
MINORx.y.z → x.Y.0自動適用
MAJORx.y.z → X.0.0ユーザーに個別に確認

ワークフロー

User Request
    │
    ▼
┌─────────────────────────────────────────────────────┐
│ Step 1: DETECT PROJECT TYPE                         │
│ • Scan for package files (package.json, go.mod...) │
│ • Identify package manager                          │
├─────────────────────────────────────────────────────┤
│ Step 2: CHECK PREREQUISITES                         │
│ • Verify required tools are installed               │
│ • Suggest installation if missing                   │
├─────────────────────────────────────────────────────┤
│ Step 3: SCAN FOR UPDATES                            │
│ • Run language-specific outdated check              │
│ • Categorize: MAJOR / MINOR / PATCH / Fixed         │
├─────────────────────────────────────────────────────┤
│ Step 4: AUTO-APPLY SAFE UPDATES                     │
│ • Apply MINOR and PATCH automatically               │
│ • Report what was updated                           │
├─────────────────────────────────────────────────────┤
│ Step 5: PROMPT FOR MAJOR UPDATES                    │
│ • AskUserQuestion for each MAJOR update             │
│ • Show current → new version                        │
├─────────────────────────────────────────────────────┤
│ Step 6: APPLY APPROVED MAJORS                       │
│ • Update only approved packages                     │
├─────────────────────────────────────────────────────┤
│ Step 7: FINALIZE                                    │
│ • Run install command                               │
│ • Run security audit                                │
└─────────────────────────────────────────────────────┘

言語別のコマンド

Node.js (npm/yarn/pnpm)
# Check prerequisites
scripts/check-tool.sh taze "npm install -g taze"

# Scan for updates
taze

# Apply minor/patch
taze minor --write

# Apply specific majors
taze major --write --include pkg1,pkg2

# Monorepo support
taze -r  # recursive

# Security
npm audit
npm audit fix
Python
# Check outdated
pip list --outdated

# Update all (careful!)
pip-review --auto

# Update specific
pip install --upgrade package-name

# Security
pip-audit
safety check
Go
# Check outdated
go list -m -u all

# Update all
go get -u ./...

# Tidy up
go mod tidy

# Security
govulncheck ./...
Rust
# Check outdated
cargo outdated

# Update within semver
cargo update

# Security
cargo audit
Ruby
# Check outdated
bundle outdated

# Update all
bundle update

# Update specific
bundle update --conservative gem-name

# Security
bundle audit
Java (Maven)
# Check outdated
mvn versions:display-dependency-updates

# Update to latest
mvn versions:use-latest-releases

# Security
mvn dependency:tree
mvn dependency-check:check
.NET
# Check outdated
dotnet list package --outdated

# Update specific
dotnet add package PackageName

# Security
dotnet list package --vulnerable

診断モード

依存関係が壊れている場合は、診断を実行します:

よくある問題と修正方法
問題症状修正方法
バージョンの競合"Cannot resolve dependency tree"クリーンインストールを行い、overrides/resolutions を使用
ピア依存関係"Peer dependency not satisfied"必要なピアバージョンをインストール
セキュリティの脆弱性npm audit で問題が表示されるnpm audit fix を実行するか、手動で更新
未使用の依存関係バンドルが肥大化しているdepcheck(Node)またはそれに相当するツールを実行
重複した依存関係複数のバージョンがインストールされているnpm dedupe またはそれに相当するコマンドを実行
緊急時の修正
# Node.js - Nuclear reset
rm -rf node_modules package-lock.json
npm cache clean --force
npm install

# Python - Clean virtualenv
rm -rf venv
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Go - Reset modules
rm go.sum
go mod tidy

セキュリティ監査

どのプロジェクトに対しても、セキュリティチェックを実行します:

# Node.js
npm audit
npm audit --json | jq '.metadata.vulnerabilities'

# Python
pip-audit
safety check

# Go
govulncheck ./...

# Rust
cargo audit

# Ruby
bundle audit

# .NET
dotnet list package --vulnerable
重大度ごとの対応
重大度アクション
Critical直ちに修正
High24時間以内に修正
Moderate1週間以内に修正
Low次のリリースで修正

アンチパターン

避けるべきこと理由代わりに
固定されたバージョンを更新する意図的に固定されているスキップする
MAJOR を自動適用する破壊的変更を含むユーザーに確認する
MAJOR の確認をまとめて行う文脈が失われる個別に確認する
ロックファイルをスキップする再現不可能なビルドになるロックファイルを必ずコミットする
セキュリティアラートを無視する脆弱性が残る重大度に応じて対処する

検証チェックリスト

更新後:

  • 更新のスキャンがエラーなく完了した
  • MINOR/PATCH の更新が自動適用された
  • MAJOR の更新は個別に確認を求められた
  • 固定バージョンは変更されていない
  • ロックファイルが更新された
  • インストールコマンドが実行された
  • セキュリティ監査に合格した(または問題が記録されている)

詳細解説: プロジェクトの検出

スキルはパッケージファイルをスキャンして、プロジェクトの種類を自動検出します。

検出されたファイル言語パッケージマネージャー
package.jsonNode.jsnpm/yarn/pnpm
requirements.txtPythonpip
pyproject.tomlPythonpip/poetry
PipfilePythonpipenv
go.modGogo modules
Cargo.tomlRustcargo
GemfileRubybundler
pom.xmlJavaMaven
build.gradleJava/KotlinGradle
*.csproj.NETdotnet

モノレポでは検出順序が重要です:

  1. まずカレントディレクトリを確認する
  2. 次にワークスペース/モノレポのパターンを確認する
  3. 該当する場合は再帰的な実行を提案する
詳細解説: taze を使った Node.js
前提条件
# Install taze globally (recommended)
npm install -g taze

# Or use npx
npx taze
スマートアップデートの流れ
# 1. Scan all updates
taze

# 2. Apply safe updates (minor + patch)
taze minor --write

# 3. For each major, prompt user:
#    "Update @types/node from ^20.0.0 to ^22.0.0?"
#    If yes, add to approved list

# 4. Apply approved majors
taze major --write --include approved-pkg1,approved-pkg2

# 5. Install
npm install  # or pnpm install / yarn
自動承認リスト

メジャーバージョンの更新が頻繁に行われるものの、後方互換性のあるパッケージがあります:

パッケージ理由
lucide-reactアイコンライブラリ。メジャー更新は追加的な変更のみ
@types/*型定義。通常は安全
詳細解説: バージョン戦略
セマンティックバージョニング
MAJOR.MINOR.PATCH (e.g., 2.3.1)

MAJOR: Breaking changes - requires code changes
MINOR: New features - backward compatible
PATCH: Bug fixes - backward compatible
範囲指定子
指定子意味例
^1.2.3マイナー + パッチ可>=1.2.3 <2.0.0
~1.2.3パッチのみ>=1.2.3 <1.3.0
1.2.3完全一致(固定)1.2.3 のみ
>=1.2.3以上>=1.2.3 を満たす任意のバージョン
*任意最新版(危険)
推奨戦略
{
  "dependencies": {
    "critical-lib": "1.2.3",      // Exact for critical
    "stable-lib": "~1.2.3",       // Patch only for stable
    "modern-lib": "^1.2.3"        // Minor OK for active
  }
}
詳細解説: 競合の解決
Node.js の競合

診断:

npm ls package-name      # See dependency tree
npm explain package-name # Why installed
yarn why package-name    # Yarn equivalent

overrides による解決:

// package.json
{
  "overrides": {
    "lodash": "^4.18.0"
  }
}

resolutions による解決(Yarn):

{
  "resolutions": {
    "lodash": "^4.18.0"
  }
}
Python の競合

診断:

pip check
pipdeptree -p package-name

解決:

# Use virtual environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Or use constraints
pip install -c constraints.txt -r requirements.txt

スクリプトリファレンス

スクリプト目的
scripts/check-tool.shツールがインストールされているか確認する
scripts/run-taze.sh適切なフラグを付けて taze を実行する

関連ツール

ツール言語目的
tazeNode.jsスマートな依存関係の更新
npm-check-updatesNode.jstaze の代替
pip-reviewPython対話形式の pip 更新
cargo-editRustCargo の依存関係管理
bundler-auditRubyセキュリティ監査

コメント