Story Studio
Story Studio is a "story factory" I built in Python. It lets anyone with an idea and good taste produce anything from short stories to huge novels. It works best when you guide it to do things your way, and it can also run mostly hands-free.
Inside, AI models work in fixed roles. One plans, one writes, and others check the work against sources or read it the way a doubtful reader would. You decide how much to steer. A short story asks you for two decisions: which opening to keep, and whether the finished story passes. A novel can be guided chapter by chapter, or you can approve the cast, the bibles, the plan and the writer, and then let the studio draft, check and repair the book on its own. It comes back to you at the milestones you set, at the end of each book, and whenever it cannot make a draft any better.
I made the first commit on 24 September. By 2 October it had written a short story of about 6,000 words and the first book of a historical mystery set in the Lower Congo in 1884, 18 chapters and about 41,700 words, and I had read and approved both. Book 2 is under way, and it is where the studio taught me the most: every automated check passed, and the chapters were bad.
How the factory works
Once I have chosen the cast, an AI model in the coordinator role (I chose Opus 5.5) writes the bibles: the reference notes on the world, the characters and the timeline that every chapter has to agree with. Then it writes a plan for each book. A model from another company checks both, and nothing is drafted until I have approved them.
- 01BiblesOpus 5.5Human approval
- 02PlanOpus 5.5Human approval
- 03Writer auditionsNames hiddenHuman approval
- 04DraftingFable 5.1
- 05Fact checksGPT-6.1 Sol
- 06Doubting readerOpus 5.5
- 07RepairWriter, then checkerHuman approval
The current setup: the stages a book moves through, the model in each role, and the points where I approve.
The writer is chosen by audition. Candidate chapters are shuffled and shown in numbered pairs, and the model names stay in a file I don't open until I have chosen. That way I judge the writing and not the name on it.

The audition page: two candidate openings of chapter 1, numbered, with no model names.
For Book 1, I picked candidate "2a". It turned out to be Fable 5.1, which went on to write all 18 chapters.
Facts come from sources. For the stories so far, that has meant 18 period sources, mostly travel accounts and ethnographies. Before a chapter is drafted, a source desk hands the writer passages from them, and the studio drops any passage it cannot find in the file it is supposed to come from. After drafting, a checker reads the chapter against the same sources and has to cite the file and line for every finding. In that short story the draft gave a character a brass coffee pot. The checker found coffee pots in the sources and nothing about brass, so the fix removed one word.
- Draft excerpt
- "Salim's brass coffee pot lay in the dust..."
- Finding
- "Coffee-pots are documented; I found no support for this material specification in the source notes searched."
- Source line
- "utensils, kettles, coffee-pots"
- Fixed excerpt
- "Salim's coffee pot lay in the dust..."
A fact check from the short story: the draft line, the checker's finding, the source line it cited, and the fix.
The checker never comes from the same model family as the writer. The first time I had an OpenAI model read an Anthropic model's draft, it found six problems serious enough to block it, including places where the mystery did not play fair with the reader. There is also a doubting reader (Opus 5.5 again), which reads the pages so far and writes down what it understood. That report comes to me rather than to the writer, because a writer shown a reader's questions tends to answer them with explanation in the prose.
Repair is strict. Serious findings are marked must-fix, and a repaired chapter is kept only if it has fewer of them, or the same number and fewer minor ones. Otherwise the studio goes back to the best draft so far, and when nothing it tries helps, it stops and asks me.
Each stage gets a fresh agent with only the files it needs. I learned that early on, when one planning agent ran so long that its context grew to about 310,000 tokens and it started blaming "something" for rewriting its files. By the way, it turned out that the agent itself was the one rewriting them.
Each finished model call leaves a record: the stage, the model asked and the model that answered, a fingerprint of the exact prompt and output, and how long it took. An interrupted run checks that its inputs have not changed and carries on from the last finished stage. My approvals are saved the same way, each tied to the fingerprint of the exact text I read.
I know I have gone on and on about how it works under the hood. But what does it actually produce? Here is how Book 1 opens:
Approved by me.
It had rained before light, and the carriers' path was soft. Masanja brought the carrier up it to Manyanga station with the river on their right hand, running brown and high. The carrier walked in front with the bale he had run with on his head. Two askari walked behind him with the station's rifles slung, and the boy Kasa came after them with the water gourds. Masanja came last, at the pace of the bale.
There were fourteen askari at Manyanga, hired at Zanzibar to guard the Association's loads, and he was their headman. He had found this carrier two marches down the north bank, asleep in his uncle's town with his head on the bale.
The stockade stood on the rise above the boat landing. A woman was sitting on the ground outside its gate. Mud had dried white on her legs to the knee. She held a narrow bundle tied in cloth in her lap, with both hands, off the wet ground. When the carrier passed she stood up. She looked at his face, then at the bale, then down the line to Masanja, and said something in Kikongo that was too fast for him. He did not stop.
Every check passed. The chapters were bad.
After a first draft of Book 2, the studio redrafted its first ten chapters, and the redraft came back clean: zero must-fix findings, zero minor ones, verdict READY. Claude, the AI assistant I build with, read it too and said it held up.
Then I read it. To give you an idea of how I felt afterwards, this is the note I left in the studio:
This version was really really bad. Felt very plastic and forced and unsatisfying.
So how does a draft pass every check and still read like plastic? I had Claude measure the drafts. In the approved Book 1, 16% of the words were dialogue. In the rejected redraft it was 24%, and long speeches, of 40 words or more, were nearly three times as frequent. These were different chapters, so the numbers proved nothing on their own, but they told me where to look.
Share of words that are dialogue, in three sets of chapters.
The trail led back to the plan. It told the writer 37 times what characters "would say" or "would defend", and the writer had turned those lines into speeches that explained the world out loud.
So instead of patching chapters, I changed the rules they were written from. The plan stopped scripting speeches and said only what happens and what people choose. Where prose felt forced, the fix was to cut, not to explain. New rules had to work on a few sample chapters before they touched a whole book, and the test of those samples was my reading, not a model saying the draft held up.
On 12 October I read the first samples written under the new rules and marked them "go": "Yes, write the book this way. Chapter 8 is what I want the book to feel like." The rest of Book 2 is being written the same way.
Why I built it
Most working writers hate AI writing at the moment, and I can see why. In a Cambridge survey of published UK novelists, half said AI was likely to end up replacing their work entirely, and more than a third said their income had already taken a hit. I would be angry too.
Amateurs seem to like it more (I think, anyway). And plenty of readers hate it as well, though I suspect some of that comes from online pile-ons more than from anything they have actually read.
But I believe fiction, in the end, is about the story. And stories are something we all tell every day, in all sorts of forms: the matatu ride home, the relative nobody likes to talk about. When an anthropologist sat with the Ju/'hoansi of Botswana and Namibia around their fires at night, 81% of their long conversations were stories.
Telling a good story and writing a novel are different skills, though. You can tell a brilliant story over a drink and still have no idea how to turn it into 100,000 words that hold together, with the pacing right and every detail where it should be. Most people never get the training or the years it takes to learn that, native English speakers included. (Even the machines need a plan and a team of checkers.) Writing in a language you have not mastered makes it harder again. So most of those stories never get written down.
Some of them are brilliant stories that the world needs to hear. Story Studio is built for the people who have them.
Working with me
If you have challenging AI or programming problems, I am available for hire. You can read my resume, look at my code on GitHub, or get in touch through the contact page.