stahura/domo-ai-vibe-rules

code-engine-update

Update Domo Code Engine packages through CLI-driven versioned lifecycle workflows with compatibility checks, datatype contract safeguards, and manifest mapping drift synchronization.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill code-engine-update

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Code Engine Package Update (CLI)

Use this skill for package update/version workflows and safe contract evolution.

Intent

This skill covers:

  • update existing package code
  • create a new version on an existing package id
  • detect and handle mapping drift between package and app manifest
  • validate datatype contract stability

For app-runtime invocation code, use ~/.agents/skills/code-engine/SKILL.md.

Primary Execution Path

Prefer community-domo-cli:

bash
community-domo-cli --instance <instance> code-engine update-version <package_id> <version> --body-file payload.json

Fallback endpoint pattern:

http
POST /api/codeengine/v2/packages

with id and version set in body for versioned update behavior.

Release Safety Rule

Hard rule: never call any Code Engine release endpoint unless the user explicitly says \"release\".

  • Do not infer release from context.
  • Do not release as part of \"finish\", \"publish\", or \"make it work\".
  • If release appears necessary, stop and ask for explicit release approval first.

Update/New-Version Behavior

Preferred create/update model:

  1. Create a new package: POST /api/codeengine/v2/packages
  2. Create a new version of an existing package: also POST /api/codeengine/v2/packages with id and version (for example 1.0.1) in the request body, including code/manifest payload.
  3. Update an existing package version: PUT /api/codeengine/v2/packages/{id}/versions/{version}
  4. If update fails because the target version is deployed/immutable, create a new version and then update that new version.

Execution notes:

  • For new-version creation, prefer creating the version with full code+manifest payload immediately.
  • Use PUT for subsequent changes to that specific version.

Always emit resulting packageId and version for downstream manifest sync.

Contract Safeguards

Before update publish:

  • compare existing function aliases vs proposed aliases
  • compare parameter names/types/nullability
  • compare output shape/type
  • flag breaking changes (removed required params, incompatible type changes)

When breaking change is intentional, require explicit migration note in generated output.

Drift Handling

After update:

  • compare manifest.json packagesMapping against returned package id/version
  • sync packageId, version, and parameter/output contracts when drift detected
  • keep mapping aliases stable unless user requested rename

Checklist

  • [ ] Correct update path selected (existing vs versioned)
  • [ ] Input/output datatype contracts validated
  • [ ] Breaking changes flagged clearly
  • [ ] Manifest packagesMapping drift checked and synchronized
  • [ ] Output includes updated package id/version and contract summary

Related by task

from this repository

More skills

All skills