mcpField
C
cap-upgrade

cap-upgrade

github.com/capire开发17170 次安装4 天前更新
代码仓库

关于 cap-upgrade

cap-upgrade 面向 CDS 开发者,帮助解读迁移扫描结果并逐项处理升级修复。它会筛查疑似误报、核对源文件,并区分确定性、OpenRewrite 和手动修复。

主要功能

  1. 01解读 cds upgrade 发现项
  2. 02核对含糊匹配的源文件
  3. 03筛查疑似误报
  4. 04按类型归类修复方式
  5. 05提供确定性修复

适用场景

  1. 01审查 CDS 9 到 10 的迁移报告
  2. 02继续处理已有升级报告
  3. 03检查 CDS 10 中未解决的发现项

安装

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

$npx skills add https://github.com/capire/skills --skill cap-upgrade

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

包含的文件

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

manual-upgrade.md
slim-findings.js
workflow-cds10.md

详细介绍

我做什么

我负责运行 cds upgrade CLI,解读其发现,并通过具体的修复说明和指向 capire 上官方 CAP 迁移文档的链接,引导开发者逐项完成迁移。

cds upgrade 的作用

cds upgrade 是随 @sap/cds-dk 一同发布的确定性命令行工具。本技能以它为基础。

使用 --fix 时,它会:

  • 将 package.json 中与 CDS 相关的依赖更新至目标版本
  • 运行 npm install
  • 使用新的编译器重新构建项目
  • 在适用的情况下设置兼容性标志,以保留之前的行为

不带标志时,它只进行扫描——不会更改项目源文件或依赖项 (但仍会生成下方的报告文件)。

使用 --dry 时,不会向磁盘写入任何内容——所有输出都会发送到 stdout。

在所有模式下,它都会扫描项目中的重大变更模式,并生成:

  • findings.json — 按规则整理的结构化匹配结果,包含文件位置、指导说明、 严重性、兼容性标志、OpenRewrite 配方和覆盖率信号
  • UPGRADE_REPORT.md — 按范围归类发现结果的易读报告
  • UPGRADE_OVERVIEW.md — 包含扫描数量和快速改进项的简短摘要
本技能的补充功能

CLI 的输出内容繁多——规则多、每条规则的匹配项也多,其中许多在特定代码库中可能是误报。本技能会:

  • 根据各规则的 guidance 和通用误报规则过滤误报
  • 读取源文件以核实有歧义的匹配项
  • 搜索模式可能遗漏的匹配项
  • 按修复类型(确定性、OpenRewrite、手动)对每条发现进行分类
  • 提供直接应用确定性修复的选项

版本路由

开始任何工作流之前,先检测当前的 CDS 主版本:

cds version

解析 @sap/cds 行(例如 @sap/cds: 9.8.0)。提取主版本号。

当前主版本目标版本工作流
< 9询问开发者:“目标版本是什么?(9 或 10)”如果目标版本 < 10 → 手动升级路径(附录)。如果目标版本 = 10 → 跨多个主版本升级:先升级到 9(手动路径),然后运行 cds upgrade 完成 9→10 升级。
910(默认)主工作流(以下步骤 0–6)
1010(重新检查)模式 C(见下方“触发模式”)

触发模式

模式 A – 全新运行

开发者请求升级(例如“迁移我的项目”“运行 cds upgrade”)。 从头运行 cds upgrade --fix:

  1. 确认前置条件(步骤 0)
  2. 运行 cds upgrade --fix(步骤 1)——升级依赖并进行扫描
  3. 阅读并解读输出(步骤 2–5)
  4. 应用手动修复,检查兼容性标志(步骤 6)
模式 B – 已有报告

开发者已经运行过 cds upgrade,并在项目根目录中有 UPGRADE_REPORT.md 和/或 findings.json。常见情况包括:

  • 开发者先运行了工具,现在需要帮助解读发现结果
  • 队友、IDE 集成或 CI 任务生成了报告
  • 上一次会话在步骤 1 之后结束,现在需要继续

检测: 检查项目根目录中是否存在 UPGRADE_REPORT.md 或 findings.json。 如果存在,检查项目跟踪的源文件是否有任何文件在写入 .cdsupgrade.json 后被修改。如果没有相关变更,则重用现有报告。否则,建议重新运行 cds upgrade。

跳至步骤 2(阅读报告)。

模式 C – 已处于目标版本(重新检查)

项目已升级到 CDS 10,但可能仍有:

  • 上次运行遗留的未解决发现项
  • 由 --fix 设置、最终应当移除的兼容性标志
  • cds-dk 补丁中新增的迁移规则

运行 cds upgrade,扫描剩余的迁移项。如果 UPGRADE_REPORT.md 或 findings.json 已存在且为近期生成 (适用模式 B 的检测规则),则直接跳至步骤 2。

不在范围内

此技能假设环境属于开发者类型,可运行 cds upgrade (已全局安装且支持 upgrade 的 cds-dk,或通过 npx @sap/cds-dk@latest),并具备 Agent 能力。此技能不涵盖:

  • 无 AI 模式——如果开发者在没有 AI Agent 的情况下运行 cds upgrade, UPGRADE_REPORT.md 就是交付给用户的文档,无需使用此技能。
  • CI/无头模式——自定义流水线可以使用 findings.json (例如转换为 SARIF,以便在 IDE 的问题面板中显示)。只有在 Agent 交互式引导开发者查看发现的问题时,才会调用此技能。

加载相关工作流

根据上述版本路由,从此技能目录中加载且仅加载以下一个文件, 并遵循其中的说明:

场景要加载的文件
模式 A、B 或 C(目标版本为 CDS 10,或当前已使用 10)workflow-cds10.md
手动升级路径(目标版本 < 10,或多主版本升级的第一阶段)manual-upgrade.md

不要同时加载两个文件。 只需加载与检测到的场景匹配的文件。 加载后,从头开始遵循该文件的说明。

评论

支持 Markdown