Variables
Generated Markdown for references/concept_variables.md.
Open book page Back to the skill graph
# Variables
_Playbook vars, gatherer results and CLI overrides — scope, lazy evaluation, and the shadowing pitfall._
A playbook's `vars` block holds free-form `name = expr` bindings. Expressions may
reference gatherer results and other vars. Conditions and properties evaluate
**lazily at run time** against the full scope; gather params evaluate **before**
variables resolve. The full precedence and override rules are in
[Variable precedence](../references/fact_variable_precedence.md).
> [!WARNING]
> **Shadowing pitfall**
> Property/params block fields **shadow** outer variables: `url = url` inside a `properties` block is a self-reference cycle error. Use distinct names (`tool_url = ...` then `url = tool_url`).
## Related
- [Playbook](../references/concept_playbook.md)
- [Gatherer](../references/concept_gatherer.md)
- [Variable precedence and overrides](../references/fact_variable_precedence.md)
[← Back to SKILL.md](../SKILL.md)