mcpField
C
configure-package-management

configure-package-management

github.com/laurigates開発5957 回インストール1 日前に更新
リポジトリ

configure-package-management について

プロジェクトのパッケージマネージャーを確認、設定、移行するスキルです。Python には uv、JavaScript/TypeScript には bun を中心に、Rust の cargo と Go の go mod にも対応します。

主な機能

  1. 01言語とパッケージマネージャーの検出
  2. 02設定とロックファイルの監査
  3. 03uv または bun の設定
  4. 04移行と CI 更新の案内
  5. 05確認のみ・自動修正モード

活用シーン

  1. 01プロジェクトの設定準拠状況の確認
  2. 02Python の pip や poetry から uv への移行
  3. 03JavaScript の npm、yarn、pnpm から bun への移行
  4. 04ロックファイルの競合発見と CI 設定の更新

インストール

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

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-package-management

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

同梱ファイルREFERENCE.md

詳細

/configure:package-management

最適な開発体験を実現するため、最新のパッケージマネージャーを確認し、設定します。

このスキルを使用するタイミング

次の場合にこのスキルを使用します…次の場合は別の方法を使用します…
最新のパッケージマネージャー(uv、bun)を使用して新しいプロジェクトをセットアップする場合依存関係を1つだけインストールする場合 — uv add または bun add を直接実行します
レガシーなパッケージマネージャー(pip、npm、yarn、poetry)から最新のものへ移行する場合プロジェクトで cargo または go mod を使用している場合(すでに最適なため、移行は不要です)
パッケージマネージャーの設定がベストプラクティスに準拠しているか監査する場合リンティングまたはフォーマットツールを設定する場合 — /configure:linting を使用します
ロックファイル、依存関係グループ、CI/CD 統合が適切に設定されていることを確認する場合特定の依存関係の競合を解決する場合 — uv pip compile または bun install --verbose でデバッグします
複数のマネージャーによる競合するロックファイルを検出して整理する場合依存関係をインストールするだけの場合 — uv sync または bun install を直接実行します

コンテキスト

  • プロジェクトのルート: !pwd
  • パッケージファイル: !find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \)
  • ロックファイル: !find . -maxdepth 1 \( -name 'uv.lock' -o -name 'bun.lockb' -o -name 'package-lock.json' -o -name 'yarn.lock' -o -name 'pnpm-lock.yaml' -o -name 'poetry.lock' -o -name 'Pipfile.lock' \)
  • Python 仮想環境: !find . -maxdepth 1 -type d -name '.venv'
  • レガシーファイル: !find . -maxdepth 1 \( -name 'requirements.txt' -o -name 'Pipfile' \)
  • プロジェクト標準: !find . -maxdepth 1 -name '.project-standards.yaml'

パラメーター

コマンド引数から解析します。

  • --check-only: 変更を加えず、準拠状況を報告します(CI/CD モード)
  • --fix: 確認を求めずに修正を自動適用します
  • --manager <uv|bun|npm|cargo>: 検出結果を上書きします(特定のマネージャーに絞ります)

最新のパッケージマネージャーの優先設定:

  • Python: uv(pip、poetry、pipenv、pyenv の代替)- 10~100倍高速
  • JavaScript/TypeScript: bun(npm/yarn/pnpm の代替)- 大幅に高速
  • Rust: cargo(標準のため、代替は不要)
  • Go: go mod(標準のため、代替は不要)

実行

このパッケージ管理の準拠チェックを実行します。

ステップ 1: プロジェクトの言語と現在のパッケージマネージャーを検出する

言語とマネージャーを示す項目を確認します。

項目言語現在のマネージャー推奨
pyproject.tomlPythonuv / poetry / pipuv
requirements.txtPythonpipuv
PipfilePythonpipenvuv
poetry.lockPythonpoetryuv
uv.lockPythonuvuv
package.json + bun.lockbJavaScript/TypeScriptbunbun
package.json + package-lock.jsonJavaScript/TypeScriptnpmbun
package.json + yarn.lockJavaScript/TypeScriptyarnbun
package.json + pnpm-lock.yamlJavaScript/TypeScriptpnpmbun
Cargo.tomlRustcargocargo
go.modGogo modgo mod

設定する前に、WebSearch または WebFetch を使用して最新バージョンを確認します。

ステップ 2: 現在の設定状況を分析する

検出された言語ごとに、設定を確認します。

Python(uv):

  • uv がインストールされ、PATH に設定されている
  • [project] セクションを含む pyproject.toml が存在する
  • uv.lock(ロックファイル)が存在する
  • .venv/ に仮想環境がある
  • Python バージョンが pyproject.toml で固定されている
  • 依存関係グループが設定されている(dev、test、docs)
  • ビルドシステムが指定されている(hatchling、setuptools など)

JavaScript/TypeScript(bun):

  • bun がインストールされ、PATH に設定されている
  • package.json が存在する
  • bun.lockb(ロックファイル)が存在する
  • node_modules/ が存在する
  • スクリプトが定義されている(dev、build、test、lint)
  • 型定義が設定されている(TypeScript)
  • ワークスペースが設定されている(モノレポの場合)
ステップ 3: 準拠レポートを生成する

書式付きの準拠レポートを出力します。

Package Management Configuration Report
=======================================
Project: [name]
Languages: Python, TypeScript

