mcpField
C
code-engine-update

code-engine-update

github.com/stahura云与 DevOps24190 次安装26 周前更新
代码仓库

关于 code-engine-update

用于更新 Domo Code Engine 包和创建版本的 Skill,涵盖契约检查与清单映射同步;未经明确批准不会执行发布操作。

主要功能

  1. 01创建包的新版本
  2. 02更新现有版本
  3. 03检查函数契约变更
  4. 04检测并同步清单映射偏差
  5. 05发布需明确批准

适用场景

  1. 01安全更新包代码
  2. 02为现有包创建版本
  3. 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”的过程中执行发布。
  • 如果看起来需要发布,先停下来并请求明确的发布批准。

更新/新版本行为

首选的创建/更新模型:

  1. 创建新包:POST /api/codeengine/v2/packages
  2. 创建现有包的新版本:同样使用 POST /api/codeengine/v2/packages,并在请求 body 中带上 id 和 version(例如 1.0.1),同时包含代码/manifest 载荷。
  3. 更新现有包版本:PUT /api/codeengine/v2/packages/{id}/versions/{version}
  4. 如果更新失败,因为目标版本已部署/不可变,则创建一个新版本,然后更新该新版本。

执行说明:

  • 对于新版本创建,优先一次性用完整的 code+manifest 载荷创建该版本。
  • 对该特定版本的后续更改使用 PUT。

始终输出结果 packageId 和 version,以供下游 manifest 同步。

契约防护措施

在更新发布之前:

  • 比较现有函数别名与拟议别名
  • 比较参数名称/类型/可空性
  • 比较输出形状/类型
  • 标记破坏性变更(移除必填参数、不兼容的类型变更)

当破坏性变更是有意为之,要求在生成的输出中提供明确的迁移说明。

漂移处理

更新后:

  • 将 manifest.json packagesMapping 与返回的包 id/version 进行比较
  • 检测到漂移时,同步 packageId、version 以及参数/输出契约
  • 除非用户要求重命名,否则保持映射别名稳定

检查清单

  • 已选择正确的更新路径(现有 vs 带版本)
  • 已验证输入/输出数据类型契约
  • 已清晰标记破坏性变更
  • 已检查并同步 manifest packagesMapping 漂移
  • 输出包含更新后的包 id/version 以及契约摘要

评论

支持 Markdown