principles · 02

One writer per table

A single command-line tool owns the content lifecycle. The publishing tool and the client-facing workspace are projections of it, never sources of truth.

[DRAFT]The rule is settled. This wording has not had a voice pass.

Every system like this grows three or four places where a piece of content appears to exist: a database, a scheduling tool, a client-facing workspace, a chat message. The failure mode is not that they disagree — they will always disagree briefly — it is that nobody can say which one is correct.

The rule here is that one table has one writer:

When a projection drifts, the fix is always in the same direction: recompute the projection from the source. There is never a negotiation about which surface wins, because that was decided before the code was written.