mcpField
B
bump-deps

bump-deps

github.com/casper-studios开发15281 次安装5 天前更新
代码仓库

关于 bump-deps

bump-deps 是用于分析过期依赖并安全升级的技能,面向需要管理 JavaScript、TypeScript 或 Python 项目的开发者。它根据项目目录选择包管理器,并要求对重要升级分析破坏性变更、制定迁移计划,再生成 PR 摘要并在确认后创建 PR。

主要功能

  1. 01检测项目使用的包管理器
  2. 02列出过期依赖
  3. 03并行分析重要升级的破坏性变更
  4. 04规划迁移并生成 PR 摘要
  5. 05经用户确认后创建 PR

适用场景

  1. 01检查项目中的过期依赖
  2. 02评估主要版本升级的迁移风险
  3. 03为依赖更新准备并创建 PR

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/casper-studios/casper-marketplace --skill bump-deps

安装后在 Claude Code 中输入/bump-deps确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
pull-request-template.md
references/
pnpm.md
uv.md

详细介绍

升级依赖项

分析过时的依赖项,并在检测到破坏性变更的情况下安全升级。

工作流

  1. 根据当前目录检测包管理器:

    • 如果位于 frontend/ 目录或正在处理 TypeScript/JavaScript:使用 pnpm 参考
    • 如果位于 backend/ 目录或正在处理 Python:使用 uv 参考
  2. 使用参考文档中针对相应包管理器的命令列出过时的依赖项

  3. 为每项值得关注的升级启动后台分析任务:

    至关重要:每项值得关注的升级都必须将 package-upgrade-analyzer 子 Agent 作为后台 Task 启动。不要走捷径。

    Task(
      subagent_type="package-upgrade-analyzer",
      run_in_background=true,
      prompt="Analyze upgrade for {package_name} from {old_version} to {new_version}. GitHub: {repo_url}"
    )
    

    值得关注的升级包括:

    • 主版本升级(例如,v4 → v5)
    • 已知存在破坏性变更的包
    • 核心依赖项(React、Next.js、FastAPI、SQLAlchemy 等)

    通过一条消息发起所有任务,并包含多个工具调用,以实现最大并行度。

  4. 等待所有后台任务完成:

    • 使用 TaskOutput 获取每个后台任务的结果
    • 所有任务完成后,深入思考这些建议、迁移指南和发布说明
    • 调用 Plan 工具及其子 Agent,以策略性地处理破坏性变更
    • 仔细规划,尽可能保留原有行为
  5. 提出澄清问题:

    • 如果迁移路径不明确,请提出问题
    • 在确认依赖项版本升级安全之前,不要继续
  6. 生成 PR 摘要文档:

    使用 PR 模板编写 .claude/scratchpad/PR.md 文件。 确保所有包标识符都正确地用反引号括起来,以便阅读。

  7. 创建 PR(需要用户确认):

    生成 .claude/scratchpad/PR.md 后,使用 AskUserQuestion 确认:

    AskUserQuestion(
      question="Ready to create the PR? You can edit .claude/scratchpad/PR.md first if needed.",
      header="Create PR?",
      options=[
        { label: "Create PR", description: "Create the PR with current PR.md content" },
        { label: "Let me edit first", description: "I'll edit PR.md and confirm when ready" }
      ]
    )
    

    用户确认后,推导 PR_TITLE 并创建 PR:

    推导 PR_TITLE:

    1. 范围:前端(pnpm)使用 app,后端(uv)使用 api
    2. 内容(选择第一个适用项):
      • 值得关注的包不超过 3 个:列出包名和目标主版本 → "deps(app): bump react-query to v5, next to v15"
      • 值得关注的包超过 3 个:突出 1–2 个值得关注的包及其余数量 → "deps(api): bump sqlalchemy to v2 (+4 packages)"
      • 只有许多次要版本升级:只写数量 → "deps(app): bump 12 dependencies"
    3. 长度控制在 72 个字符以内
    PR_TITLE="deps(app): bump react-query to v5, next to v15"
    gh pr create --base dev --head "$(git rev-parse --abbrev-ref HEAD)" --title "$PR_TITLE" --body-file .claude/scratchpad/PR.md
    

    PR 创建成功后:

    # Clean up the scratchpad file
    rm .claude/scratchpad/PR.md
    

    将 PR URL 返回给用户。

重要说明

  • 升级前务必分析破坏性变更
  • 使用并行 Task Agent 提高效率
  • 安全优先于速度——宁可询问,也不要破坏生产环境
  • 对有风险的升级考虑回滚策略

附加说明

其余说明是用户提供的行为覆盖指令。

$ARGUMENTS

评论

支持 Markdown