mcpField
D
dependency-analyzer

dependency-analyzer

github.com/oimiragieo開発4480 回インストール17 週間前に更新
リポジトリ

dependency-analyzer について

プロジェクトの依存関係を分析するスキルです。古いパッケージや既知の脆弱性を確認し、メジャーバージョン変更の影響を評価して、更新と移行の指針を作成します。

主な機能

  1. 01依存関係ファイルとバージョン制約を特定
  2. 02古い依存関係と更新候補を確認
  3. 03semverと破壊的変更を評価
  4. 04既知のセキュリティ脆弱性を確認
  5. 05更新計画と移行案を作成

活用シーン

  1. 01依存関係の状態を定期的に確認
  2. 02メジャーバージョン更新を計画
  3. 03脆弱性のあるパッケージを優先対応
  4. 04段階的な更新計画を準備

インストール

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

$npx skills add https://github.com/oimiragieo/agent-studio --skill dependency-analyzer

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

同梱ファイル

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

commands/
dependency-analyzer.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
dependency-analyzer.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

詳細

依存関係アナライザースキル

依存関係アナライザースキル - プロジェクトの依存関係を分析し、古くなったパッケージを検出し、破壊的変更を特定して、安全な更新方法を提案します。 - 依存関係の健全性を分析する - 依存関係の更新を計画する - セキュリティ上の脆弱性を検出する - 破壊的変更を特定する - 互換性を検証する
ステップ 1:依存関係ファイルを特定する

依存関係ファイルを探します。

  • package.json(Node.js)
  • requirements.txt(Python)
  • go.mod(Go)
  • Cargo.toml(Rust)
  • pom.xml(Java/Maven)
ステップ 2:依存関係を分析する

依存関係を調査します。

  • 依存関係ファイルを読み取る
  • バージョンを確認する
  • 古くなったパッケージを特定する
  • バージョン制約を記録する
ステップ 3:セマンティックバージョニング分析

セマンティックバージョニング(semver)を使ってバージョン番号を分析します。

  1. バージョン番号を解析する:

    • バージョン文字列から major.minor.patch を抽出する
    • バージョン範囲(^、~、>= など)を処理する
    • 固定バージョンと範囲指定バージョンを特定する
  2. メジャーバージョンの更新を検出する:

    • 現在のバージョンと入手可能な最新バージョンを比較する
    • メジャーバージョンの変更(例:1.x.x -> 2.x.x)を特定する
    • メジャーアップデートには破壊的変更の可能性があることを警告する
  3. 破壊的変更について変更履歴を確認する:

    • メジャーバージョンの更新の場合:Web 検索(Exa/WebFetch)を開始して、破壊的変更を調査する
    • 変更履歴で「BREAKING CHANGE」の記載を探す
    • 移行ガイドを確認する
    • リリースノートで破壊的変更を確認する
    • 見つかった具体的な破壊的変更を記録する
  4. セマンティックバージョニングのルール:

    • メジャーバージョン(X.0.0):破壊的変更が予想され、コード変更が必要です
    • マイナーバージョン(0.X.0):新機能が追加され、後方互換性があります
    • パッチバージョン(0.0.X):バグが修正され、後方互換性があります
  5. 破壊的変更の検出:

    • 変更履歴の項目を解析して、破壊的変更の兆候を探す
    • 非推奨の API を特定する
    • 削除された機能を確認する
    • 移行に必要な対応を記録する
    • 破壊的変更レポートを生成する
ステップ 4:更新を確認する

利用可能な更新を確認します。

  • パッケージレジストリに問い合わせる
  • 現在のバージョンと最新バージョンを比較する
  • メジャー/マイナー/パッチの更新を特定する
  • セマンティックバージョニング分析を適用する
  • 破壊的変更について警告する
ステップ 5:セキュリティ監査

脆弱性を確認します。

  • 既知の脆弱性をスキャンする
  • セキュリティ勧告を確認する
  • リスクの高いパッケージを特定する
  • セキュリティ更新を提案する
ステップ 6:レポートを生成する

依存関係レポートを作成します。

  • 古くなったパッケージを一覧表示する
  • 破壊的変更を特定する
  • 更新方法を提案する
  • 移行手順を提示する </execution_process>
**DevOps エージェントとの連携**: - 依存関係の更新を管理する - 更新方法を実施する - 互換性を検証する

セキュリティアーキテクトエージェントとの連携:

  • セキュリティ上の脆弱性を確認する
  • セキュリティ更新を検証する
  • コンプライアンスを確保する

<best_practices>

  1. 定期的な分析:依存関係を定期的に分析します
  2. セキュリティを最優先:セキュリティ更新を優先します
  3. 更新をテスト:更新後は必ずテストします
  4. 段階的な更新:少しずつ更新します
  5. 変更を記録:更新に関する判断を記録します </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

中断を想定してください。コンテキストがリセットされる場合があります。メモリに記録されていなければ、実行されなかったものとして扱います。

コメント