mcpField
B
bump-deps

bump-deps

github.com/casper-studios開発15281 回インストール5 日前に更新
リポジトリ

bump-deps について

bump-depsは、JavaScript、TypeScript、Pythonプロジェクトの開発者向けに、古い依存関係の分析と安全な更新を支援するスキルです。プロジェクトに応じてパッケージマネージャーを選び、重要な更新の破壊的変更を調べ、移行計画とPR概要を用意して、確認後にPRを作成します。

主な機能

  1. 01プロジェクトに応じたパッケージマネージャー検出
  2. 02古い依存関係の一覧表示
  3. 03重要な更新の破壊的変更分析
  4. 04移行計画とPR概要の作成
  5. 05ユーザー確認後のPR作成

活用シーン

  1. 01プロジェクトの古い依存関係の確認
  2. 02メジャー更新に伴う移行リスクの評価
  3. 03依存関係更新のPR準備と作成

インストール

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

$npx skills add https://github.com/casper-studios/casper-marketplace --skill bump-deps

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

同梱ファイル

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

assets/
pull-request-template.md
references/
pnpm.md
uv.md

詳細

依存関係の更新

古くなった依存関係を分析し、破壊的変更を検出しながら安全にアップグレードします。

ワークフロー

  1. 現在のディレクトリに基づいてパッケージマネージャーを検出します。

    • frontend/ ディレクトリ内にいる場合、または TypeScript/JavaScript を扱っている場合は、pnpm リファレンスを使用します。
    • backend/ ディレクトリ内にいる場合、または Python を扱っている場合は、uv リファレンスを使用します。
  2. リファレンスに記載されたパッケージマネージャー固有のコマンドを使って、古くなった依存関係を一覧表示します。

  3. 注目すべきアップグレードごとに、バックグラウンド分析タスクを起動します。

    重要:注目すべきアップグレードの一つひとつについて、package-upgrade-analyzer サブエージェントを必ずバックグラウンドタスクとして起動してください。近道をしてはいけません。

    Task(
      subagent_type="package-upgrade-analyzer",
      run_in_background=true,
      prompt="Analyze upgrade for {package_name} from {old_version} to {new_version}. GitHub: {repo_url}"
    )
    

    注目すべきアップグレードには、以下が含まれます。

    • メジャーバージョンの更新(例:v4 → v5)
    • 既知の破壊的変更があるパッケージ
    • コア依存関係(React、Next.js、FastAPI、SQLAlchemy など)

    並列処理を最大限に活用するため、すべてのタスクを複数のツール呼び出しを含む単一のメッセージで起動します。

  4. すべてのバックグラウンドタスクが完了するまで待ちます。

    • TaskOutput を使用して、各バックグラウンドタスクの結果を取得します。
    • すべてのタスクが完了したら、提案、移行ガイド、リリースノートを十分に検討します。
    • Plan ツールとそのサブエージェントを呼び出し、破壊的変更に戦略的に対処します。
    • 元の動作をできるだけ維持できるよう、慎重に計画します。
  5. 確認の質問をします。

    • 移行方法が曖昧な場合は、質問します。
    • 依存関係のバージョン更新が安全だと確信できるまでは、作業を進めてはいけません。
  6. PR の概要ドキュメントを作成します。

    PR テンプレートを使用して、.claude/scratchpad/PR.md ファイルを作成します。 読みやすさのため、すべてのパッケージ識別子がバッククォートで囲まれていることを確認します。

  7. PR を作成します(ユーザーの確認が必要です)。

    .claude/scratchpad/PR.md を作成した後、AskUserQuestion を使用して確認します。

    AskUserQuestion(
      question="Ready to create the PR? You can edit .claude/scratchpad/PR.md first if needed.",
      header="Create PR?",
      options=[
        { label: "Create PR", description: "Create the PR with current PR.md content" },
        { label: "Let me edit first", description: "I'll edit PR.md and confirm when ready" }
      ]
    )
    

    ユーザーの確認後、PR_TITLE を決定して PR を作成します。

    PR_TITLE の決定方法:

    1. スコープ:フロントエンド(pnpm)には app、バックエンド(uv)には api を使用します。
    2. 内容(最初に該当するものを選択します)。
      • 注目すべきパッケージが3個以下の場合:パッケージ名と更新先のメジャーバージョンを列挙します。 → "deps(app): bump react-query to v5, next to v15"
      • 注目すべきパッケージが4個を超える場合:注目すべきパッケージを1~2個示し、件数を追加します。 → "deps(api): bump sqlalchemy to v2 (+4 packages)"
      • マイナーバージョンの更新のみが多数ある場合:件数のみを記載します。 → "deps(app): bump 12 dependencies"
    3. 72文字以内に収めます。
    PR_TITLE="deps(app): bump react-query to v5, next to v15"
    gh pr create --base dev --head "$(git rev-parse --abbrev-ref HEAD)" --title "$PR_TITLE" --body-file .claude/scratchpad/PR.md
    

    PR の作成に成功した後:

    # Clean up the scratchpad file
    rm .claude/scratchpad/PR.md
    

    PR の URL をユーザーに返します。

重要な注意事項

  • アップグレード前に、必ず破壊的変更を分析します。
  • 効率化のため、並列タスクのエージェントを使用します。
  • 速度より安全性を重視します。本番環境を壊すより、質問するほうが適切です。
  • リスクの高いアップグレードでは、ロールバック戦略を検討します。

追加の指示

以下の指示は、ユーザーによる動作の上書きです。

$ARGUMENTS

コメント