dependency-analyzer について
プロジェクトの依存関係を分析するスキルです。古いパッケージや既知の脆弱性を確認し、メジャーバージョン変更の影響を評価して、更新と移行の指針を作成します。
主な機能
- 01依存関係ファイルとバージョン制約を特定
- 02古い依存関係と更新候補を確認
- 03semverと破壊的変更を評価
- 04既知のセキュリティ脆弱性を確認
- 05更新計画と移行案を作成
活用シーン
- 01依存関係の状態を定期的に確認
- 02メジャーバージョン更新を計画
- 03脆弱性のあるパッケージを優先対応
- 04段階的な更新計画を準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill dependency-analyzerインストール後、Claude Code で/dependency-analyzerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/dependency-analyzer.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/dependency-analyzer.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
依存関係アナライザースキル
依存関係アナライザースキル - プロジェクトの依存関係を分析し、古くなったパッケージを検出し、破壊的変更を特定して、安全な更新方法を提案します。 - 依存関係の健全性を分析する - 依存関係の更新を計画する - セキュリティ上の脆弱性を検出する - 破壊的変更を特定する - 互換性を検証するステップ 1:依存関係ファイルを特定する
依存関係ファイルを探します。
package.json(Node.js)requirements.txt(Python)go.mod(Go)Cargo.toml(Rust)pom.xml(Java/Maven)
ステップ 2:依存関係を分析する
依存関係を調査します。
- 依存関係ファイルを読み取る
- バージョンを確認する
- 古くなったパッケージを特定する
- バージョン制約を記録する
ステップ 3:セマンティックバージョニング分析
セマンティックバージョニング(semver)を使ってバージョン番号を分析します。
-
バージョン番号を解析する:
- バージョン文字列から major.minor.patch を抽出する
- バージョン範囲(^、~、>= など)を処理する
- 固定バージョンと範囲指定バージョンを特定する
-
メジャーバージョンの更新を検出する:
- 現在のバージョンと入手可能な最新バージョンを比較する
- メジャーバージョンの変更(例:1.x.x -> 2.x.x)を特定する
- メジャーアップデートには破壊的変更の可能性があることを警告する
-
破壊的変更について変更履歴を確認する:
- メジャーバージョンの更新の場合:Web 検索(Exa/WebFetch)を開始して、破壊的変更を調査する
- 変更履歴で「BREAKING CHANGE」の記載を探す
- 移行ガイドを確認する
- リリースノートで破壊的変更を確認する
- 見つかった具体的な破壊的変更を記録する
-
セマンティックバージョニングのルール:
- メジャーバージョン(X.0.0):破壊的変更が予想され、コード変更が必要です
- マイナーバージョン(0.X.0):新機能が追加され、後方互換性があります
- パッチバージョン(0.0.X):バグが修正され、後方互換性があります
-
破壊的変更の検出:
- 変更履歴の項目を解析して、破壊的変更の兆候を探す
- 非推奨の API を特定する
- 削除された機能を確認する
- 移行に必要な対応を記録する
- 破壊的変更レポートを生成する
ステップ 4:更新を確認する
利用可能な更新を確認します。
- パッケージレジストリに問い合わせる
- 現在のバージョンと最新バージョンを比較する
- メジャー/マイナー/パッチの更新を特定する
- セマンティックバージョニング分析を適用する
- 破壊的変更について警告する
ステップ 5:セキュリティ監査
脆弱性を確認します。
- 既知の脆弱性をスキャンする
- セキュリティ勧告を確認する
- リスクの高いパッケージを特定する
- セキュリティ更新を提案する
ステップ 6:レポートを生成する
依存関係レポートを作成します。
- 古くなったパッケージを一覧表示する
- 破壊的変更を特定する
- 更新方法を提案する
- 移行手順を提示する </execution_process>
セキュリティアーキテクトエージェントとの連携:
- セキュリティ上の脆弱性を確認する
- セキュリティ更新を検証する
- コンプライアンスを確保する
<best_practices>
- 定期的な分析:依存関係を定期的に分析します
- セキュリティを最優先:セキュリティ更新を優先します
- 更新をテスト:更新後は必ずテストします
- 段階的な更新:少しずつ更新します
- 変更を記録:更新に関する判断を記録します </best_practices>
# Dependency Health Report
## Summary
- Total Dependencies: 45
- Outdated: 12
- Vulnerable: 3
- Up to Date: 30
## Outdated Packages
- react: 18.0.0 -> 18.2.0 (minor update)
- next: 13.4.0 -> 14.0.0 (major update - breaking changes)
- typescript: 5.0.0 -> 5.3.0 (patch update)
## Security Vulnerabilities
- lodash: 4.17.20 (CVE-2021-23337) - Update to 4.17.21
- axios: 0.21.1 (CVE-2021-3749) - Update to 1.6.0
## Update Recommendations
1. Update patch versions (safe)
2. Review minor updates (low risk)
3. Plan major updates (breaking changes)
</formatting_example>
<formatting_example> 更新計画
# Dependency Update Plan
## Phase 1: Patch Updates (Safe)
- Update lodash: 4.17.20 -> 4.17.21
- Update typescript: 5.0.0 -> 5.3.0
## Phase 2: Minor Updates (Low Risk)
- Update react: 18.0.0 -> 18.2.0
- Update @types/node: 20.0.0 -> 20.10.0
## Phase 3: Major Updates (Breaking Changes)
- Update next: 13.4.0 -> 14.0.0
- Breaking changes: [List]
- Migration steps: [Steps]
- Testing required: [Tests]
</formatting_example>
**コマンドの例**:# Analyze dependencies
Analyze dependencies for this project
# Check for updates
Check for dependency updates
# Security audit
Perform security audit of dependencies
# Generate update plan
Generate update plan for major version updates
</usage_example>
ルール
- まず、必ずセキュリティ上の脆弱性を確認する
- メジャーアップデートの前に、破壊的変更を調査する
- 依存関係を更新した後は、十分にテストする
メモリプロトコル(必須)
開始前:
cat .claude/context/memory/learnings.md
完了後:
- 新しいパターン ->
.claude/context/memory/learnings.md - 問題の発見 ->
.claude/context/memory/issues.md - 判断の決定 ->
.claude/context/memory/decisions.md
中断を想定してください。コンテキストがリセットされる場合があります。メモリに記録されていなければ、実行されなかったものとして扱います。
コメント
Markdown 対応