Prompt variables
Prompts reference context with a double-brace syntax. When a step runs, the engine substitutes each placeholder with a value from the current context.
Syntax
{{repo_full}}
{{ commit_sha }}
{{extra.tenant_id}}
- Wrap a key in double braces:
{{key}}. - Whitespace inside the braces is fine:
{{ key }}works. - Use dots to reach into nested objects:
{{extra.tenant_id}}reads thetenant_idfield of theextraobject.
The matching rule is essentially {{ name(.name)* }} - a key, optionally followed by
dotted sub-keys.
How values render
The engine resolves the reference against the context and renders it:
| Value | Rendered as |
|---|---|
| A string | The string itself |
| A number / boolean | Its literal value |
| An object or array | JSON (with sorted keys) |
Missing / null | The literal text null |
Because objects render as JSON, you can drop a whole structured value into a prompt with a single placeholder - useful for passing an earlier step's full result to the next.
What you can reference
A placeholder resolves if it names one of:
- a built-in variable,
- an
extrasub-key, or - a key emitted by an earlier depth in this workflow.
The builder validates references live, so a red token means the key won't exist at run time.
Next: the built-in variables that are always available.