Skip to content

Say where to go, stop the story improvising, and price the writing - #2

Merged
mshafir merged 1 commit into
mainfrom
written-worlds-that-talk
Aug 10, 2026
Merged

mshafir merged 1 commit into
mainfrom
written-worlds-that-talk

Conversation

@mshafir

@mshafir mshafir commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Five faults reported from one playthrough of a generated world, and the thread running through all of them is that nothing said anything was wrong.

The opening card never appeared. It waited on the director reporting the world's lore, and a scenario arrives with its lore already written, so the director never asks and never reports — meaning every world generated with improvisation turned on started with no premise, no protagonist and no idea which way the first beat lay. It now goes up as soon as the lore is known.

The people the story hangs on were improvising, so a beat opened, an errand landed in the journal, and the model wrote a pleasant line about the weather instead of the scene the beat existed for. They now answer from an authored tree or from the deterministic menu, never from a model, and they are drawn in their own colour so a bearing on the map points at somebody findable. The reverse fault sat beside it: one authored tree anywhere in a scenario silenced improvisation for the whole cast, because the scripted path answered for people it had nothing written for.

Model calls are priced off the catalogue rather than two hard-coded rows, so a world written on any of the other twelve models is no longer costed at exactly $0.00. The spend shows while the world is being written and again when it is done. Asking to keep the working records every prompt and answer and makes them readable in the app — on the writing screen, and on a page in the menu while playing — rather than only in a file nobody opens.

A tiny size, for trying the pipeline without paying for a world worth keeping: two beats, a handful of places, and conversations written only for the people the story turns on. The boundary grows when a seed offers nowhere for a story to happen, and never past the size it was chosen to be cheaper than.

Underneath all of it, two measured causes. Offline authoring ran on the live director's twenty-second timeout, and 39 of 40 calls in a real run took longer than that — which is why the reported world had fallback lore, procedural names and no conversations at all. And a schema mismatch was treated as permanent on the grounds that it would repeat; the same run had one model answer the dialogue schema 8 times in 26, so it is retried now, with the last attempt spent on a dearer model where the catalogue names one.

Five faults reported from one playthrough of a generated world, and the
thread running through all of them is that nothing said anything was wrong.

The opening card never appeared. It waited on the director reporting the
world's lore, and a scenario arrives with its lore already written, so the
director never asks and never reports — meaning every world generated with
improvisation turned on started with no premise, no protagonist and no idea
which way the first beat lay. It now goes up as soon as the lore is known.

The people the story hangs on were improvising, so a beat opened, an errand
landed in the journal, and the model wrote a pleasant line about the weather
instead of the scene the beat existed for. They now answer from an authored
tree or from the deterministic menu, never from a model, and they are drawn
in their own colour so a bearing on the map points at somebody findable.
The reverse fault sat beside it: one authored tree anywhere in a scenario
silenced improvisation for the whole cast, because the scripted path
answered for people it had nothing written for.

Model calls are priced off the catalogue rather than two hard-coded rows, so
a world written on any of the other twelve models is no longer costed at
exactly $0.00. The spend shows while the world is being written and again
when it is done. Asking to keep the working records every prompt and answer
and makes them readable in the app — on the writing screen, and on a page in
the menu while playing — rather than only in a file nobody opens.

A `tiny` size, for trying the pipeline without paying for a world worth
keeping: two beats, a handful of places, and conversations written only for
the people the story turns on. The boundary grows when a seed offers nowhere
for a story to happen, and never past the size it was chosen to be cheaper
than.

Underneath all of it, two measured causes. Offline authoring ran on the
live director's twenty-second timeout, and 39 of 40 calls in a real run took
longer than that — which is why the reported world had fallback lore,
procedural names and no conversations at all. And a schema mismatch was
treated as permanent on the grounds that it would repeat; the same run had
one model answer the dialogue schema 8 times in 26, so it is retried now,
with the last attempt spent on a dearer model where the catalogue names one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mshafir
mshafir merged commit d91ca02 into main Aug 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant