The read-only past is the right constraint. There’s a broader principle here — immutability forces clarity. You stop optimizing the past and start writing for today.
The local-first + deterministic output pattern resonates. I’ve been exploring the same instinct in a different domain: using a compiler to produce reproducible HTML from a spec, so the output is always the same regardless of when you run it. Different problem, same underlying distrust of runtime variability.