Expand description
Author-time ${…} variable resolution (ADR-0005, TECH-SPEC §8).
${…} is the author-time tier, resolved during lowering — recursively
(substituted values may themselves contain ${…}, spike-verified), with a
depth cap of MAX_DEPTH. {{…}} is hurl’s run-time tier and passes
through untouched. $${ escapes to a literal ${ (applied after the final
pass, so escaped text is never re-resolved).
Reference forms: ${param} (scope lookup: step args > macro defaults) ·
${env:NAME} / ${env:NAME:-default}
(injected snapshot — core reads no environment) · ${run:id} (injected) ·
${global:key} (World read at lower time) · ${secret:NAME} (emits the
{{NAME}} run-time placeholder and records the name — values never enter
lowered text) · ${fake:kind} (deterministic synthetic data).
Structs§
- Resolution
- A successful resolution: the final text plus what it referenced.
- Resolve
Ctx - Everything a resolution pass may read. All values are injected — resolution itself is pure (core purity).
Enums§
- Resolve
Error - Why a
${…}reference failed to resolve. Codes are stable diagnostic identifiers. - Resolve
Mode - How strictly to treat values that only exist at run time.
Constants§
- MAX_
DEPTH - Maximum resolution passes before assuming a reference cycle (TECH-SPEC §4.4).