Prompt templates
Each rich prompt editor advertises the markers its Step actually resolves.
The full Prompt template on Generate Text — and an explicitly declared
template on a Custom Node — supports both input slots and version groups.
Style & constraints on Generate Image and Generate Video is only an
optional modifier appended to the main Prompt input, so it supports version
groups but not @text, @image, or other input-slot markers. The plain
Export filename field on a terminal Step accepts the same marker grammar,
with the filename-specific behavior described below.
The rule
@name resolves to the label — the human-readable string a
viewer would expect.
You are translating the document below into @Language.
Document:
@text
Two kinds of names are available, distinguished in the editor by colour:
- Input slots (green, full templates only) —
@text,@image, anything wired in from an upstream Step. Renders as the upstream Step's output for this content version. - Version groups (cyan) —
@Language,@Platform,@Length, … one per version group declared in your space. Renders as the value's human label (中文,TikTok).
When you add a version group, its exact name becomes the marker: Platform
creates @Platform, Content Length creates @{Content Length}, and
内容平台 creates @{内容平台}. Names are case-sensitive in prompts; duplicate
group names are rejected so every marker identifies exactly one group.
Unknown names get a red dashed underline and a "did you mean…?" suggestion. Unresolved names are left as-is in the final prompt — IceFold never silently drops what it can't resolve.
Bounded form: @{name}
When adjacent text would otherwise read like part of the identifier, wrap the name in braces. The two forms substitute identically — braces are purely a disambiguation tool.
report_@{Target Language}.v1.txt → report_中文.v1.txt
Escape: @@
To render a literal @ — e.g. Hello @user in prose — double it:
Hello @@user → Hello @user
Doubling extends naturally: @@@@ renders @@. Note that an @
preceded by a letter or digit is already ignored, so
[email protected] stays literal without any escape.
Editor affordances
The Prompt template field is more than a textarea. While you type:
- Chips toolbar above the editor lists every placeholder available for this parameter, grouped by source. Click to insert. Unwired input slots show dimmed; version-only Style & constraints fields do not list inputs.
- Autocomplete opens when you type
@. Type@{to switch the menu to bounded-form suggestions. - Hover any pill to see its kind and what it resolves to for the content version currently previewed.
- Preview panel below the editor mirrors the real backend substitution: pick a content version from the dropdown and see exactly what prompt the LLM will receive.
Grammar summary
| Form | Renders |
|---|---|
@name |
the label for name in this content version |
@{name} |
same, with explicit edges |
@@ |
literal @ |
[email protected] |
literal — @ after a word char is prose |
@unknown |
literal @unknown, flagged red in the editor |
In Export filename, only version group markers are substituted, and they use the value id:
@Languagebecomeszh, not the human label中文. This keeps exported names stable. In Prompt template fields,@Languageuses the label.
