From kora-authoring
Read when creating or changing Kora workflow release source: org-model resources, capabilities, operations, decisions, processes, service scripts, runtime SDK calls, managed artifacts, validation, release creation, or deployment follow-up. Not for extension package authoring, product UI route lookup, platform inspection, or exact schema lookup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/kora-authoring:kora-workflow-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when the user wants to create or change workflow release source:
references/agent-config.mdreferences/artifacts.mdreferences/capability-resource.mdreferences/credentials.mdreferences/decision-resource.mdreferences/filesystem.mdreferences/installed-extension-discovery.mdreferences/operation-and-extension-resources.mdreferences/org-model-resources.mdreferences/patterns-and-examples.mdreferences/process-flow-nodes.mdreferences/service-io.mdreferences/testing.mdreferences/yaml-resource-schemas.mdUse this skill when the user wants to create or change workflow release source: add a role, add a person, introduce a capability, restructure resources, design a process, create an operation, connect service code to an installed extension, or make a workflow handle runtime inputs, outputs, and managed artifacts.
Describe planned and completed work in product terms -- what the workflow does -- not filenames, paths, YAML kinds, script languages, or runtime SDK wiring, unless the user asks for implementation detail or you are explaining a failure.
Keep validation and repair loops internal: report the product behavior, the checks that passed, and only the diagnostics that need user input.
Do not offer provider-specific destinations such as Slack or email unless the user named that provider, extension discovery shows the resolved environment supports it, or the user is explicitly planning missing extension setup. Before discovery, use generic destinations: run output, a modeled human task, or an installed extension if available.
This skill is a table of contents. Read the smallest reference that answers the
next question. For exact resource fields, use kora schema get <resource> --json; the CLI schema wins over prose. Schema resource names are lowercase
registry names such as process, operation, capability, and decision,
not YAML kind values.
Fresh workflow source has a schema preflight. Before writing a new bundle from
an empty workspace, either start from the complete minimal service workflow in
references/patterns-and-examples.md or query the current schemas first:
manifest, organization, assignments, operation, and process. Query
role, person, agent, capability, and decision as needed before using
those resources. Use kora schema get <schema-name> --json once per schema.
The schema name for kora.yaml is manifest, not project.
The chat source workspace is the source editing area for workflow source files. It may start empty.
The first durable server-side artifact is created with
kora release create <dir> --json. Release creation does not create a live
deployment. The target product path is release creation followed by explicit
environment deployment.
Default source resolution:
test, staging,
production, or another environment, use it. Otherwise inspect
kora environment list --json. If exactly one environment exists, use it as
the default resolved environment; if multiple environments exist, ask which
environment before materializing release source.kora deployment list --environment <environment> --json.kora release source <release> --out <empty-temp-dir> --json. Then copy the
exported files into the chat workspace root before editing.source/, src/, or
project/; edit workspace-root paths like org/..., processes/..., and
scripts/... directly.For read-only inspection of already-created workflow or org-model facts, use
the CLI's release snapshot selectors instead of materializing source:
--release <release> for a named immutable release, or
--environment <environment> for the selected environment's current live
deployment release.
Every workflow source bundle has six layers you may touch:
Human and agent task nodes depend on this runtime chain:
role -> capability -> assignment -> process task
If any link is inconsistent, the workflow will not resolve at runtime.
Service nodes are different: they call an Operation and do not need roles,
capabilities, agents, or assignments unless the workflow also has human/agent
task nodes. Still create org/assignments.yaml for every fresh source bundle; use an
empty spec.roles: {} registry when the workflow has no human or agent tasks.
kora-extension-builder skill and the
extension lifecycle, not workflow release source.kora is an authoring and inspection tool, not available inside live
workflows, operations, scripts, or agent prompts. Do not put kora commands
in workflow YAML, scripts, operations, or agent prompts./workspace. Package installs, node_modules,
virtualenvs, caches, and build output created while authoring are scratch
state unless the source bundle has an explicit deterministic packaging
strategy.Resolve the intended environment once (see Core Mental Model). Use that same environment for extension discovery, contract fetches, node tests, release validation, deployment, and run commands. Do not discover an extension in one environment and test, release, deploy, or run against another.
For extension-backed service work:
kora extensions get ... --json reports state: "ready".setup_required, route the user to Settings setup before publishing
or running workflow code. If it is disabled, tell the user it must be
enabled. Use the returned message as the user-facing explanation.kora extensions invoke <extension-name> <function-name> --environment <environment> --input @input.json --yes --json) after fetching
its exact schema. Do not create throwaway workflow source just to inspect
provider data.Script-backed service nodes invoke an Operation.
@kora/runtime-sdk and use getInput,
extensions.invoke, and emitOutput for operation input, installed
extension functions, and stdout JSON. Cloud-backed providers are still
installed extensions from the script perspective.paramBindings shape operation stdin before the script runs.spec.bindings.env and
spec.bindings.secrets; names and injected env vars must not use the
reserved KORA_ prefix.spec.bindings.extensions, but they do not read extension storage or
extension secrets directly.spec.script.parseStdoutAsJson is true or omitted, stdout must contain
exactly one valid JSON value. Log diagnostics to stderr.resultMapping maps emitted stdout into the service node's declared output.
Without resultMapping, script stdout must be a JSON object that can shallow
merge into workflow state.resultMapping fields are skipped only when the source path is
absent. A present null value is mapped and must validate.KORA_ARTIFACT_MANIFEST
localPath entries; do not persist manifest local paths into workflow state.kora.yaml
org/
org.yaml
roles/<name>.yaml
people/<name>.yaml
agents/<name>.yaml
assignments.yaml
capabilities/
processes/
operations/
decisions/
scripts/
templates/
Keep entity names in resource metadata, not inferred from filenames.
When creating source from scratch or deliberately restructuring it, prefer this order so references resolve cleanly. Complete the fresh workflow source schema preflight before writing the first file.
kora.yaml) and organization (org/org.yaml)org/assignments.yaml with spec.roles: {} for every new source bundleBefore editing:
kora.yaml and the target area directly before scaffolding foundational
files.read or ls the area you plan to change.grep for references before renaming or deleting anything.While editing:
types: and use only
the node fields the schema supports.call or call.each needs a callable manual start marked internal: true.task.each or call.each for runtime collections.promptAttachments
on task / task.each for selected top-level file artifact input fields.
Prefer an earlier extractor service node for PDFs, Office docs, HTML, ZIPs, or
other binary/rich attachments; attach only the extracted text or image
artifact to the agent prompt.resultMapping and the declared process service-node
output type agree.null, unless the schema deliberately allows null.After meaningful changes:
kora test node <workflow-name> <node-id> --workspace <dir> --input @input.json --environment <environment> --json
for touched executable service nodes when you can supply meaningful node
input.
Use this before claiming artifact-producing nodes are verified; release
creation and deployment do not prove artifact capture.kora release create <dir> --json only when the user asks to create a
release artifact from source. Then:
[release detail](/app/releases/<release>).kora environment list --json before offering deployment follow-up.
If exactly one environment is available, default to that named environment
and ask whether to deploy there. If multiple environments are available, ask
which environment should receive the release.kora release validate <release> --environment <environment> --json to
check one environment's readiness.kora environment deploy <environment> <release> --json only when the
user asks to deploy a release, and name the target environment in your
confirmation.kora-extension-builder
skill only when a new extension package source is needed. Release creation
does not publish, install, or grant extensions; extension package and
install lifecycle actions are admin/product workflows outside workflow source.Cascading/destructive changes:
grep.Reminder: real org membership, runtime facts, workflow runs, tasks, releases,
runtime variables, workflow artifacts, and resource schemas are not in the
workspace. Use kora for those.
references/org-model-resources.md — modeled people, roles, agents, and
assignmentsreferences/capability-resource.md — capability resource shapereferences/process-flow-nodes.md — process node types and flow rulesreferences/patterns-and-examples.md — common workflow patterns and one
complete current project examplereferences/installed-extension-discovery.md — find installed extensions,
search functions/tools/skills, and fetch one exact callable contractreferences/operation-and-extension-resources.md — operations, service
scripts, and runtime SDK bindings for selected extension functionsreferences/service-io.md — operation stdin, stdout, emitOutput, and
resultMappingreferences/artifacts.md — managed artifact declarations, manifests, and
send-template artifact URLsreferences/credentials.md — runtime variables, org-secret bindings, and
extension secret boundariesreferences/filesystem.md — live runtime filesystem and dependency
availabilityreferences/testing.md — workflow-node and artifact smoke-test routingreferences/decision-resource.md — decision resource shapereferences/agent-config.md — agent-specific modelingreferences/yaml-resource-schemas.md — YAML shape companionreferences/org-model-resources.mdreferences/process-flow-nodes.md, then
references/patterns-and-examples.mdreferences/installed-extension-discovery.md, then
references/operation-and-extension-resources.md, then references/service-io.mdreferences/installed-extension-discovery.mdreferences/service-io.mdreferences/artifacts.md, then references/filesystem.mdreferences/testing.mdkora schema get <resource> --jsonkora-extension-builder skill.kora-product-ui skill.kora with the matching family, driven by the
bootstrap source-of-truth map.kora schema get <resource> --json, not skill
prose.Creates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.
npx claudepluginhub raw-labs/kora-releases --plugin kora-authoring