"Don't turn a guess into architecture. A guess nobody revisits is how accidental architecture is born."
The Rule Against Premature Certainty
Waystone's architecture document carries an unusual instruction to itself: keep open questions explicitly open; do not turn guesses about frameworks, vendors, or storage into accidental architecture. That is the concrete-first principle. You do not choose the database, the map provider, or the deployment topology until a real vertical slice makes the decision useful. Not because decisions are bad, but because a decision made before you have evidence is a guess wearing a decision's clothes — and guesses that nobody flags as guesses harden into architecture that everyone later assumes was reasoned.
What This Looks Like in Practice
The v0 engine stores journeys as plain files — a journey record, a plan document, an append-only breadcrumb log — rather than starting with a database schema. The geocoder and the map tiles are named as v0 choices, explicitly replaceable behind the engine's own endpoint. And the document maintains a standing Open Decisions list: migration tooling, routing and elevation providers, offline packet storage, the conflict-resolution surface, the native-client threshold. Each one is a place where the honest answer is "not yet decided," written down as such instead of quietly defaulted into.
Why the Explicit List Matters
Every project makes provisional choices. What is rare is writing down which choices were provisional. That list is what lets a future reader — future-Dad, future-Pippa, future-you — tell the difference between "we chose this for a reason" and "this is just what we grabbed to get moving." Without the list, both look identical in the code six months later, and nobody dares change the second kind because it might be the first. The Open Decisions section is not indecision; it is a map of where the architecture is still allowed to move.