关于 cap-upgrade
cap-upgrade 面向 CDS 开发者,帮助解读迁移扫描结果并逐项处理升级修复。它会筛查疑似误报、核对源文件,并区分确定性、OpenRewrite 和手动修复。
主要功能
- 01解读 cds upgrade 发现项
- 02核对含糊匹配的源文件
- 03筛查疑似误报
- 04按类型归类修复方式
- 05提供确定性修复
适用场景
- 01审查 CDS 9 到 10 的迁移报告
- 02继续处理已有升级报告
- 03检查 CDS 10 中未解决的发现项
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ capire/ skills --skill cap-upgrade安装后在 Claude Code 中输入/cap-upgrade确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
manual-upgrade.mdslim-findings.jsworkflow-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 升级。 |
| 9 | 10(默认) | 主工作流(以下步骤 0–6) |
| 10 | 10(重新检查) | 模式 C(见下方“触发模式”) |
触发模式
模式 A – 全新运行
开发者请求升级(例如“迁移我的项目”“运行 cds upgrade”)。
从头运行 cds upgrade --fix:
- 确认前置条件(步骤 0)
- 运行
cds upgrade --fix(步骤 1)——升级依赖并进行扫描 - 阅读并解读输出(步骤 2–5)
- 应用手动修复,检查兼容性标志(步骤 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 |
不要同时加载两个文件。 只需加载与检测到的场景匹配的文件。 加载后,从头开始遵循该文件的说明。