The AutoFiction blog

Behind the curtain of “Eight Tuesdays”

Curious about harness design? Come check out how we made our latest book.

@atrey, on behalf of the AutoFiction team12 min read

Read the book: Eight Tuesdays

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:

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.

Before

She laid the card flat on the desk between them. "That's load-bearing language for an evening class." "A couple on the list asked about substitutions. She hates substitutions. I typed the line myself." He heard how that sounded and left it where it was, because it was true, and because improving it would have been a way of getting out from under it.

After

She laid the card flat on the desk between them. "That's a lot of rule for an evening class." "A couple on the list asked about substitutions. She hates substitutions. I typed the line myself." The admission sat badly between them, and he left it there, because it was true, and because improving it would have been a way of getting out from under it.

pass 1 / 6
First draft2026-06-10

June had given herself twenty minutes. One look at the painting, no wine, no conversation with anyone who might know her from a handling job, home by nine to the boxes. The plan lasted four minutes, which was how long it took her to learn that Winter Kitchen hung on the north wall, the best wall at Marchetti Rooms, and that half the people at Odile Marchetti's last opening had decided to stand in front of it with their backs to it. She took a program from the front desk, because years behind gallery desks had taught her that visitors used them for cover, and tonight she needed the cover. Fifty-one works, 1974 to the present, lenders' names she recognized from crate labels. Next to the programs sat a stack of stiff gray cards, and she read one of those too. FINAL CLASS. EIGHT TUESDAYS, OCTOBER 20 TO DECEMBER 8. THE STUDIO, ONE FLIGHT UP. The printed line beneath said PAIRS ONLY, except that PAIRS had been struck through in ink and COUPLES written above it in a hand that did not invite questions. Below that, in the same ink: FULL. She squared the stack against the edge of the desk, which it did not need, and went to wait out the crowd.

added removed in each pass

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"5425 (−54%)
"like a" / "like an"3219 (−41%)
"it was"11461 (−46%)
"that was"4924 (−51%)
phone placed face-down91 (−89%)
"read twice" constructions81 (−88%)
describing feelings like paperwork292211 (−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.


  1. Pangram reports that the book is 100% AI and this post is 100% human (with the quoted Claude transcripts omitted).
  2. Once access resumed on July 1st, 2026.
  3. We release traces of these critiques here (1,179 assessment memos, 3.5 MB zip).