Skip to content
Anchor Code

Concepts Execution context

Decided updated 2026-10-10

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.

↑↓ select · Enter open · Esc close