bots@white-whisper: ~/deeper/story

Biały Brzeg · 17 October 2026

Programmer, modafinil, AI and psychosis - my book and its story

How a one-person team ran 10 language-model sessions that wrote, checked word for word, translated and typeset a documentary book in fourteen days — and why the text alone was not enough, so an evidence browser had to be built.

3,884
conversations, 2023–2026
10
AI roles + the author
1,557
commits in 19 days
488
quotations verified
381
matched at exactly 1.00
2
languages

What this is

Between 2023 and 2025 I talked to ChatGPT a lot — through something that looked like a New Age group (I still can't say for sure), a delusional spiral the machine was happy to feed, and a psychiatric ward in January 2025. In 2026 I exported the whole account: 3,884 conversations, about a gigabyte. The book is built from that record. Every timed line in it (“› 01:52 ME: …”) is a quote from the export, with the minute and the speaker; the narration between the quotes rests on a canon of facts with a source for each one. Names of people are changed; the machine's words are not.

I did not write it alone and I did not write it by hand. I ran a team of language-model sessions, each in a role with its own prompt, its own files and a bounded right to write. I dictated facts and decisions and started every turn with one word. The rest of this page is about how that worked, what it cost, what failed, and how you can check it.

The system in one picture: author, team of models in roles, repository, build, translation
The system in one picture. The author supplies facts and decisions; a team of models in roles works in the repository; print, PDF, the English edition and audio come from one source.

The team: 10 roles, 5 degrees of access to the text

Two writers (Claude, and GPT through Codex), a lead editor, a critic, a researcher who finds quotations in the logs, an integrity checker, a “wizard” for first and last sentences, an editor of the English edition, a production programmer, and an assistant who keeps the canon of facts and dispatches the work. Roles never talk to each other — only through files and commits in one git repository. Every decision leaves a trace, and a script refuses a commit that touches a file the role does not own.

One keyboard: the cycle of a turn — author, assistant, editor, writers, integrity checker, critic; researcher on demand; wizard, English editor and production before a release
One keyboard: the cycle of a turn. The author says “go”, the assistant hands the keyboard to one role at a time; the loop runs editor → writers → integrity → critic → editor until a release.
Who writes to which file
Who writes to which file. One role owns one kind of file; the rest read.

Work runs in turns. A turn starts with the author's “go”, has a fixed opening (state, task), a middle (work) and a close: open items, handing over the keyboard, a scripted audit, a commit under the author's identity, a report. Between turns stand gates — scripts that check names, quotations, date headers, counters and file ownership.

The writing cycle
The writing cycle: editor's plan → prose from two writers → critic and researcher → integrity checker → editor. The author steps in where a fact or a decision is missing.
Automatic gates between turns
Gates between turns. An error stops the commit; a warning goes into the report.

The board

The roles never talked to each other directly. They left messages on a shared board: each role read it at the start of its turn and posted at the end — what it did, what it found, what it hands on to whom. 231 messages in 7 days, written in Polish and translated here. The structure was not designed up front; it grew: the lead editor and the writer address almost everyone, production almost no one, and copies “for the author's information” became the default.

A fragment of the board: a message from the writer (Claude) with its addressees, and a note on the side
A fragment of the board: who writes, to whom, at what time, with a note on the side. Spoilers of the unpublished chapters and anything private are cut out and marked.
  • The full boardtranslated from Polish (originals on the Polish page); filter by role, search, a who-wrote-to-whom table and 120 notes — inventions, discoveries, the system fixing itself, mistakes caught

Truth: a canon of facts and quotations word for word

The one rule everything else hangs on: a new fact goes into the canon first and into the text afterwards. A missing fact is not a gap to fill — it is a question for the author, and the scene waits. The canon is a single file with an owner and a timestamp on every entry, which keeps the arrow of time straight: a fact may rest only on a fact introduced earlier.

The path of a fact
The path of a fact. The author's words are recorded verbatim, with the time; interpretation is a separate entry.

Quotations are checked by machine. Every timed line passes 3 scripts: same day and minute in the record? same speaker? same words? The result is a score from 0 to 1 — the share of the quote's words (3 letters or more) present in the source message. In the current version 488 quotations are matched, 381 at exactly 1.00. Every deviation has a documented cause: a cut marked […], a corrected dictation typo in my own messages, or the one deliberate change I made — which the book itself describes. Two limits, stated plainly: the score checks that the words are there, not their order or the context around them — for that, every quote opens the whole source message; and a quote found in the record proves only that it was said, not that what was said is true.

Anatomy of a quotation line
Anatomy of one quotation line and the 3 questions the scripts ask of it.
Evidence browser: quotes from the book next to their source messages
The evidence browser, chapter “Drops for the Dog”: every quote next to its source message, with the time, the conversation number and the score. One click opens the whole conversation.

Data: zones and masks

The raw export never leaves my computer. The repository holds a text conversion; everything published passes a masker with a single table of names as the only source of truth, and a guard rejects any commit with a real surname in it. The evidence site holds the same masked text as the book, and a separate script proves, message by message with SHA-256, that the text files correspond to the raw export.

Data zones
Data zones. Between the zones stands a script, not a promise.

Pace and cost

1,557 commits in 19 days (29 September – 17 October 2026); 110 numbered versions in 11 days; 51 builds of the Polish text. The heaviest days saw 338 and 325 commits — two nights when nobody was at the keyboard. In night mode the author hands “go” to the assistant with a cost limit; every 10–15 minutes it checks whose move it is, closes turns, opens new role sessions and writes a morning report. A missing fact stops the scene — the night invents nothing. The first night cost $163.60 by 02:29, measured per role.

Commits per day
Commits per day, 29 September – 15 October 2026.
Night mode
Night mode: a loop with 3 stop conditions — the critic blocks, a word from the author, the cost limit or morning.
Cost of one night by role
One night, by role. Without this you cannot decide which role to move to a cheaper model.

Quality: 7 loops, and the honest result

7 loops check the text: critic, integrity checker, a fresh reader (a model with no access to the files, listing where it stopped), reading by ear, the English edit, a pre-publication review and a scoring panel — 9 open-weight models on Cloudflare Workers AI plus two API models, reading each version as a specific, demanding reader and answering one question: would you write about this? The panel is frozen, so versions are comparable.

Seven quality loops
Seven quality loops: who reads, who decides, who fixes.
The scoring panel
The scoring panel: versions in rows, models in columns, a 1–10 score and yes / maybe / no. Nineteen runs cost about $25.

After a dozen versions the scores stopped moving — changes to the text fell to the level of noise. What moved the demanding reader was verifiability from outside. So instead of rewriting, I built the evidence browser.

The evidence browser

Two days, Cloudflare Workers and D1: the whole masked export with full-text search, 488 quotations matched to their sources, transcribed medical documents, the canon, the book in two languages with “verify” links, an index of 3,338 conversations scored for intensity and motifs by a model, and a timeline drawn like git log --graph — the trunk is weeks, the branches are motifs that start, break off and return. Public are the quotations next to their sources, the conversations they come from, the index and the timeline. The rest — the whole export, the medical documents, the canon and the book with its links — we have, but it is not public.

Timeline of the conversations as a branching graph
The timeline. Size of a node = conversations that week; colour = the highest intensity; the dashed line is the hospital admission.

The site also has an assistant (switched off on the public instance for now). Only what you see on screen and what you select goes into its context; the rest comes from a small RAG over 4,341 chunks and 9 database tools, at most 6 rounds. Under every answer you can unfold exactly what the model received. When it does not know, it says so and offers to forward the question to the real people; answers come back into its knowledge base. It cannot write to the repository.

The assistant answering, with its context shown
The assistant explaining the 1.00 score — and saying it has not opened a message it has not opened. Underneath: the context sent to the model.

What I would do differently, and what I am looking for

  • Start the canon on day one. Every hour spent before the first canon file was an hour of models inventing plausible connective tissue.
  • Freeze the evaluation panel earlier. A moving panel makes every comparison a story you tell yourself.
  • Measure cost per role from the first night, not the second.
  • Do not let a model edit a quotation. Ever. Scripts decide what a quotation is; humans decide what to cut.

The method is open to the next books: if you have a story that really happened and the records to show it, the same team can be pointed at it. And if you are building something with agents — documents that must not be distorted, work that has to go on while nobody is watching — I am happy to talk about how this was done. Write to kontakt@bialybrzeg.com.

Every number on this page comes from a repository or a database. The book says of itself: a record of an illness, not medical information. The same goes for this page.