Schema
SkillStepDefinition
Skill step — invokes a registered system or workspace-authored skill. Dispatches the named skill through the same ``engine_bridge.handle_send`` used by Connect / MCP / Slack / Teams, so a workstream calling ``derive_period`` produces byte-identical behaviour to a direct Connect invocation of the same slug. Inputs are Jinja2-rendered against runtime_vars + prior_outputs + client_context before being validated against the skill's typed Pydantic input model.
| Field | Type | Description |
|---|---|---|
idrequired | string | — |
namerequired | string | — |
type | string | — |
description | string | null | — |
depends_on | string | object[] | — |
stage | string | null | — |
timeout | string | null | — |
retry_policy | RetryPolicy | null | — |
error_handler | StepErrorHandler | null | — |
impact_level | "low" | "medium" | "high" | "critical" | Impact classification for steps.lowmediumhighcritical |
run_mode | "propose" | "auto_run" | Execution mode for steps.proposeauto_run |
requires_approval | boolean | — |
metadata | object | null | — |
examples | StepExample[] | null | Attached example files for this step. Each entry pairs a platform.file_uploads.file_id with a role + tags + notes so the runtime can shape its instruction. Bounded at 20 to keep a reasonable upper limit on the prompt preamble. |
tags | string[] | null | Categorical labels on the step itself (e.g. 'pdf-read', 'coutts', 'fy25'). Free-form; recommended tag set is documented per workstream surface. |
refrequired | string | Skill slug to invoke (e.g. 'derive_period', 'prepare_financial_report'). |
inputs | object | Input mapping passed to the skill's typed input model after Jinja2 render.show nestedEmpty object. |
response_format | "flat" | "envelope" | "conversational_output" | Surface response shape. 'flat' returns the skill output dict; 'envelope' includes the full envelope; 'conversational_output' returns the typed ConversationalOutput shape (conversational skills only).flatenvelopeconversational_output |