openapi-arazzo
Skill1 starsChanged 31 days agoMITView on GitHub
Arazzo 1.1: describe and run multi-step API workflows over OpenAPI and AsyncAPI operations, with inputs, steps, success criteria, outputs and retry or goto actions. Use when writing, reviewing or executing an arazzo.yaml or arazzo.json, chaining API calls into an end-to-end flow (login then fetch, create then poll, place order then wait for an event), declaring sourceDescriptions of type openapi, asyncapi or arazzo, passing data between steps with runtime expressions ($inputs, $steps, $response.body, $message.payload), writing successCriteria with simple, regex, JSONPath or XPath conditions, adding onSuccess and onFailure actions, using AsyncAPI send and receive steps with correlationId and timeout, upgrading from Arazzo 1.0, or validating against the official Arazzo JSON Schema. Triggers: Arazzo, OpenAPI workflows, arazzo: 1.1.0, workflowId, stepId, successCriteria, operationPath, channelPath, application/vnd.oai.workflows.
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 0 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Prefer
operationIdoveroperationPathorchannelPath: when the target operation has one (§ 5.8.5.1). - Very specific: line 42
Define each workflow's contract: Write inputs as JSON Schema 2020-12 and name the outputs the caller gets back.
- Very specific: line 48
Say what success means: Add successCriteria to every step that can return more than one outcome, and to every AsyncAPI receive step.
- Very specific: line 51
Handle the other paths: Add onFailure retries with retryAfter and retryLimit for transient errors, goto for branches, and workflow-level …
- Very specific: line 72
references/objects.md: every object and field: root, Info, Source Description, Workflow, Step, Parameter, Success and Failure Actions, …
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Arazzo Specification
The Arazzo Specification, published by the OpenAPI Initiative (OAI), describes sequences of API calls and their dependencies as workflows over one or more source descriptions (OpenAPI, AsyncAPI or other Arazzo documents). With this skill the agent writes, reviews, validates and executes Arazzo Descriptions.
Follow the workflow below step by step. Every rule here comes from a source in Sources, with the section it cites. Section numbers are those of Arazzo 1.1.0. When a rule and the pinned source disagree, the source wins; when the source has a newer revision than the pin, follow the refresh steps.
Inputs (fill in, or ask before starting)
- Role: author (writes the description), executor (a tool, test runner or agent that runs workflows), or reviewer.
- Source descriptions: the OpenAPI and AsyncAPI documents the workflows call, and their
operationIds. - Revision: the pinned revision in Sources, unless the user names another.
- Sources: when refreshing this skill or when a rule looks out of date, re-read every URL in Sources first, check spec.openapis.org/arazzo for a newer version or schema iteration, check the
v1.2-devbranch for movement, and update the pins.
Invariants
arazzo,info,sourceDescriptionsandworkflowsare REQUIRED, and both lists have at least one entry (§ 5.8.1.1). Tooling MUST interpret the document byarazzo(§ 5.8.1.1).workflowIdis unique in the description andstepIdis unique in its workflow; both are case-sensitive and SHOULD match[A-Za-z0-9_\-]+(§ 5.8.4.1, § 5.8.5.1).- A step targets exactly one of
operationId,operationPath,channelPathorworkflowId(§ 5.8.5.1). With more than one non-arazzosource description,operationIdMUST be written as$sourceDescriptions.<name>.<operationId>(§ 5.8.5.1). - Prefer
operationIdoveroperationPathorchannelPathwhen the target operation has one (§ 5.8.5.1). - Every
successCriteriaentry MUST pass for the step to succeed, and the list is non-empty when present (§ 5.8.5.1, § 5.8.11.4.6). - Defaults: success goes to the next step, failure ends the workflow (§ 5.8.5.1). The first matching action in order is executed (§ 5.8.5.1).
- Operation step parameters set
in; with aworkflowIdstep, parameters map to the target workflow's inputs (§ 5.8.6.1). - Steps run in an order that satisfies
dependsOnand every$steps.<id>.outputsreference (§ 5.8.5.2.4). In a sequential workflow, a reference to a later step's outputs is an error (§ 5.8.5.2.5). - Workflows from other Arazzo documents are listed in
sourceDescriptions(§ 5.3) and referenced by$selfwhen the target has one (§ 5.5.2). - Processing a description can perform unsafe operations on arbitrary hosts; the consumer must make sure they are not harmful (§ 6).
Workflow
- List the source descriptions. Give each a
name,urlandtype(openapi,asyncapiorarazzo). API URLs come from the source description's servers, not from the Arazzo document (§ 5.7). ->references/objects.md✓ Every operation the workflows call resolves in one of the listed sources. - Define each workflow's contract. Write
inputsas JSON Schema 2020-12 and name theoutputsthe caller gets back. ->references/objects.md✓ Every$inputs.*used in steps is declared ininputs. - Write the steps. Point each at one operation or workflow, pass parameters and a request body with runtime expressions, and expose the values later steps need as
outputs. ->references/expressions.md,references/examples.md✓ Invariants 2, 3, 7 and 8 hold. - Say what success means. Add
successCriteriato every step that can return more than one outcome, and to every AsyncAPI receive step. ->references/expressions.md,references/asyncapi-steps.md✓ Each criterion with atypealso has acontext(§ 5.8.11.5). - Handle the other paths. Add
onFailureretries withretryAfterandretryLimitfor transient errors,gotofor branches, and workflow-level actions for shared handling. Factor repeats intocomponents. ->references/execution.md✓ Every retry has a limit, and everygototarget exists in the same workflow or is a resolvableworkflowId. - Validate. Validate against the official Arazzo schema for the declared version, then check what the schema cannot.
->
references/versions.md✓ Schema validation passes, and every reference resolves. - Execute safely (executor role). Run steps in dependency order, evaluate criteria as specified, and treat the description as untrusted input.
->
references/execution.md✓ No step runs against a host or operation the operator has not approved.
Verify before done
- The description validates against the Arazzo 1.1 schema, iteration 2026-04-15 (
references/versions.md). - Every
operationId,operationPath,channelPathandworkflowIdresolves in a listed source description (§ 5.8.5.1). - Every runtime expression matches the ABNF in § 5.9, and every referenced step output exists on an earlier or
dependsOnstep (§ 5.8.5.2). - Every component key matches
^[a-zA-Z0-9\.\-_]+$(§ 5.8.9.1), and every Reusable Objectreferencepoints to an existing component (§ 5.8.10). - Every AsyncAPI step sets
action, and every receive step hassuccessCriteriaor meets both conditions for omitting it (§ 5.8.5.3). - The entry document is named
arazzo.yamlorarazzo.json(RECOMMENDED, § 5.3).
Reference index
references/objects.md: every object and field: root, Info, Source Description, Workflow, Step, Parameter, Success and Failure Actions, Components, Reusable Object. Load for steps 1 to 3.references/expressions.md: runtime expressions, Criterion conditions and their evaluation, Selector, Expression Type, Request Body and Payload Replacement Objects. Load for steps 3 and 4.references/asyncapi-steps.md: send and receive steps,channelPath,correlationId,timeout, and asynchronous success. Load for step 4.references/execution.md: execution order, action semantics, retries, and security for executors. Load for steps 5 and 7.references/versions.md: 1.0 and 1.1 differences, the official schemas, what a schema cannot check, and the 1.2 development line. Load for step 6.references/examples.md: complete workflows in YAML. Load for step 3.
Related skills
openapifor the OpenAPI descriptions that steps call:npx skills add ScaleDockHQ/scaledock-skills --skill openapi.asyncapifor the AsyncAPI descriptions that send and receive steps use:npx skills add ScaleDockHQ/scaledock-skills --skill asyncapi.openapi-overlayto addoperationIds or other fields to a source description you cannot edit:npx skills add ScaleDockHQ/scaledock-skills --skill openapi-overlay.
Sources
Status uses the publishing body's own maturity term. Checked is the date the source was last read.
- Arazzo Specification v1.1.0: Released, 1.1.0 (2026-05-17), checked 2026-10-02.
- Arazzo 1.1.0 release notes: Released, 1.1.0 (tagged 2026-05-18), checked 2026-10-02.
- Arazzo versions and schema iterations: OAI index, latest v1.1.0, checked 2026-10-02.
- Arazzo 1.1 JSON Schema: Published schema, iteration 2026-04-15, checked 2026-10-02.
- Arazzo 1.0 JSON Schema: Published schema, iteration 2025-10-15, checked 2026-10-02.
- Arazzo
v1.2-devbranch text: In development, commit 6e08955 (2026-09-30), checked 2026-10-02. Draft posture: track. - RFC 9535: JSONPath: Query Expressions for JSON: RFC (Proposed Standard), RFC 9535, checked 2026-10-02.
In this repository40 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- find-skillsSkill
- a2aSkill
- ag-uiSkill
- ap2Skill
- asyncapiSkill
- authzenSkill
- cedarSkill
- cloudeventsSkill
- eu-ai-actSkill
- fapiSkill
- gnapSkill
- jwtSkill
- mcp-authorizationSkill
- oauthSkill
- ocsfSkill
- openapi-overlaySkill
- openapiSkill
- openfeatureSkill
- openid4vcSkill
- openid-connectSkill
- openid-federationSkill
- openidSkill
- opentelemetry-genaiSkill
- owasp-agenticSkill
- problem-detailsSkill
- ratelimit-headersSkill
- scaledock-agent-permissionsSkill
- scaledock-enterprise-identitySkill
- scaledock-http-apiSkill
- scaledock-mcp-serverSkill
- scaledock-repo-standardSkill
- scimSkill
- shared-signalsSkill
- spiffeSkill
- standard-schemaSkill
- typespecSkill
- web-bot-authSkill
- webmcpSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

