mcpField
L
ln-823-pip-upgrader

ln-823-pip-upgrader

github.com/levnikolaevich开发584221 次安装2 天前更新
代码仓库

关于 ln-823-pip-upgrader

用于升级 Python 项目依赖的技能,支持 pip、poetry 和 pipenv。它会审计安全问题、识别过时依赖与破坏性变更,并验证安装结果。

主要功能

  1. 01支持 pip、poetry 和 pipenv
  2. 02升级前执行安全审计
  3. 03识别过时依赖与破坏性变更
  4. 04验证导入和测试
  5. 05生成机器可读的升级报告

适用场景

  1. 01更新 Python 项目中的依赖
  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 Worker 类别: 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

操作:

严重程度操作
严重阻止并报告
高警告并继续
中/低仅记录

阶段 3:检查过期依赖

包管理器命令
pippip list --outdated --format=json
poetrypoetry show --outdated
pipenvpipenv update --outdated

阶段 4:应用升级

包管理器命令
pippip install --upgrade <package>
pip(冻结)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持久化的 Worker 报告路径(如已写入)

配置

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

错误处理

错误原因解决方案
ImportErrorAPI 重大变更搜索当前迁移文档
依赖冲突版本不匹配重新生成锁文件,或回滚导致问题的包

参考资料


运行时摘要产物

**必须阅读:**加载 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

评论

支持 Markdown