Variable filling & prompt preview
Pick a public template, fill its text/enum variables, and get a single-pass whitelisted {{name}} substitution. The preview is exactly what gets copied; Unicode is lossless and no expression ever executes.
Inputs and parameters
templateId— Template (public id)variables— Template variables (generated per template)
Real example
templateId=article-outline; topic=Internationalisation for static sites; audience=Front-end developers; tone=neutral; sections=5
→ You are a content editor. Produce a directly actionable article outline for the topic below.
Topic: Internationalisation for static sites
Audience: Front-end developers
Tone: neutral
Maximum sections: 5
… (remaining source text unchanged; {{sections}} is replaced in "list no more than 5 sections" too)
Note: the copied text equals the preview exactly; entering "{{undefined}}" as audience keeps that literal string — no second-pass execution.
Limits and failure handling
No model is called and no answer is generated; output is the substituted plain text. Missing values, illegal names, over-long values, invalid enum values and unknown keys all fail. {{}} in user input is never re-executed. "Use this template" degrades to Copy while P17/P16 are disabled; testedAt=null means unvalidated.
FAQ
Why are some placeholders not replaced?
Only placeholders declared in variables[] with names matching ^[a-zA-Z][a-zA-Z0-9_]*$ are whitelisted; undeclared ones stay literal text and are never evaluated.
Does a validation error clear my input?
No. The error code (MISSING_VARIABLE / ILLEGAL_VARIABLE_NAME / VALUE_TOO_LONG / INVALID_ENUM_VALUE, etc.) appears in the result area while the form keeps your input.