aws-step-functions — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited aws-step-functions (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
AWS Step Functions uses Amazon States Language (ASL) to define state machines as JSON. With AWS Step Functions, you can create workflows, also called State machines, to build distributed applications, automate processes, orchestrate microservices, and create data and machine learning pipelines.
This skill provides comprehensive guidance for writing state machines in ASL, covering:
$states reserved variableAssignLoad the appropriate reference file based on what the user is working on:
| Standard | Express | |
|---|---|---|
| Max duration | 1 year | 5 minutes |
| Execution semantics | Exactly-once | At-least-once (async) / At-most-once (sync) |
| Execution history | Retained 90 days, queryable via API | CloudWatch Logs only |
| Max throughput | 2,000 exec/sec | 100,000 exec/sec |
| Pricing model | Per state transition | Per execution count + duration |
| `.sync` / `.waitForTaskToken` | Supported | Not supported |
| Best for | Auditable, non-idempotent operations | High-volume, idempotent event processing |
Choose Standard for: payment processing, order fulfillment, compliance workflows, anything that must never execute twice.
Choose Express for: IoT data ingestion, streaming transformations, mobile backends, high-throughput short-lived processing.
JSONata is the modern, preferred way to reference and transform data in ASL. It replaces the five JSONPath I/O fields (InputPath, Parameters, ResultSelector, ResultPath, OutputPath) with just two: Arguments (inputs) and Output.
Enable at the top level to apply to all states:
{ "QueryLanguage": "JSONata", "StartAt": "...", "States": {...} }Or per-state to migrate from JSONPath incrementally:
{ "Type": "Task", "QueryLanguage": "JSONata", ... }JSONPath is still supported and is the default if QueryLanguage is omitted — existing state machines do not need to be migrated.
"QueryLanguage": "JSONata" at the top level for new state machines unless the user wants to use JSONPathOutput minimal — only include what the state immediately after the current state needsAssign to store variables needed in later states instead of threading it through Output$states.input to reference original state inputAssign and Output are evaluated in parallel — variable assignments in Assign are NOT available in Output of the same state$data.nonExistentField throws States.QueryEvaluationError$states.context.Execution.Input to access the original workflow input from any state.asl.json extension when working outside the consolearn:aws:states:::lambda:invoke) over the SDK integrationStates.QueryEvaluationError — JSONata expression failed. Check for type errors, undefined fields, or out-of-range values.$ or $$ at the top level of a JSONata expression — use $states.input instead.{% %} delimiters around JSONata expressions — the string will be treated as a literal.Assign and expecting them in Output of the same state — new values only take effect in the next state.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.