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.

Voir la source

Mode d’emploi

  1. Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
  2. Consultez le document original pour les outils, identifiants et environnements requis.
  3. Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/stahura/domo-ai-vibe-rules --skill code-engine-update

Avant de commencer

  • L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
  • Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

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

Tâches connexes

du même dépôt

Autres Skills

Tous les Skills