Python:
  Package manager           uv 0.5.x                   [MODERN | LEGACY pip]
  pyproject.toml            exists                     [EXISTS | MISSING]
  Lock file                 uv.lock                    [EXISTS | OUTDATED | MISSING]
  Virtual environment       .venv/                     [EXISTS | MISSING]
  Python version            3.12                       [PINNED | NOT PINNED]
  Dependency groups         dev, test, docs            [CONFIGURED | MINIMAL]
  Build backend             hatchling                  [CONFIGURED | MISSING]

JavaScript/TypeScript:
  Package manager           bun 1.1.x                  [MODERN | npm | yarn]
  package.json              exists                     [EXISTS | MISSING]
  Lock file                 bun.lockb                  [EXISTS | MISSING]
  Scripts                   dev, build, test, lint     [COMPLETE | INCOMPLETE]
  Type definitions          tsconfig.json              [CONFIGURED | MISSING]
  Engine constraints        package.json engines       [PINNED | NOT PINNED]

Overall: [X issues found]

Recommendations:
  - Migrate from pip to uv for faster installs
  - Add uv.lock to version control
  - Configure dependency groups in pyproject.toml
  - Migrate from npm to bun for better performance

--check-only が指定されている場合は、ここで終了します。

ステップ 4:パッケージマネージャーを設定する(--fix が指定された場合、またはユーザーが確認した場合)

検出された言語に基づいて設定を適用します。REFERENCE.md のテンプレートを使用してください。

uv を使った Python
  1. uv をインストールします(mise、curl、または homebrew 経由)。
  2. uv init でプロジェクトを初期化するか、既存のマネージャーから移行します。
  3. プロジェクトのメタデータと依存関係グループを含む pyproject.toml を作成または更新します。
  4. uv.lock を生成します。
  5. .gitignore を更新します。
bun を使った JavaScript/TypeScript
  1. bun をインストールします(mise、curl、または homebrew 経由)。
  2. 古いロックファイル(package-lock.json、yarn.lock、pnpm-lock.yaml)を削除します。
  3. bun install を実行して bun.lockb を生成します。
  4. package.json のスクリプトを更新します。
  5. .gitignore を更新します。
ステップ 5:移行を処理する

レガシーマネージャーから移行する場合:

pip/poetry から uv への移行:

  1. uv をインストールします。
  2. uv init を実行します。
  3. 依存関係を移行します:uv add -r requirements.txt を実行するか、poetry からコピーします。
  4. 古いファイル(requirements.txt、Pipfile、poetry.lock)を削除します。
  5. CI/CD ワークフローを更新します。

npm/yarn/pnpm から bun への移行:

  1. bun をインストールします。
  2. 古いロックファイルと node_modules を削除します。
  3. bun install を実行します。
  4. スクリプトを bun に相当するものを使うように更新します。
  5. CI/CD ワークフローを更新します。

REFERENCE.md の移行テンプレートを使用してください。

ステップ 6:CI/CD 統合を設定する

最新のパッケージマネージャーを使うように GitHub Actions ワークフローを更新します。

  • Python:pip install を astral-sh/setup-uv@v8 + uv sync に置き換えます。
  • JavaScript:actions/setup-node を oven-sh/setup-bun@v2 に置き換えます。

REFERENCE.md の CI ワークフローテンプレートを使用してください。

ステップ 7:標準の追跡を更新する

.project-standards.yaml を更新します。

standards_version: "2025.1"
last_configured: "[timestamp]"
components:
  package_management: "2025.1"
  python_package_manager: "uv"
  javascript_package_manager: "bun"
  lock_files_committed: true
ステップ 8:最終レポートを出力する

適用した変更、実施した移行、設定を検証するための次の手順をまとめて出力します。

詳細な設定テンプレートと移行ガイドについては、REFERENCE.md を参照してください。

エージェント向けの最適化

コンテキストコマンド
コンプライアンスの簡易チェック/configure:package-management --check-only
すべての問題を自動修正/configure:package-management --fix
uv のバージョンを確認uv --version
bun のバージョンを確認bun --version
Python の依存関係を一覧表示uv pip list --format json
JS の依存関係を一覧表示bun pm ls --json

フラグ

フラグ説明
--check-only移行を提案せずにステータスを報告します
--fixプロンプトを表示せずに、すべての移行を自動的に適用します
--manager <manager>検出結果を上書きします(uv、bun、npm、cargo)

例

# Check compliance and offer migrations
/configure:package-management

# Check only, no modifications
/configure:package-management --check-only

# Auto-migrate Python to uv
/configure:package-management --fix --manager uv

# Auto-migrate JavaScript to bun
/configure:package-management --fix --manager bun

エラー処理

  • 複数の Python マネージャーが検出された場合:競合について警告し、信頼できる情報源を 1 つにするよう提案します。
  • パッケージマネージャーがない場合:mise 経由でのインストールを提案します。
  • pyproject.toml が無効な場合:解析エラーを報告し、テンプレートを提案します。
  • ロックファイルが競合している場合:複数のロックファイルについて警告し、整理を提案します。
  • ワークスペース/モノレポの場合:ワークスペース設定を検出して設定します。

関連項目

  • /configure:linting - リントツール(ruff、biome)を設定します
  • /configure:formatting - フォーマッターを設定します
  • /deps:install - 汎用の依存関係インストーラー
  • /configure:all - すべてのコンプライアンスチェックを実行します
  • uv のドキュメント:https://docs.astral.sh/uv
  • bun のドキュメント:https://bun.sh/docs

コメント