We created AutoFiction as a platform to explore how AI can produce coherent and engaging long-form novels. While short-form writing has made strides towards text that is almost indistinguishable from human text—despite residual issues in creativity—we view long-form text generation as an open frontier. There is no model or harness today that is able to create text that exceeds even the median human author, let alone award-winning work. Since the beginning of this year, we released an initial version of the site and have worked towards expanding the book catalogue; in this blog, I will dive deep into Eight Tuesdays (see the companion post on Love you Dipshit after this), one recently released book that we paid special attention towards.[1]
Eight Tuesdays is quite the departure from other books in the library. Starting in early June, @mohit and I (@atrey) workshopped two different harnesses—minimalist vs. maximalist—to determine how the harness design complexity affects downstream book generation. I took the latter approach, seeing how any and all information I could stuff into the writing agent’s context window would affect the final product.
As with all books in this pipeline, initial human involvement was limited to writing premises, iterating on prompts, debugging pipeline failures, and occasionally restarting failed runs. No human edited the novel text itself; however, post-generation, I continued to read, annotate, and revise books to observe how human feedback assists in machine-generated text.
I started by using the basic pipeline scaffolding from the other books and exploring the internet for advice. Particularly, I explored three major areas:
GPT 5.5 Pro (Extended Reasoning, Deep Research)
Describe in detail the steps towards creating, writing, and editing a creative writing/narrative fiction novel to its final form. Be thorough in your steps and do not my make assumptions in my knowledge. Provides sources when relevant so I can do further study, but produce an standalone document. Provide technical knowledge not just surface level, beginner information… Yes, do all of this and be verbose and detailed. Do not summarize important ideas/steps
Research Goal: Produce a comprehensive, highly detailed, verbose document on the observable patterns and problems in LLM writing output — with primary emphasis on creative fiction writing and secondary coverage of LLM writing in general (nonfiction, technical, persuasive, etc.). The document should catalog the quirks, problems, and prompting-based solutions associated with LLM-generated prose, drawing from both informal sources (blogs, forums, Substacks, Reddit, Discord communities, author newsletters) and formal sources (academic publications, conference presentations, technical reports, model documentation).
Hard scope constraints: No foundational/mechanistic explanation. Do not explain how LLMs generate text, next-token prediction, sampling internals, architecture, or training. Start directly at the level of observable output. Solutions must be prompting-only. Every mitigation must be achievable through prompting, context construction, instructions, examples, or conversational workflow. Explicitly exclude fine-tuning, training custom models, using base/raw models, sampling-parameter tuning (temperature/top-p/etc.), decoding hacks, or anything requiring model/API-level access beyond normal prompting. If a source’s solution requires those, either omit it or note briefly that it’s out of scope.
Required Sections: Catalog of Quirks — Identifiable stylistic and behavioral tendencies in output. Investigate and expand on: overuse of certain phrases (“delve,” “tapestry,” “testament to”), the “It’s not X, it’s Y” antithesis construction, em-dash overuse, tricolon/rule-of-three patterns, excessive hedging, positivity bias, sycophancy, repetitive sentence rhythm, weak or summarizing endings, “purple prose,” telling-not-showing, character voice homogenization, and refusal/sanitization of dark themes. For each: what it is, where it’s been observed, and (briefly) when it tends to surface.
Catalog of Problems — Deeper functional failures in output: loss of long-range coherence and continuity errors across long fiction, plot/character inconsistency, weak narrative tension, “slop” homogenization, lack of output diversity/repetitiveness across regenerations, factual confabulation in research-driven fiction, plagiarism/pastiche concerns, and difficulty maintaining a distinct authorial voice.
Catalog of Prompting Solutions & Mitigations — Prompting and context techniques only: persona priming, style exemplars / few-shot style anchoring, negative constraints and banned-word lists, iterative drafting and revision passes, planning-before-prose prompting, multi-pass editor/critique workflows within a conversation, structured context for continuity (style bibles, character sheets, summaries fed back in), explicit anti-pattern instructions, and specialized prompting frameworks/templates the community has developed. Map each solution to the specific quirks/problems it addresses.
Source Landscape — Distinguish what the informal community knows experientially versus what academic literature has formally measured, and note where they agree, disagree, or have gaps.
Source Requirements: Cite both informal sources (named blogs, forum threads, author communities) and formal sources (peer-reviewed papers, arXiv preprints, conference talks/workshops). Prefer primary sources and attribute claims to where they originated. No recency constraint — include historical sources alongside current ones, and note how quirks and prompting solutions have evolved over time where relevant.
Model Focus: Keep findings model-agnostic and general. Describe tendencies as broad patterns across LLMs rather than tying them to specific named models, except where a source’s observation is inherently model-specific and worth noting as such.
Output Requirements: Be exhaustive and verbose. Do not compress or summarize findings — present full detail for each item. Organize for navigability (clear sections and subsections). Include a few illustrative before/after rewrite examples demonstrating a quirk and its prompting-based fix, but keep these selective.
Research Objective Conduct a comprehensive investigation into how to elicit maximal creativity from frontier large language models in long-form, novel-length text generation (50,000+ words). The research should be model-agnostic, focusing on transferable principles applicable across any frontier LLM. Deliver both a grounding in the relevant theory and a practical, actionable toolkit of prompting techniques. Constrain the scope to prompt-engineering and prompt-level orchestration only — exclude model internals such as fine-tuning, RAG architectures, decoding/sampling parameters, and weight-level interventions.
Definition of “Creativity” for This Research Treat creativity as a multi-dimensional construct with three co-equal pillars, weighted equally throughout the analysis: Novelty & surprise — the generation of unexpected ideas, plot turns, conceptual combinations, and imagery that defy predictable, statistically “average” completions. Long-range coherence & creative consistency — sustained narrative logic, character continuity, thematic throughlines, foreshadowing/payoff, and world-consistency across novel-length spans where context limits and drift are central obstacles. Stylistic voice & prose quality — distinctive, controlled authorial voice; sentence-level craft; tonal consistency; and avoidance of generic “LLM-ese.” For each technique surfaced, explicitly map it to which of these three pillars it serves, and note tensions (e.g., techniques that boost novelty at the expense of coherence).
Core Research Questions Investigate and synthesize answers to the following:
Theoretical foundations. What does current research (academic papers, technical reports, computational creativity literature, cognitive science analogs) say about why LLMs default to predictable, low-novelty output, and what mechanisms at the prompt level counteract this? Address concepts such as mode collapse, regression to the mean, “averageness” of high-probability tokens, and the homogenization of outputs — strictly as they inform prompting strategy, not model tuning.
Single-prompt techniques. Catalog prompting strategies achievable in one shot or one prompt: persona/role assignment, constraint-based prompting (e.g., Oulipo-style restrictions), few-shot exemplar seeding, negative prompting (“avoid clichés such as...”), structured creative briefs, forced conceptual juxtaposition, and meta-instructions about voice and risk-taking.
Multi-turn & iterative pipelines. Catalog orchestration workflows: outline→draft→revise loops, hierarchical/recursive generation (premise→beat sheet→scene→prose), self-critique and self-revision chains, generate-then-select (sampling diverse candidates and curating), agentic role-splitting (e.g., separate “writer,” “editor,” “continuity-checker” passes), and memory/state-tracking techniques (story bibles, running summaries, character sheets injected into context) to combat long-range drift.
Combating LLM-specific failure modes in long-form. How to handle context-window limits, mid-narrative drift, repetition/loops, tonal flattening, sagging middles, and the tendency toward neat/safe resolutions — using prompting and orchestration only.
Evaluation methods. Survey how to measure creativity in generated long-form text. Cover: automated metrics (lexical diversity, n-gram novelty, distinctness, perplexity-based surprise proxies), LLM-as-judge rubrics, human evaluation protocols, and established benchmarks/frameworks from computational creativity (e.g., novelty/value/surprise rubrics). Critically assess the validity and limitations of each, especially for narrative-length work.
Deliverable Structure Organize the final output as follows: Executive summary — key findings and the highest-leverage techniques. Theory section — concise grounding tied directly to actionable implications. Technique compendium — for each technique: a description, the creativity pillar(s) it serves, when to use it, concrete prompt templates or examples, known trade-offs, and supporting evidence/citations. Reference pipelines — 2–3 end-to-end example workflows for producing a novel-length draft (one single-prompt-heavy, one multi-turn agentic), with the actual prompt sequences. Evaluation toolkit — methods, rubrics, and a recommended practical measurement protocol. Open problems & frontier — unresolved tensions and promising emerging approaches.
Source Guidance Prioritize: peer-reviewed papers (arXiv, ACL/EMNLP/NeurIPS), reputable technical blogs and model-provider documentation, computational-creativity research, and practitioner write-ups from serious AI-assisted fiction communities. Distinguish evidence-backed claims from anecdotal practitioner heuristics, and flag where the two conflict. Favor recent sources given the pace of the field, but include foundational work where relevant.
Tone & Depth Be detailed, technical where useful, and concrete. Every abstract recommendation must be paired with a usable prompt example or template. Avoid generic advice; surface non-obvious, high-leverage tactics.
I found major gaps in actionable advice from the scientific literature on the actual process of generating engaging long-form text. There was general advice such as “Scene writing becomes technically easier when you define five things before you begin: whose scene it is, what they want, what resists them, what turns, and what decision or condition exits the scene.” However, this was quite vague and oftentimes advice that could be applied to all writing, not just that of an LLM. I was beginning to feel frustrated, so I pivoted to a more anecdotal approach. Particularly, Reddit and related forum sites often hosted high-quality discussions of strategies used to co-write and autonomously create stories. I condensed hundreds of pages of such decisions into a series of markdown-based patterns and frameworks that an LLM could refer to when strategizing, generating, and evaluating its text.
This included information such as how to better prompt for changing the prose style, removing repetitive words or phrases, creating more engaging character voice, and fixing larger continuity errors created in long-form text. As a result of this maximalist approach, the harness ended up with patterns (208), LLM-as-judge-based assessments (79), example workflow descriptions (10), and planning/memory scaffolds (15) to assist in all areas of text generation.
We use regex of common patterns observed in LLM-generated text to encourage greater diversity in text.
Our harness contains various types of scaffolding to assist the novel creation process.
Based on what we learned when creating other novels, I used Codex (GPT-5.5, xhigh reasoning) as the high-level orchestrator and Claude Code (Fable 5, xhigh reasoning) for the actual writing subagent. Due to access restrictions on Fable 5 during novel development, the last two chapters of the book were written using Opus 4.8, though later editing continued using Fable 5.[2]
As with every book, I started with a premise. Being a big fan of rom-coms like Pride and Prejudice, I wanted the book to have a lighter, rom-com-esque feel to differentiate model capabilities. The other book went in the complete opposite direction—opting for excessive crude language and explicit violent descriptions—so this provided a good balance between the two. Based on this initial premise, Fable asked clarifying questions and workshopped the idea into a full story document and plan. I applied some minor tweaks, though there was only very limited human intervention to fully showcase model capabilities.
Once the first few chapters were generated, I read through them to see if there were any glaring issues. While it was mostly smooth, the dialogue was quite abrasive, so I annotated a few examples of this and asked the agent to extrapolate a rule for the rest of the writing. It ended up as
2026-06-10: The plain-speech floor, the zero-tolerance dialogue-diagnosis rule, and the ‘load-bearing’ ban were added after chapters 01–03 were committed. Those chapters must be brought into compliance at the next revision touch… Known instances (both confirmed as open BANNED hits by the gate): chapter 01 line ~111 (narration) and chapter 02 line ~87 (June’s ‘That’s load-bearing language for an evening class’)
This created the following changes in dialogue. I continued to have trouble with engaging dialogue throughout the generation and editing process, though this is covered more deeply near the end of the blog.
We banned the use of the word "load-bearing" early into the writing process, so these edits found a replacement phrase and better connected the thoughts of the two characters.
The rest of the drafting went fairly smoothly with the model running various editing steps after each chapter and then at the end of the book. Chapters 23 and 24 were written by Opus 4.8 due to the aforementioned access issues. However, reading through these chapters, there was not a noticeable shift in tone or pacing due to this decision.
How do models approach the drafting process?
drag the chart or press play
commit 115 / 115
Jul 30, 9:11 PMRound 3
rebuild final/novel.md from round-3 chapters (45,090 words)
45,090 words
Final manuscript: 45,090 words
ch 1chapters touched in this commit shown in purplech 24
On average, it took Claude around 40-60 minutes to draft a chapter, followed by initial assessment by Codex and another Claude agent. This was integrated into the chapter and then run against various patterns to prevent bad writing practices such as em-dash density, echo-line poetics, comma-then, negation, code fences, hallucinated attributions, etc.
Optional audits were run until both Codex and Claude Code agents were happy with the result. The usage of these optional auditing frameworks varied, from no use to as many as 23 separate rounds to correct dialogue and comedy. I also noticed repairs from one round, such as to fix dialogue, often re-dirtied another, such as to fix comedy, creating a loop.[3]
The first 50 words of every draft are checked to make sure it's not too boring for the reader!
# Opening Hook Audit — Chapter 20
id: opening_hook | owner: codex | target: `output/chapters/chapter_20.md`
- `CRITERION 1: PULLS — first 50 words quoted — "On Thursday morning June took the receipt out from under the mineral spirits jar and set it in the middle of the kitchen table, printed side down, so that her own capitals faced the ceiling. FRI DEC 4 / NOON. The pencil had gone shiny where she'd folded and unfolded" — reasoning: the opening starts with character action and a visible deadline, not mood. The pull is a material question: what answer is due Friday at noon, and why has June been folding the receipt corner?`
- `CRITERION 2: CLEAN — strongest atmospheric candidate considered: "Mara's blue dish stood in the drying rack..." It arrives after June has assembled the receipt, notebook, phone, and catalog box. Setting emerges through decision-bearing objects, not a weather/skyline/architecture pan.`
- `CRITERION 3: not applicable — Chapter 20 is neither Chapter 1 nor a part opening.`
Chapter verdict: `HOOKED`.
REVISION ORDERS: none.
critiques/codex/chapter_20.opening_hook.md
Following the initial draft, the agent began the whole-book editing cycle. This first started on an abstract scale. I found that the model struggled to make good edits that covered the entire book in a single context window, so I also experimented with Dynamic Workflows, which used a variety of subagents across chapter chunks. During these edits, the model fixed both structural issues (world-coherence problems like missing chronological events and inconsistencies, or character arcs that needed reforming) and stylistic issues (removing repetition and making the text more original).
The final (and special to this book) stage of editing was additional human feedback, allowing us to both review these books and improve the AutoFiction platform in the process. I read through the first third of this book and then went back and added comments. This largely fell in the following categories:
…home by nine to the boxes…
ch 1
very nice language ... induces good imagery and one of the better first sentences i’ve seen in an AI story
…She had spent six years hanging other people’s shows, sitting other people’s galleries, uncrating other people’s triumphs in freight elevators.…
ch 1
evocative language, great use of not using punctation to let an uninterrupted sentence flow
…couple struck through in blue…
ch 2
great foreshadowing
…did not ask the next question.…
ch 2
Good; very very good that its unstated that Theo is related to Odile but there are now hints to it
I then prompted the agent to use these comments to extrapolate to the entire book and fix book-wide issues.
“Imagine you’re role-playing me as a reader, and you have all of these comments I wrote to help you decide what I like and what I dislike. Meticulously read through the book and identify + edit things that I would likely critique. Be aggressive with your edits!”
“for the later chapters where there are no specific comments, you are extrapolating based on my existing comments to edit the book right?”
“ok once the workflow is finished. look at the changes, I am especially worried about those repeated descriptions (Especially in short sentences), or that unneeded justification of random things. look at the changes to verify those are gone.”
“dont just read the diffs. read every single chapter and review for slop/guidelines i mentioned before/any other guidelines in the repo”
As you can see from the conversation above, I found earlier versions of our prompting were eliciting some lazy model behavior, as it chose to use git diffs between chapters rather than reading the entirety of a chapter and generating changes. I also noticed that these comments in isolation often did not fix issues, and I ended up putting the sentence before and after in the context to show how issues like poor dialogue were placed within the story.
Following human feedback, I had the agent do another round of self-critique to see what problems were recognized by the agent.
“The central diagnosis was not bad grammar. It was over-engineering: nearly every object, gesture, side character, and paragraph ending had been made to restate the book’s themes. The result was polished but tiring.”
Based on this comment, it ended up “de-slopifying” the book, removing a whole host of imagery issues (cutting down on interpretive sentences after the image already made the point), aphorisms and balanced negations, extremely repeated descriptions of paintings and dates, and removing the count of certain expressions.
These changes reduced the frequency of the most annoying n-grams
beforeafter
"the way"54 → 25 (−54%)
"like a" / "like an"32 → 19 (−41%)
"it was"114 → 61 (−46%)
"that was"49 → 24 (−51%)
phone placed face-down9 → 1 (−89%)
"read twice" constructions8 → 1 (−88%)
describing feelings like paperwork292 → 211 (−28%)
This same style of human feedback and self-critique was repeated, mainly to reduce excessive descriptions and static dialogue.
“once you are done with this also I noticed that at the end of basically of a lot of sentences, there is tendancy to create a zinger or off-handed comment, or short phrase that gets really repetetive and annoying. go through each of the chapters in depth looking for this and remove it.”
“once you are done with that, go through the entire book noting the personalities of each the characters. I noticed that in the later chapters they all tend to blend into one (especially the non-main characters)… revise their actions, descriptions, dialgoues, etc. to better seperate their [voices]”
While these improvements certainly helped the readability of the final draft of the book, LLMs also seem to have a poor understanding of their own writing quality, often describing the resulting work as a “masterpiece” with “no discernible flaws.” Self-grading of the model’s own changes hovered around 7 or 8, while human feedback on the same changes never exceeded 5 out of 10.
Eight Tuesdays was generated over approximately 800 agent calls (not counting subagent routines) and cost roughly $2,300 in API-equivalent value of subscription usage. Due to these costs, we utilized subscription access to these models. At a high level, around 17,000 words were cut based on human feedback, 28% of the initial draft. Overall, the word count decreased from 62,000 to 45,000 words.
~800
Agent calls
$2,300
API-equivalent usage
62k → 45k
Words, draft to final
28%
Cut on human feedback
There is still much to be desired when it comes to fully autonomous generation of books. Even after dozens of changes over the course of weeks, most human readers (aka the AutoFiction team and friends) still struggle to finish reading the entire book. Common complaints include “the paragraphs are long, [but] the pacing is slow.” That is not to say this was a complete failure, with the same review also saying “I would still think that it is written by a human author (with the same vibe as Colleen Hoover or Emily Henry).”
AutoFiction was created, in part, to note down these issues and find new ways to get around them. Models have quickly improved at novel writing, so it’s very possible that in the near future, for better or for worse, AI-generated fiction will become nearly indistinguishable from human authors.