원클릭으로
skedulo-cli
Use when running any Skedulo CLI (sked) command — deployments, artifact operations, package management, tenant switching.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when running any Skedulo CLI (sked) command — deployments, artifact operations, package management, tenant switching.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
This skill enables Claude to create, edit, and deploy Skedulo Pulse automations via the Automations REST API. Captures the full action/trigger vocabulary, the 9 undocumented schema corrections required to actually get automations to load, JSONata-in-Step-Functions gotchas, and proven workflow patterns. Use any time the user wants to author or edit an automation, debug a 400/500 from the Automations API, or translate a customer webhook/triggered-action into the automation platform.
This skill enables Claude to build, modify, and deploy Skedulo custom functions. Custom functions are server-side APIs that run on Skedulo's platform without requiring users to manage their own infrastructure.
Core skill for authoring and deploying Skedulo HorizonListConfig artifacts. Covers the JSON schema, column Nunjucks template patterns, naming conventions, file structure, and deploy commands for configuring built-in Skedulo object list pages.
Core skill for authoring and deploying Skedulo Horizon platform pages. Covers HorizonPage and HorizonTemplate artifact schemas, the three page authoring flows (Page Builder, Custom Page Builder, and Direct Nunjucks), file structure conventions, and deploy commands.
This skill should be used when the user asks to "add custom functions", "write a fetch handler", "write a save handler", "write a validate handler", "implement a static fetch handler", "add server-side logic to a MEX form", "build a custom HTTP endpoint for MEX", "implement dataObserver handlers", "add TypeScript Lambda handlers", "enable fetchFunction", "enable saveFunction", "enable validateFunction", or "enable staticFunction" in a MEX form. Also triggers when the user needs to save to multiple objects atomically, fetch data across multiple objects in one round-trip, compute server-side aggregates, validate against remote data, or generate dynamic UI from live schema.
This skill enables Claude to build, modify, and validate Mobile Extensions (MEX) for Skedulo Plus. MEX forms are JSON-configured mobile UIs with integrated data fetching and logic.
| name | skedulo-cli |
| description | Use when running any Skedulo CLI (sked) command — deployments, artifact operations, package management, tenant switching. |
| displayName | Skedulo CLI |
| status | available |
| category | Platform |
| featured | false |
| pulseComponents | ["Skedulo CLI"] |
| sdks | [] |
| filePatterns | ["sked.proj.json","skeduloPackage.json"] |
Every tenant-scoped sked command MUST include -a <alias>. No alias in context? Ask the user. No exceptions.
-a <alias>Every sked command that supports -a MUST include it.
<command> --help to confirm -a is supported-a <alias> — alwaysWhy: Context compaction silently drops the alias, causing deploys to the wrong tenant.
Red flags — STOP and check for alias:
| Thought | Reality |
|---|---|
| "I already know which tenant" | Do you? Context may have compacted. Check. |
| "I'll add -a next time" | Add it NOW. There is no next time after a bad deploy. |
| "It's probably the default" | "Probably" has caused hours of debugging. Always specify. |
| "I just ran a command with -a" | That was then. Check you still have it. |
| "This is a quick one-off" | One-off commands hit tenants too. Use -a. |
| "This is a list command, not a deploy" | List commands are tenant-scoped too. Use -a. |
| "I checked --help earlier" | Earlier knowledge may be stale. Check again if unsure. |
--helpRun <command> --help before guessing at flags. Works at every level: sked --help, sked artifacts --help, sked artifacts function list --help. Use it to confirm -a support (see "Always use -a" rule) and discover flags like --dryRun, --json, --verbose.
--json for read-only inspectionUse get --json to inspect artifacts — NOT get -o which downloads files into the repo. Only use -o when you intend to modify the artifact.
list + --json for discoveryQuery the platform instead of asking the user. Pattern: sked artifacts <type> list --json -a <alias>. Use it to get function URLs, introspect schemas, check webhooks, etc. Be self-sufficient.
For field introspection: Use list to get ALL fields on an object in one call — do NOT use get for individual fields. The correct pattern:
sked artifacts custom-object list --json -a <alias> — get exact object namessked artifacts custom-field list --objectName <ExactName> --json -a <alias> — get ALL fields at onceNever guess field names or fire parallel get calls for individual fields. list returns everything you need in one request.
Note: some artifact types return "not implemented" for list — fall back to get --json with a known name, or ask the user.
Auth errors: Run sked tenant list to check token expiry. If expired: sked tenant login web -a <alias> (-a is optional but recommended to associate the login with an alias). Don't debug command syntax when it's an auth issue.
"Not Found" errors: Usually means wrong name/casing (e.g., Projects vs Project). List first to discover exact names: sked artifacts custom-object list --json -a <alias> before querying fields.
CLI errors include stack traces — ignore the stack, read the message field for the actual error. For deeper debugging: DEBUG=*skedulo* sked <command>.
Always ask the user before:
delete command (data loss, cascade effects)sked package register (irreversible — name cannot be changed; does NOT need -a)Safety: Use --dryRun (-d) on package deploys. Prefer upsert (create and update are deprecated). Deleting Lookup fields cascades to Has-many relationships.
When creating or modifying any artifact, never guess the JSON schema.
https://github.com/skeduloDevelopers/SkeduloCLIExamples to /tmp/SkeduloCLIExamples (or git pull if already cloned)This applies to all artifact types: custom-field, custom-object, function, webhook, triggered-action, horizon-page, horizon-template, web-extension, mobile-extension, public-page, user-role.
Why: Artifact schemas vary significantly by type and subtype. Custom fields differ by field type (Picklist needs picklistValues, Lookup needs referenceFields, etc.). Functions, webhooks, and triggered actions each have unique required properties. Guessing leads to failed deploys.
Never do this instead:
The examples repo is the source of truth for artifact JSON schemas. Use it.
Understand what each artifact IS before choosing which to modify. See cli-reference.md for full descriptions.
Key relationships:
list firstquery field contains the subscription logicArtifact availability varies by tenant. Not all artifact types are enabled on every tenant — some may be in alpha/beta with limited rollout. If an artifact command fails unexpectedly, the type may not be enabled on that tenant. Check a different tenant or ask the user.
| Task | Pattern |
|---|---|
| Upsert artifact | sked artifacts <type> upsert -f <file> -a <alias> |
| Inspect artifact | sked artifacts <type> get --name <Name> --json -a <alias> |
| List artifacts | sked artifacts <type> list --json -a <alias> |
| Deploy package | sked package deploy local -p <path> -a <alias> |
| Dry-run deploy | add --dryRun to deploy command |
| Check auth | sked tenant list |
| Re-auth | sked tenant login web -a <alias> |
sked artifacts function NOT functions. All types are singular: function, webhook, custom-field, custom-object, horizon-page, horizon-template, triggered-action, web-extension, mobile-extension, public-page, user-role. When unsure, run sked artifacts --help.-w controls wait time (default 900s). Check output for status.--name; horizon-page uses --slug; custom-field needs --name + --objectName.| Mistake | Fix |
|---|---|
| Guessing artifact JSON schemas | Clone the examples repo. Never construct from memory |
| Falling back to REST API when CLI fails | Read the error message first — usually wrong name/casing or expired auth |
Omitting -a <alias> after context compaction | Always include it. Every command. No exceptions |
Using get -o to inspect an artifact | Use get --json. -o downloads files into your repo |
Using create or update commands | Deprecated. Always use upsert |