cap-upgrade について
cap-upgrade は、CDS 開発者が移行スキャンの結果を解釈し、アップグレードの修正を進めるためのスキルです。誤検知の候補を絞り、ソースファイルを確認して、決定的な修正、OpenRewrite、手動修正に分類します。
主な機能
- 01cds upgrade の検出結果を解釈
- 02曖昧な一致のソースを確認
- 03誤検知の候補を絞り込み
- 04修正方法を種類別に分類
- 05決定的な修正を提示
活用シーン
- 01CDS 9 から 10 への移行レポートの確認
- 02既存のアップグレードレポートから作業を再開
- 03CDS 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 経由で実行でき)、エージェントの機能が利用できる開発者向け環境を前提としています。以下は対象外です。
- NO-AI モード – 開発者が AI エージェントなしで
cds upgradeを実行する場合、UPGRADE_REPORT.mdが人間向けの成果物となります。このスキルは不要です。 - CI/ヘッドレス –
findings.jsonはカスタムパイプラインで利用できます(例:IDE の問題パネル向けの SARIF 変換)。このスキルを呼び出すのは、エージェントが開発者に対話形式で検出結果を案内する場合に限られます。
関連するワークフローを読み込む
上記のバージョン判定に基づいて、このスキルのディレクトリから以下のファイルをちょうど 1 つ読み込み、その指示に従ってください。
| シナリオ | 読み込むファイル |
|---|---|
| モード A、B、または C(対象が CDS 10、またはすでに 10) | workflow-cds10.md |
| 手動アップグレードパス(対象が 10 未満、または複数メジャーバージョンへのアップグレードの最初の段階) | manual-upgrade.md |
両方を読み込まないでください。 検出されたシナリオに該当するファイルのみが対象です。 読み込み後、そのファイルの指示に最初から従ってください。