ln-713-pip-upgrader について
pip、poetry、pipenv を使う Python プロジェクト向けの依存関係更新スキルです。セキュリティ監査、更新対象の確認、アップグレード、破壊的変更の調査を行い、インストールとテストを検証します。
主な機能
- 01pip、poetry、pipenv の判定
- 02依存関係のセキュリティ監査
- 03更新対象パッケージの確認
- 04アップグレードと定義ファイル更新
- 05インポートと pytest の検証
活用シーン
- 01Python プロジェクトの依存関係更新
- 02更新前の古いパッケージの確認
- 03依存関係メンテナンス時の脆弱性確認
- 04更新後のインポートとテストの検証
MCP 対応
ワークフローでは Context7 や MCP Ref などの MCP ツールを使い、破壊的変更に関するライブラリ文書や移行ガイドを検索できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-713-pip-upgraderインストール後、Claude Code で/ln-713-pip-upgraderを入力して読み込まれたか確認します。
同梱ファイルdiagram.htmlreferences/python_venv_handling.md
詳細
パス: ファイルパス(
shared/、references/、../ln-*)はスキルリポジトリのルートからの相対パスです。CWD に見つからない場合は、この SKILL.md があるディレクトリを探し、1 つ上の階層をリポジトリのルートとして使用してください。
ln-713-pip-upgrader
タイプ: L3 ワーカー カテゴリ: 7XX プロジェクトのブートストラップ 親: ln-710-dependency-upgrader
破壊的変更を自動検出しながら Python の依存関係をアップグレードします。
概要
| 項目 | 詳細 |
|---|---|
| 入力 | プロジェクトパス、パッケージマネージャーの種類 |
| 出力 | 更新済みの requirements.txt/pyproject.toml |
| 対応 | pip、poetry、pipenv |
ワークフロー
視覚的なワークフローは diagram.html を参照してください。
フェーズ: 事前チェック → マネージャーの検出 → セキュリティ監査 → 古いパッケージの確認 → アップグレードの適用 → インストールの検証 → 報告
フェーズ 0:事前チェック
| チェック | 必須 | 不足している場合のアクション |
|---|---|---|
| requirements.txt または pyproject.toml または Pipfile | はい | アップグレードをブロック |
| 仮想環境が有効 | いいえ | ユーザーに警告(システムを汚染するリスク) |
ワーカーは、コーディネーター(ln-710)がすでに git の状態を確認し、バックアップを作成していることを前提とします。
フェーズ 1:マネージャーの検出
| マネージャー | 判定ファイル |
|---|---|
| pip | requirements.txt |
| poetry | pyproject.toml + poetry.lock |
| pipenv | Pipfile + Pipfile.lock |
フェーズ 2:セキュリティ監査
コマンド
| マネージャー | コマンド |
|---|---|
| pip | pip-audit --json |
| poetry | poetry audit(プラグイン経由) |
| pipenv | pipenv check |
アクション
| 深刻度 | アクション |
|---|---|
| 重大 | アップグレードをブロックして報告 |
| 高 | 警告して続行 |
| 中/低 | ログに記録のみ |
フェーズ 3:古いパッケージの確認
コマンド
| マネージャー | コマンド |
|---|---|
| pip | pip list --outdated --format=json |
| poetry | poetry show --outdated |
| pipenv | pipenv update --outdated |
フェーズ 4:アップグレードの適用
コマンド
| マネージャー | コマンド |
|---|---|
| pip | pip install --upgrade <package> |
| pip(freeze) | pip freeze > requirements.txt |
| poetry | poetry update |
| pipenv | pipenv update |
移行検索用 MCP ツール
優先順位(フォールバック戦略)
| 優先度 | ツール | 使用するタイミング |
|---|---|---|
| 1 | mcp__context7__query-docs | ライブラリのドキュメントを調べる第一候補 |
| 2 | mcp__Ref__ref_search_documentation | 公式ドキュメントと PyPI |
| 3 | WebSearch | 最新情報、コミュニティの解決策 |
Context7 の使用方法
| 手順 | ツール | パラメーター |
|---|---|---|
| 1. ライブラリを特定 | mcp__context7__resolve-library-id | libraryName: "pydantic" |
| 2. ドキュメントを検索 | mcp__context7__query-docs | query: "pydantic v1 to v2 migration breaking changes" |
MCP Ref の使用方法
| アクション | ツール | クエリの例 |
|---|---|---|
| 検索 | mcp__Ref__ref_search_documentation | "python pydantic 2 migration guide" |
| 読み取り | mcp__Ref__ref_read_url | 検索結果の URL |
WebSearch のフォールバック
Context7/Ref で結果が得られない場合に使用します:
"<package> python <version> breaking changes migration""<ImportError message> <package> fix"
フェーズ 5:インストールの検証
コマンド
| チェック | コマンド |
|---|---|
| インポートテスト | python -c "import <package>" |
| テスト | pytest または python -m pytest |
フェーズ 6:結果の報告
レポートのスキーマ
| フィールド | 説明 |
|---|---|
| project | プロジェクトパス |
| packageManager | pip、poetry、または pipenv |
| duration | 合計時間 |
| upgrades[] | 適用したアップグレード |
| verification | PASSED または FAILED |
よくある破壊的変更
必ずお読みください: パターンの詳細については、breaking_changes_patterns.md を読み込んでください。
| パッケージ | 破壊的変更のバージョン | 主な変更点 |
|---|---|---|
| pydantic | 1 → 2 | V1 互換レイヤーが必要です |
| sqlalchemy | 1 → 2 | クエリ構文の変更 |
| fastapi | 0.99 → 0.100+ | Pydantic v2 が必要です |
設定
Options:
# Upgrade scope
upgradeType: major # major | minor | patch
# Security
auditLevel: high
minimumReleaseAge: 14
# Python specific
pythonVersion: "3.12"
useVirtualenv: true
# Verification
runTests: true
エラー処理
| エラー | 原因 | 解決策 |
|---|---|---|
| ImportError | API の破壊的変更 | Context7/Ref で移行方法を検索します |
| 依存関係の競合 | バージョンの不一致 | pip-compile または poetry lock を試します |
参考資料
完了の定義
- インジケーターファイルからパッケージマネージャー(pip/poetry/pipenv)を検出済み
- セキュリティ監査を完了済み(pip-audit/poetry audit/pipenv check)
- 古くなったパッケージを特定し、一覧に記載済み
- アップグレードを適用し、requirements.txt/pyproject.toml を更新済み
- MCP 移行ガイドを使用して破壊的変更に対応済み
- アップグレード後のインポートテストと pytest が成功
- 適用したアップグレードと検証状況を含むレポートを返却済み
バージョン: 1.1.0 最終更新日: 2026-01-10