Changing one mechanic without rewriting the whole design document
Narrative assets have real dependencies. Once you write them down, a change stops meaning "regenerate everything" and starts meaning "regenerate these four things".
Published
Here is the situation that decides whether a narrative tool is useful past the first draft. Three weeks in, you change one mechanic — stealth is out, the player now redirects attention instead. What has to change?
With a chat model, the answer is “start over”, because there is no representation of what was built from what. With a document, the answer is “find out by reading everything”, which is the same answer with more steps.
Dependencies are real; they are just not written down
The reason a design change feels catastrophic is that the dependencies between narrative assets are real but undeclared: the beat sheet depends on the mechanic list, dialogue depends on the cast and the quest state machines, and nothing records that. Once each artifact declares what it was built from, a change stops propagating by rewriting everything and starts propagating along the edges — you mark the changed node dirty, follow its outgoing edges, and regenerate exactly what is downstream of it.
The dependencies are not subtle. Everyone knows dialogue depends on characters. The problem is that “everyone knows” does not survive three weeks and two people, and it certainly does not survive being asked precisely which dialogue depends on this character.
Declared, not inferred
There is a tempting shortcut: infer the graph by looking for references — this dialogue mentions that character, so there is an edge. It is worse than it sounds. Inference gives you edges that are not real (a character named in passing) and misses edges that are (a beat that shaped a quest’s structure without naming anything).
Declaration is more work at write time, and it is the difference between a graph you can act on and a graph you have to double-check. When an artifact is generated, it records what it consumed.
What this changes in practice
The estimate stops being a guess. Before regenerating, you can see the dirty set: four artifacts, not forty. That number is what makes the change a decision rather than a leap.
Partial regeneration is safe. Dirty is a state, not an action. Marking things dirty and regenerating them are separate steps, so you can look at the list and regenerate three of the four now.
Your edits survive. This is where dirty propagation and edit sovereignty have to meet. A downstream artifact you rewrote by hand is dirty in the same sense — its input changed — but regenerating it must not silently discard your work. Locked fields are not overwritten, and the run reports how many locks it wanted to cross. That number is the signal worth watching: high means the thing you locked and the thing being regenerated disagree, and it will keep coming up until you decide which is right.
The cost model has to agree
None of this helps if regeneration is priced like first generation. If changing your mind costs the same as the original run, people stop changing their mind, and iteration is the entire point. Regeneration touching only dirty nodes genuinely costs less, so it should be priced less — and saying so out loud is part of the design, not a discount.
Where it stops helping
The graph tells you what might need to change, not what should. A beat sheet downstream of a changed mechanic will be regenerated; whether the result is better is a judgement.
And a change that invalidates the premise — not a mechanic, but the reason the story existed — propagates to everything, correctly. The graph is honest about that too. What it removes is not the work of deciding; it is the work of finding out how much work there is.