IceFold Docs
Guides

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: @Language becomes zh, not the human label 中文. This keeps exported names stable. In Prompt template fields, @Language uses the label.