dependency-doctor について
dependency-doctorは、開発者向けの依存関係監査・アップグレード計画スキルです。マニフェストから脆弱性やバージョン、重複、互換性の問題を調べ、優先順位と段階的な更新案を示します。
主な機能
- 01一般的な依存マニフェストのスキャン
- 02古いパッケージや脆弱性の検出
- 03重複やサイズの大きい依存関係の検出
- 04互換性と破壊的変更リスクの評価
- 05深刻度に基づく問題の順位付け
- 06段階的な更新とバージョン制約の計画
活用シーン
- 01リリース前の依存関係監査
- 02セキュリティと保守更新の優先順位付け
- 03安全性を考慮したメジャーバージョン移行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ patricio0312rev/ skills --skill dependency-doctorインストール後、Claude Code で/dependency-doctorを入力して読み込まれたか確認します。
詳細
依存関係の診断
依存関係の健全性を包括的に分析し、アップグレードを計画します。
コアワークフロー
- マニフェストをスキャン:package.json、requirements.txt、Cargo.toml、go.mod などを分析します
- バージョンを確認:最新の安定版と照らし合わせて、古くなったパッケージを特定します
- 問題を検出:重複、セキュリティの脆弱性、非推奨のパッケージ、サイズの大きいバンドルを見つけます
- リスクを評価:破壊的変更とバージョンの互換性を評価します
- 優先順位を付ける:問題を深刻度順に並べます(セキュリティ > パフォーマンス > 保守性)
- アップグレードパスを生成:安全で段階的な更新計画を作成します
- バージョンの固定を推奨:将来の問題を防ぐためのバージョン制約を提案します
分析カテゴリ
セキュリティ問題(重大)
- 依存関係に含まれる既知の 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.
コメント
Markdown 対応