code-engine-update について
Domo Code Engine のパッケージ更新とバージョン作成を支援するスキルです。契約の確認やマニフェストの同期を扱い、明示的な承認なしにリリースしません。
主な機能
- 01パッケージのバージョン作成
- 02既存バージョンの更新
- 03関数契約の変更確認
- 04マニフェストの差分検出と同期
- 05明示的な承認後にリリース
活用シーン
- 01パッケージコードの安全な更新
- 02既存パッケージのバージョン作成
- 03パラメーターと出力の互換性確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ stahura/ domo-ai-vibe-rules --skill code-engine-updateインストール後、Claude Code で/code-engine-updateを入力して読み込まれたか確認します。
詳細
Code Engine パッケージの更新(CLI)
このスキルは、パッケージの更新/バージョン管理のワークフローと、安全な契約の進化に使用します。
目的
このスキルでは、次の内容を扱います。
- 既存のパッケージコードを更新する
- 既存のパッケージ ID で新しいバージョンを作成する
- パッケージとアプリマニフェスト間のマッピングのずれを検出して対処する
- データ型の契約が安定しているか検証する
アプリランタイムの呼び出しコードには、~/.agents/skills/code-engine/SKILL.md を使用してください。
主な実行方法
community-domo-cli を優先してください。
community-domo-cli --instance <instance> code-engine update-version <package_id> <version> --body-file payload.json
代替のエンドポイントパターン:
POST /api/codeengine/v2/packages
バージョン指定の更新動作にするには、本文に id と version を設定します。
リリースの安全ルール
厳守事項:ユーザーが明示的に 「release」 と指示しない限り、Code Engine のリリースエンドポイントを呼び出してはいけません。
- 文脈からリリースの意図を推測しないでください。
- 「finish」「publish」「make it work」の一環としてリリースしないでください。
- リリースが必要と思われる場合は、いったん停止し、明示的なリリース承認を求めてください。
更新/新バージョンの動作
推奨する作成/更新モデル:
- 新しいパッケージを作成する:
POST /api/codeengine/v2/packages - 既存のパッケージの新しいバージョンを作成する:リクエスト本文に
idとversion(例:1.0.1)を設定し、コード/マニフェストのペイロードも含めて、同じくPOST /api/codeengine/v2/packagesを使用します。 - 既存パッケージのバージョンを更新する:
PUT /api/codeengine/v2/packages/{id}/versions/{version} - 対象バージョンがデプロイ済み/変更不可のため更新に失敗した場合は、新しいバージョンを作成してから、その新しいバージョンを更新します。
実行上の注意:
- 新しいバージョンを作成する場合は、最初からコードとマニフェストの全ペイロードを指定してバージョンを作成してください。
- その特定のバージョンに対する後続の変更には
PUTを使用します。
後続のマニフェスト同期に備えて、生成された packageId と version を必ず出力してください。
契約の保護策
更新を公開する前に、次の内容を確認してください。
- 既存の関数エイリアスと提案するエイリアスを比較する
- パラメーターの名前/型/null 許容性を比較する
- 出力の構造/型を比較する
- 破壊的変更(必須パラメーターの削除、互換性のない型変更)にフラグを立てる
破壊的変更を意図的に行う場合は、生成される出力に明示的な移行メモを含めてください。
ずれへの対処
更新後:
manifest.jsonのpackagesMappingと、返されたパッケージ ID/バージョンを比較する- ずれが検出された場合は、
packageId、version、パラメーター/出力の契約を同期する - ユーザーから名前変更の指示がない限り、マッピングのエイリアスを維持する
チェックリスト
- 適切な更新方法を選択している(既存/バージョン指定)
- 入力/出力のデータ型契約を検証している
- 破壊的変更に明確にフラグを立てている
- マニフェストの
packagesMappingのずれを確認し、同期している - 更新されたパッケージ ID/バージョンと契約の概要を出力に含めている
コメント
Markdown 対応