Concepts Execution context
Execution context
Why a recipe never says "project", and how the interpreter knows which project to work with.
When a user runs a recipe, they have already selected a project in Anchor. That selection is the execution context. From it the interpreter receives everything it needs: the server and client settings, repository roots, branches, language variants, available tools and permissions.
This is why a recipe does not write project.something. A recipe talks about server and client, and the context decides which server and which client those are.
What this gives you
- The same recipe works in different projects without edits.
- The internal structure of settings storage does not leak into the recipe and does not become part of the language.
- A recipe contains no secrets and no paths specific to one machine.
If the context is incomplete
A server binding is missing, the client has several languages and it is unclear which one is meant, a write target is ambiguous: in all of these cases the recipe stops with a clear error instead of picking something at random.
Status: a design decision. The prototype does not yet produce diagnostics with such messages.
Next: server and client.