About code-engine-create
A skill for creating Domo Code Engine packages and preparing their function payloads. It maps datatypes, synchronizes app manifest entries, and verifies the created package version.
Key features
- 01Create package payloads
- 02Map function input and output types
- 03Sync manifest package mappings
- 04Verify package version and contracts
- 05Require explicit release approval
Use cases
- 01Creating a new Code Engine package
- 02Preparing function datatype contracts
- 03Updating an app manifest after creation
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ stahura/ domo-ai-vibe-rules --skill code-engine-createAfter installing, type/code-engine-createin Claude Code to confirm it loaded.
Details
From the project READMECode Engine Package Create (CLI)
Use this skill for package creation workflows, payload generation, and post-create mapping sync.
Intent
This skill covers lifecycle operations that are out of scope for app-runtime invocation skills:
- create new package shell
- publish first package content payload
- infer and normalize function input/output datatypes
- update app
manifest.jsonpackagesMappingentries after create
For in-app function invocation patterns, use ~/.agents/skills/code-engine/SKILL.md.
Primary Execution Path
Prefer community-domo-cli:
community-domo-cli --instance <instance> code-engine create-package --body-file payload.json
Fallback endpoint when CLI path is unavailable:
POST /api/codeengine/v2/packages
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.
Required Payload Shape
{
"name": "My Package",
"description": "Optional",
"code": "// JS source",
"environment": "LAMBDA",
"language": "JAVASCRIPT",
"manifest": {
"functions": [
{
"name": "myFunction",
"displayName": "My Function",
"description": "",
"inputs": [],
"parameters": [],
"output": {}
}
],
"configuration": {
"accountsMapping": []
}
}
}
Create semantics:
POST /api/codeengine/v2/packagescreates a package or version payload target.- For a new version on an existing package, include
idandversionin the create body and send full code/manifest payload.
Datatype Mapping Rules (Auto-Map)
When generating manifest.functions[].inputs/parameters/output, apply these defaults:
payload,params,config,data,body,options=>object- names indicating counts/limits/offsets =>
decimal - boolean-like names (
is*,has*,enabled,required) =>boolean - identifiers/text fields (
*id,name,query,message) =>text - unknowns =>
text - output default =>
object
Use the same type value for type and dataType when both fields are present.
Post-Create Manifest Follow-up
After successful create, update app manifest.json packagesMapping:
- set
packageIdto created package id - set
versionto returned version (or explicit target version) - ensure each mapped function has matching
parametersandoutput
If package ID/version changes, treat existing mapping as drift and sync immediately unless user requests otherwise.
Post-Create Verification (Required)
After create, verify target package/version before declaring success:
GET /api/codeengine/v2/packages/{packageId}- Confirm target version exists and includes expected function names.
- Confirm function inputs/outputs have expected datatypes and nullability.
If create returns an incomplete version shell (for example missing function contracts), hand off to update flow:
PUT /api/codeengine/v2/packages/{id}/versions/{version}viacode-engine-update- Re-run verification after update
Checklist
- CLI-first create attempted
- Endpoint fallback documented if CLI unavailable
- Payload contains
manifest.functions - Datatype mapping applied to each function input/output
- Release was not called unless user explicitly requested release
- Post-create verification completed on target package/version
- Incomplete create result routed to
code-engine-updateand re-verified -
packagesMappingupdated in manifest after create - Result includes package id/version for downstream steps