mcpField
L
ln-823-pip-upgrader

ln-823-pip-upgrader

github.com/levnikolaevich開発584221 回インストール2 日前に更新
リポジトリ

ln-823-pip-upgrader について

pip、poetry、pipenvを使うPythonプロジェクトの依存関係を更新するスキルです。脆弱性や古いパッケージ、破壊的変更を確認し、インストール後の検証結果を報告します。

主な機能

  1. 01pip、poetry、pipenvに対応
  2. 02更新前のセキュリティ監査
  3. 03古いパッケージと破壊的変更の検出
  4. 04インポートとテストの検証
  5. 05機械可読な更新レポートの作成

活用シーン

  1. 01Pythonプロジェクトの依存関係更新
  2. 02更新前のセキュリティ問題の確認
  3. 03インポート検査とテストによる変更確認

MCP 対応

メジャーバージョン更新やインポートエラーがある場合、MCPのドキュメント検索ツールで移行ガイドを調べます。

インストール

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-823-pip-upgrader

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

同梱ファイル

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

references/
breaking_changes_patterns.md
coordinator_summary_contract.md
python_venv_handling.md

詳細

パス: ファイルパス(references/、../ln-*)は、このスキルディレクトリからの相対パスです。

ln-823-pip-upgrader

タイプ: L3 ワーカー
カテゴリ: 8XX 最適化

破壊的変更を自動検出しながら、Python の依存関係をアップグレードします。


概要

項目詳細
入力プロジェクトパスとパッケージマネージャーの種類
出力更新された依存関係マニフェストと、機械可読な依存関係アップグレードの概要
対応pip、poetry、pipenv

ワークフロー

フェーズ: 事前確認 -> マネージャーの検出 -> セキュリティ監査 -> 古いパッケージの確認 -> アップグレードの適用 -> インストールの検証 -> 報告


フェーズ 0:事前確認

確認項目必須不足している場合の対応
requirements.txt、pyproject.toml、または Pipfileはいアップグレードをブロック
Python パッケージマネージャーが利用可能はいアップグレードをブロック
仮想環境が有効いいえ管理対象環境が不明確な場合はユーザーに警告
ワークスペースのベースラインが安全はい管理された実行では、コーディネーターがすでに準備しています。単独実行では、ロールバックをローカルで保護します
ランタイムの連携

管理された実行では、ln-820 から決定論的な runId と正確な summaryArtifactPath を受け取ります。
単独実行も引き続きサポートされます。ランタイム引数が省略された場合は、返却前に単独実行スコープのアーティファクトを生成します。


フェーズ 1:マネージャーの検出

マネージャー識別ファイル
piprequirements.txt
poetrypyproject.toml + poetry.lock
pipenvPipfile + Pipfile.lock

フェーズ 2:セキュリティ監査

マネージャーコマンド
pippip-audit --json
poetrypoetry audit
pipenvpipenv check

対応:

深刻度対応
Criticalブロックして報告
High警告して続行
Moderate/Lowログのみ

フェーズ 3:古いパッケージの確認

マネージャーコマンド
pippip list --outdated --format=json
poetrypoetry show --outdated
pipenvpipenv update --outdated

フェーズ 4:アップグレードの適用

マネージャーコマンド
pippip install --upgrade <package>
pip (freeze)pip freeze > requirements.txt
poetrypoetry update
pipenvpipenv update

移行検索用 MCP ツール

優先度ツール使用するタイミング
1mcp__context7__query-docsライブラリのドキュメントを調べる場合の第一選択
2mcp__Ref__ref_search_documentation公式ドキュメントと PyPI
3WebSearch最新情報とコミュニティの修正

パッケージのアップグレードでメジャーバージョンをまたぐ場合や、インポートエラーが発生する場合は、必ず MCP ツールを使用してください。


フェーズ 5:インストールの検証

確認項目コマンド
インポートのスモークテストpython -c "import <package>"
テストpytest または python -m pytest

よくある破壊的変更の例:

必ず読むこと: 共通パターンについては、breaking_changes_patterns.md を読み込んでください。

パッケージ破壊的変更のあるバージョン主な変更点
pydantic1 -> 2互換性レイヤーが必要
sqlalchemy1 -> 2クエリー API の変更
fastapi0.99 -> 0.100+Pydantic v2 との整合

フェーズ 6:結果の報告

フィールド説明
projectプロジェクトパス
packageManagerpip、poetry、または pipenv
duration合計時間
upgrades[]適用したアップグレード
verificationインポート/テストの判定
warnings[]ブロックを伴わない問題
artifact_path書き込まれた場合の、永続的なワーカーレポートのパス

設定

Options:
  upgradeType: major          # major | minor | patch
  auditLevel: high
  minimumReleaseAge: 14
  pythonVersion: "3.12"
  useVirtualenv: true
  runTests: true

エラー処理

エラー原因解決策
ImportError破壊的な API 変更現行の移行ドキュメントを検索
Dependency conflictバージョンの不一致ロックファイルを再生成するか、問題のあるパッケージをロールバック

参考資料


ランタイム概要アーティファクト

必ず読み込んでください: references/coordinator_summary_contract.md を読み込みます。

dependency-worker の概要エンベロープを出力します。

管理モード:

  • ln-820 が決定論的な runId と正確な summaryArtifactPath を渡します
  • 概要を、渡された summaryArtifactPath に書き込みます

スタンドアロンモード:

  • runId と summaryArtifactPath は省略します
  • .hex-skills/runtime-artifacts/runs/{run_id}/dependency-worker/ln-823--{identifier}.json に書き込みます

モニター(2.1.98+): 30秒を超えると予想されるインストール/監査/テストコマンドには、Monitor を使用します。代替手段:Bash(run_in_background=true)。

完了の定義

  • プロジェクトの指標からパッケージマネージャーを検出済み
  • 選択した Python マネージャーのセキュリティ監査を完了済み
  • 古くなったパッケージを特定済み
  • パターンと最新のドキュメントを使用して破壊的変更を確認済み
  • マニフェストとロックファイルの更新を永続化してアップグレードを適用済み
  • インポートのスモークテストと必須テストが成功
  • dependency-worker の概要アーティファクトを管理モードまたはスタンドアロンのパスに書き込み済み

バージョン: 1.1.0 最終更新日: 2026-01-10

コメント