mcpField
D
dependency-updater

dependency-updater

github.com/connorads開発18249 回インストール1 日前に更新
リポジトリ

dependency-updater について

dependency-updater は、複数の言語のプロジェクト向けに依存関係を管理するスキルです。プロジェクトを検出して更新、セキュリティ監査、問題の診断を支援し、メジャー更新は個別の確認を求めます。

主な機能

  1. 01プロジェクト種別とパッケージマネージャーの検出
  2. 02古い依存関係の確認と更新
  3. 03バージョン変更に応じた更新処理
  4. 04セキュリティ脆弱性の監査
  5. 05依存関係の競合や障害の診断

活用シーン

  1. 01プロジェクト内の古いパッケージの確認
  2. 02パッチ・マイナー更新の自動適用
  3. 03メジャー更新を個別に確認
  4. 04依存関係の競合やセキュリティ問題の調査

インストール

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

$npx skills add https://github.com/connorads/dotfiles --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セキュリティ監査

コメント