configure-package-management について
プロジェクトのパッケージマネージャーを確認、設定、移行するスキルです。Python には uv、JavaScript/TypeScript には bun を中心に、Rust の cargo と Go の go mod にも対応します。
主な機能
- 01言語とパッケージマネージャーの検出
- 02設定とロックファイルの監査
- 03uv または bun の設定
- 04移行と CI 更新の案内
- 05確認のみ・自動修正モード
活用シーン
- 01プロジェクトの設定準拠状況の確認
- 02Python の pip や poetry から uv への移行
- 03JavaScript の npm、yarn、pnpm から bun への移行
- 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.toml | Python | uv / poetry / pip | uv |
requirements.txt | Python | pip | uv |
Pipfile | Python | pipenv | uv |
poetry.lock | Python | poetry | uv |
uv.lock | Python | uv | uv |
package.json + bun.lockb | JavaScript/TypeScript | bun | bun |
package.json + package-lock.json | JavaScript/TypeScript | npm | bun |
package.json + yarn.lock | JavaScript/TypeScript | yarn | bun |
package.json + pnpm-lock.yaml | JavaScript/TypeScript | pnpm | bun |
Cargo.toml | Rust | cargo | cargo |
go.mod | Go | go mod | go 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
- uv をインストールします(mise、curl、または homebrew 経由)。
uv initでプロジェクトを初期化するか、既存のマネージャーから移行します。- プロジェクトのメタデータと依存関係グループを含む
pyproject.tomlを作成または更新します。 uv.lockを生成します。.gitignoreを更新します。
bun を使った JavaScript/TypeScript
- bun をインストールします(mise、curl、または homebrew 経由)。
- 古いロックファイル(
package-lock.json、yarn.lock、pnpm-lock.yaml)を削除します。 bun installを実行してbun.lockbを生成します。package.jsonのスクリプトを更新します。.gitignoreを更新します。
ステップ 5:移行を処理する
レガシーマネージャーから移行する場合:
pip/poetry から uv への移行:
- uv をインストールします。
uv initを実行します。- 依存関係を移行します:
uv add -r requirements.txtを実行するか、poetry からコピーします。 - 古いファイル(
requirements.txt、Pipfile、poetry.lock)を削除します。 - CI/CD ワークフローを更新します。
npm/yarn/pnpm から bun への移行:
- bun をインストールします。
- 古いロックファイルと
node_modulesを削除します。 bun installを実行します。- スクリプトを bun に相当するものを使うように更新します。
- 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