Treat an LLM as the step function of a Turing machine. Everything else falls out: state lives on disk, the program is markdown, runs are resumable and observable, and "agents" are just user-authored ...