关于 code-engine-update
用于更新 Domo Code Engine 包和创建版本的 Skill,涵盖契约检查与清单映射同步;未经明确批准不会执行发布操作。
主要功能
- 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 包更新(命令行)
使用本技能处理包更新/版本工作流以及安全的契约演进。
意图
本技能涵盖:
- 更新现有包代码
- 在现有包 id 上创建新版本
- 检测并处理包与 app manifest 之间的映射漂移
- 验证数据类型契约稳定性
关于应用运行时调用代码,请使用 ~/.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
并在 body 中设置 id 和 version,以实现带版本的更新行为。
发布安全规则
硬性规则:除非用户明确说 “release”,否则绝不调用任何 Code Engine 发布端点。
- 不要从上下文中推断发布。
- 不要在“finish”、“publish”或“make it work”的过程中执行发布。
- 如果看起来需要发布,先停下来并请求明确的发布批准。
更新/新版本行为
首选的创建/更新模型:
- 创建新包:
POST /api/codeengine/v2/packages - 创建现有包的新版本:同样使用
POST /api/codeengine/v2/packages,并在请求 body 中带上id和version(例如1.0.1),同时包含代码/manifest 载荷。 - 更新现有包版本:
PUT /api/codeengine/v2/packages/{id}/versions/{version} - 如果更新失败,因为目标版本已部署/不可变,则创建一个新版本,然后更新该新版本。
执行说明:
- 对于新版本创建,优先一次性用完整的 code+manifest 载荷创建该版本。
- 对该特定版本的后续更改使用
PUT。
始终输出结果 packageId 和 version,以供下游 manifest 同步。
契约防护措施
在更新发布之前:
- 比较现有函数别名与拟议别名
- 比较参数名称/类型/可空性
- 比较输出形状/类型
- 标记破坏性变更(移除必填参数、不兼容的类型变更)
当破坏性变更是有意为之,要求在生成的输出中提供明确的迁移说明。
漂移处理
更新后:
- 将
manifest.json packagesMapping与返回的包 id/version 进行比较 - 检测到漂移时,同步
packageId、version以及参数/输出契约 - 除非用户要求重命名,否则保持映射别名稳定
检查清单
- 已选择正确的更新路径(现有 vs 带版本)
- 已验证输入/输出数据类型契约
- 已清晰标记破坏性变更
- 已检查并同步 manifest
packagesMapping漂移 - 输出包含更新后的包 id/version 以及契约摘要
评论
支持 Markdown