mcpField
D
dependency-doctor

dependency-doctor

github.com/patricio0312rev開発63249 回インストール42 週間前に更新
リポジトリ

dependency-doctor について

dependency-doctorは、開発者向けの依存関係監査・アップグレード計画スキルです。マニフェストから脆弱性やバージョン、重複、互換性の問題を調べ、優先順位と段階的な更新案を示します。

主な機能

  1. 01一般的な依存マニフェストのスキャン
  2. 02古いパッケージや脆弱性の検出
  3. 03重複やサイズの大きい依存関係の検出
  4. 04互換性と破壊的変更リスクの評価
  5. 05深刻度に基づく問題の順位付け
  6. 06段階的な更新とバージョン制約の計画

活用シーン

  1. 01リリース前の依存関係監査
  2. 02セキュリティと保守更新の優先順位付け
  3. 03安全性を考慮したメジャーバージョン移行

インストール

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

$npx skills add https://github.com/patricio0312rev/skills --skill dependency-doctor

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

詳細

依存関係の診断

依存関係の健全性を包括的に分析し、アップグレードを計画します。

コアワークフロー

  1. マニフェストをスキャン:package.json、requirements.txt、Cargo.toml、go.mod などを分析します
  2. バージョンを確認:最新の安定版と照らし合わせて、古くなったパッケージを特定します
  3. 問題を検出:重複、セキュリティの脆弱性、非推奨のパッケージ、サイズの大きいバンドルを見つけます
  4. リスクを評価:破壊的変更とバージョンの互換性を評価します
  5. 優先順位を付ける:問題を深刻度順に並べます(セキュリティ > パフォーマンス > 保守性)
  6. アップグレードパスを生成:安全で段階的な更新計画を作成します
  7. バージョンの固定を推奨:将来の問題を防ぐためのバージョン制約を提案します

分析カテゴリ

セキュリティ問題(重大)
  • 依存関係に含まれる既知の CVE
  • メンテナンスされていないパッケージ(2 年以上更新なし)
  • セキュリティに関する勧告があるパッケージ
  • 推移的依存関係の脆弱性
古くなったパッケージ(高)
  • メジャーバージョンが遅れている(破壊的変更)
  • マイナーバージョンが遅れている(新機能)
  • パッチバージョンが遅れている(バグ修正)
重複する依存関係(中)
  • 同じパッケージの複数のバージョン
  • 機能の重複(lodash + underscore)
  • 重複を解消できるもの
サイズの大きい依存関係(中)
  • バンドルサイズが大きい(>500KB)
  • 不要なピア依存関係
  • より良い代替手段があるもの
リスクのある組み合わせ(中)
  • 互換性がないと判明しているバージョンの組み合わせ
  • 競合するピア依存関係
  • フレームワークのバージョンの不一致

レポートの構成

# Dependency Audit Report

## 🔴 Critical Security Issues (2)

- [email protected] → CVE-2021-3749 → Upgrade to 1.6.0+
- [email protected] → Prototype pollution → Upgrade to 4.17.21+

## 🟡 High Priority Updates (5)

- [email protected] → 18.2.0 (major, breaking changes)
- [email protected] → 14.1.0 (major, new features)

## 🟢 Maintenance Updates (8)

- [email protected] → 5.3.3 (patch improvements)

## 📦 Duplicates Found (3)

- moment: 2.29.1, 2.30.0 → Deduplicate to 2.30.0
- @types/node: 18.0.0, 20.0.0 → Align to 20.0.0

## 🏋️ Heavy Dependencies (2)

- moment (232KB) → Consider date-fns (12KB)
- lodash (full) → Consider lodash-es or specific imports

## Upgrade Path

### Phase 1: Security (Do First)

```bash
npm update axios lodash
npm audit fix
```
フェーズ 2:主要なフレームワーク(十分にテスト)
npm install react@18 react-dom@18
npm install next@14
# Run full test suite
フェーズ 3:マイナーアップデート(低リスク)
npm update

安全なバージョン固定の推奨

{
  "axios": "^1.6.0",
  "react": "^18.2.0",
  "typescript": "~5.3.0"
}

## Package Manager Commands

### npm
- Audit: `npm audit`
- Outdated: `npm outdated`
- Dedupe: `npm dedupe`
- Update: `npm update [package]`

### yarn
- Audit: `yarn audit`
- Outdated: `yarn outdated`
- Dedupe: `yarn dedupe`
- Upgrade: `yarn upgrade [package]`

### pnpm
- Audit: `pnpm audit`
- Outdated: `pnpm outdated`
- Dedupe: `pnpm dedupe`
- Update: `pnpm update [package]`

### pip
- Outdated: `pip list --outdated`
- Update: `pip install --upgrade [package]`
- Security: `pip-audit` or `safety check`

## Upgrade Best Practices

1. **Backup first**: Commit current state or create branch
2. **Read changelogs**: Check for breaking changes
3. **Update incrementally**: One major version at a time
4. **Test thoroughly**: Run full test suite after each update
5. **Check peer deps**: Ensure compatibility
6. **Lock files**: Commit updated lock files
7. **Monitor**: Watch for runtime issues after deployment

## Version Pinning Strategy

- **Exact**: `1.2.3` - Only for problematic packages
- **Patch**: `~1.2.3` - Safe updates (1.2.x)
- **Minor**: `^1.2.3` - Most common (1.x.x)
- **Range**: `>=1.2.3 <2.0.0` - Explicit bounds

## References

See `references/common-issues.md` for known problematic package combinations and migration guides.

コメント