关于 ln-713-pip-upgrader
面向使用 pip、poetry 或 pipenv 的 Python 项目升级依赖。该技能会进行安全审计、查找过期包、应用升级、检查破坏性变更,并验证安装与测试。
主要功能
- 01识别 pip、poetry、pipenv
- 02依赖安全审计
- 03查找过期包
- 04升级并更新依赖清单
- 05导入与 pytest 验证
适用场景
- 01升级 Python 项目依赖
- 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-*)均相对于 skills 仓库根目录。如果在 CWD 中找不到,请定位此 SKILL.md 所在目录,并向上一级找到仓库根目录。
ln-713-pip-upgrader
类型: L3 Worker
类别: 7XX 项目引导
父级: ln-710-dependency-upgrader
升级 Python 依赖,并自动检测破坏性变更。
概述
| 方面 | 详情 |
|---|---|
| 输入 | 项目路径、包管理器类型 |
| 输出 | 更新后的 requirements.txt/pyproject.toml |
| 支持 | pip、poetry、pipenv |
工作流
请参阅 diagram.html 查看工作流示意图。
阶段: 升级前检查 → 检测包管理器 → 安全审计 → 检查过时依赖 → 应用升级 → 验证安装 → 报告
阶段 0:升级前检查
| 检查项 | 必需 | 缺失时的操作 |
|---|---|---|
| requirements.txt 或 pyproject.toml 或 Pipfile | 是 | 阻止升级 |
| 虚拟环境已激活 | 否 | 警告用户(存在污染系统的风险) |
Worker 假定协调器(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
评论
支持 Markdown