Keep it true · 9
The model changes
The answer to “where is your audit trail, and can we version this?” The model keeps its own history as people work, readable as sentences about what changed, and any version can be brought back. Connect a GitHub repo once and every version is committed there as well.
Every save
- Someone changes the model, and it saves by itself. On the drawing, in a sentence or in Read. Nobody has to remember to commit.
- A save is held against the version it was read at. If another window saved in between, the later save is refused with a choice, and an edit is never silently lost.
- A version is sealed when the meaning changes. At the pace of a working session, and only when what the model says is different. Moving boxes around never makes one. A rename is recorded as a rename, because the thing keeps its identity underneath.
- A connected repo gets a commit. One for each version, with a message that reads as the change. If GitHub cannot be reached the save still succeeds, and the next commit carries the newest state.
Looking back
- Someone opens History. Each version is listed with what changed, in the same sentences the model is read in.
- Any two versions can be compared. What was added, removed, renamed, and which rule about how many changed.
- Any version can be brought back. A restore is an ordinary save, so the same guard applies and what was there before stays in the history.
Taking the model out. The whole model exports as one open file, in the same form the repo receives, and that file opens again as a model. What the business decided its data means is theirs, and it outlives our software.