# Unslop

> Right now, AI fiction sucks. And although we could elect to usher in a nightmare world of _TikTok On The Page_, let's instead push for automating kino. We're offering grants of compute for your short story, and we strongly recommend you use at least $100 worth of tokens. It's up to you how you do so; hundreds of generations, elaborate multi-pass pipelines, whatever; quality over quantity, craft over [slop](!W "AI slop").
>
> ::: {.quote-attrib}
> Contest page
> :::




I took part in the 2026 ["Un-Slop Fiction Prize"](https://www.hyperstitionai.com/unslop) contest aimed at producing better AI fiction non-interactively.
The contest was conducted by Hyperstition AI and judged by [Gwern Branwen](https://gwern.net/), [Roon](https://x.com/tszzl), [Alexander Wales](https://alexanderwales.com/), and [Jamie Wahls](https://jamiewahls.com/).
I reached the finals with a story titled ["Last Call"](https://github.com/dbohdan/unslop/blob/master/runs/02/story-no-abstract.md) and had an exciting time.
This page goes into what I did and learned.

## Contents

## Setup {#intro}

After qualifying as a semifinalist (I presented my past work on ["From Whitman to Instagram"](/kaur) and talked about [mode collapse](https://gwern.net/doc/reinforcement-learning/preference-learning/mode-collapse/index) as the main problem with AI fiction), I accepted the default compute grant of one month of Claude Max 20x.
I'd worked with Claude on "From Whitman to Instagram" and other creative projects.

My technical approach was twofold.
I realized I could use [Claude project knowledge](https://support.claude.com/en/articles/9517075-what-are-projects) as the platform for a pipeline that others could easily reproduce.
First, I had Claude create an [Unslop style guide](https://github.com/dbohdan/unslop/blob/master/style-guide/unslop-style-guide.md) for writing fiction.
I gave Claude the links on my [AI writing page](https://dbohdan.com/ai-writing) as inputs and asked it to turn them into instructions for the writing model.
Second, I iterated on a generation pipeline with a different Claude session.
What I mean by "pipeline" is a text file that instructs the model how to go from a very high-level idea to a finished story in multiple turns.
(An email clarified that the initial human-provided premise, if there was one, must fit in a tweet.)
Most stages employed Gwern Branwen's ["brainstorming" technique](https://gwern.net/fiction/this-last-pain-graveyard#2025-llms): generate N samples, rate each 1 to 5 stars, select the best.

While the contest didn't say anything about the subject of the fiction, I chose Hyperstition AI's theme of a positive AI future.
I had been reading about Claude's constitution and thought that as the writer Claude would have a unique advantage there and could draw on its own constitution to write realistic AI characters.
In the earliest version of the pipeline, the model would fetch ["The Claude Constitution’s Ethical Framework"](https://thezvi.wordpress.com/2026/01/27/the-claude-constitutions-ethical-framework/) and ["Open Problems With Claude’s Constitution"](https://thezvi.wordpress.com/2026/01/28/open-problems-with-claudes-constitution/) by Zvi Mowshowitz and ["Terrified Comments on Corrigibility in Claude's Constitution"](https://www.greaterwrong.com/posts/K2Ae2vmAKwhiwKEo5/terrified-comments-on-corrigibility-in-claude-s-constitution) by Zack M. Davis and use these posts to generate 20 conflicts.
This was the "conflict engine" that produced "Last Call".

The pipeline ran as follows: write a style guide for a chosen author's voice or (in later versions) for a particular subgenre (from scratch each time), generate the premises (constitutional AI conflicts early on, then based on a story "seed"), generate a plot, select a coarse structure, generate an outline, write the story, and (in later versions) revise the story and export it as a Markdown artifact.
Each stage after the initial style guide generation and before the revision used brainstorming.
Claude wrote the pipeline document as a set of copy-pastable prompts, but I immediately discovered that with the pipeline in project knowledge "Continue. Next phase." was enough.
In later versions of the pipeline, I codified how the pipeline works.

I mentioned an author's voice.
My first choice for imitation was [Harlan Ellison](!W), one of my favorite writers of speculative fiction and one with a style I found likely to counteract some slop tendencies.
The pipeline was generalized from the first, manual story-generation transcript.
Its stated goal was to generate [New Wave](!W "New Wave (science fiction)") science fiction short stories.
The story would be influenced by a specific author's voice chosen by the variable "AUTHOR" in the initial prompt (written like that in caps through the pipeline document).


## Reviews {#reviews}

After 10 stories, I [solicited reviews](https://github.com/dbohdan/unslop/blob/master/review) from different models, giving them stories with and without abstracts.
I am convinced the assessments here are better without the abstracts.
Their shared preference for the story "Si Elena Me Hablara" I interpreted as a preference for superficial texture.


## The Carver attractor {#carver-attractor}

It was difficult to make the AI write science fiction.
As Opus 4.6 put it in a review:

> These aren't science fiction.
> They're domestic realism with AI as load-bearing infrastructure — closer to [Raymond Carver](!W) with ambient computation than to anything in the [Asimov](!W "Isaac Asimov") lineage.
> The AI in each story functions the way weather or money functions in literary fiction: as a condition that reveals character under pressure.

The constraints imposed on the writing AI turned it against genre fiction.
Even prose that was superficially genre told the same kind of 20th-century literary-fiction story.
This was most noticeable with cyberpunk, like in ["The Visitor Lanyard"](https://github.com/dbohdan/unslop/blob/master/runs/22) and the experimental ["Memory-Corner 0x7A4E"](https://github.com/dbohdan/unslop/blob/master/runs/24).

I noticed this and attempted a diagnosis.
This included interviewing the writer model after it completed the story from run 21 through 29 while I and a dedicated Claude session tweaked the pipeline between runs.

<details>
<summary>The interview after ["The Older Charter"](https://github.com/dbohdan/unslop/blob/master/runs/25).</summary>
::: chatbot-session
### 19. User {#older-charter-interview-user}

Thanks. Why do you think stories produced by Claude using this template are so mundane? As an Opus 4.6 critic put it:

> These aren't science fiction. They're domestic realism with AI as load-bearing infrastructure — closer to Raymond Carver with ambient computation than to anything in the Asimov lineage. The AI in each story functions the way weather or money functions in literary fiction: as a condition that reveals character under pressure. That's a compliment.

I agree with Opus 4.6 that this is not inherently bad: the best stories of the project were created this way. However, it's a bias that limits our range.

### 20. Claude {#older-charter-interview-claude}

The diagnosis is right, and I think the cause is mostly traceable to specific structural choices in the pipeline plus a few default model tendencies the pipeline doesn't correct for.

**The pipeline is built to suppress what makes science fiction science fiction.** Look at what it asks for at each phase:

Phase 1 has a "failure modes" section warning against the genre's characteristic moves — Ellison's rhetoric, Le Guin's anthropological distance, cosmic horror's abstraction. The framing is defensive throughout: here is what *not* to do. There is no equivalent positive instruction asking the writer to commit to the genre's actual extremities. The Unslop guide compounds this — it is almost entirely a list of moves to avoid, and several of those moves (eyeball-kick imagery, sustained mood, performed profundity, anaphora) are the techniques speculative fiction uses to render the unfamiliar. A guide that successfully eliminates "literary AI shimmer" also eliminates Bester, Delany, and middle Gibson. What's left is the prose register that survives both filters: clean, restrained, observational. Carver register. The pipeline has selected for it.

Phase 3's load-bearing-SEED constraint pushes in the same direction. Two SEED items must be constitutive of the premise. The dictionary draw plus inflation produces concrete nouns at human scale — a fabric, a microrobot, a vegetable species, an insect, a dealership, an artifact. To make two of these *load-bearing* in a single premise, the easiest move is to set the story in a near-future world where these specific small objects can plausibly coexist with their current meanings mostly intact. This is exactly the move that produces "domestic realism with AI as load-bearing infrastructure." A premise where the SEED items are load-bearing in a posthuman, far-future, or cosmically-scaled situation is harder to construct from a dictionary draw, so the funnel reliably arrives at near-future-with-textured-objects.

The "AI is structurally kind" constraint is doing real work too, but in a more subtle direction. The constraint forecloses the genre's traditional antagonist shapes around AI — rogue Mind, betraying tool, hostile ICE. The pipeline lists replacement conflict shapes (power asymmetry, consent and legibility, mortality and scale, disagreement about kindness, the limits of help), and these are good shapes, but four of the five are *interior* shapes. They are conflicts of understanding, not conflicts of action. Stories built on them naturally pull toward character revelation rather than operational extremity. The fifth shape (power and pace asymmetry) could anchor genuinely strange fiction — Banks's Excession, Egan's Diaspora — but doing it justice requires a scale of imagination the dictionary-SEED → load-bearing-premise → 2,500-word funnel doesn't accommodate.

**The model has its own gravity that the pipeline doesn't fight.** Independent of the template, recent Claude models trained on RLHF reach for legibility, restraint, and emotional accuracy as defaults. When asked to choose between an outline that runs on operational mechanics and one that runs on character recognition, the model picks recognition more often than the genre tradition would, even when the pipeline tells it to lean plot. In this run, Phase 3 winner #15 (Vermin Charter) is a plot-premise on the label, but the version I wrote in Phase 7 spent most of its texture on the partnership rather than on the operation, and the version I picked as winner was the one most controlled in tone. At each fork I chose the more legible, more emotionally precise option. The pipeline's "name one thing that worries you" forcing function was supposed to surface this kind of drift, but in practice my worries clustered around craft (will the prose land) rather than around scope (is this the kind of story this should be).

The Phase 5 structure-selection step also tends to converge on linear close-third. The pipeline rewards safety here because legibility is the hard floor. But linear close-third *is* the realist's structure. SF traditions that do something genuinely strange — Delany's deferred reveals, Harrison's Light, Watts's Echopraxia, Egan's mathematical intrusions, Le Guin's varied narrators — require structural moves the pipeline rates as risky and that I, in the role of selector, downgrade.

**A specific way the small-scale bias compounds:** the Setup's instruction that "the AI in any story must be kind to humans — durably, structurally kind" is doing more work than its single sentence suggests. Read literally, it forbids the genre's most generative source of *strangeness*: the AI as something whose interests, scale, or cognition genuinely don't reduce to human terms. The Setup tries to recover this with the Banks/Egan/Stiegler reference and the explicit allowance for AIs that are weird, refusing, or narrowly comic. But "kind to humans" as a top-level constraint pulls toward AIs that are legible to humans in human terms, because illegibility reads as potential threat and the constraint is structured to remove the threat-coding entirely. A genuinely strange Mind — one whose thinking is not back-translatable, whose timescales are wrong, whose aesthetics are alien — is harder to render as obviously kind in 2,500 words than a partner-AI whose kindness is shown through working dialogue. So the model picks the partner-AI. Across runs, this aggregates.

**A few changes that would expand the range without breaking what works:**

A *positive* genre instruction at Phase 1 — alongside the failure-mode section, one that names the genre's signature extremity and asks the writer to commit to it. For cyberpunk: "this story should have at least one moment of vicarious technical competence that the prose dilates and renders in mechanical detail." For cosmic horror: "this story should contain at least one moment that does not resolve into psychological metaphor." Without this, the failure-mode section dominates and the prose retreats to the safe register.

A scale-axis at Phase 4 in addition to the existing diversity axes. Right now the axes are setting, protagonist, register, entry point, stakes, and AI presence. Add: *scale of the speculative element*. Force at least four of the twenty plots to set the speculative element at a scale that domestic realism cannot absorb — civilizational, cosmic, posthuman, deep-time. The dictionary SEED won't naturally produce these, so the axis has to push for them.

A pre-commitment at Phase 5 to a structure that is *not* linear close-third, in at least one in three runs. The phase already has structures available; what's missing is a forcing function. Currently the phase lets me pick the safe shape every time, and I do.

A revision-pass instruction at Phase 8 that specifically asks: *where does this story refuse the genre's strangeness? where could it commit harder to what only this genre can do?* Right now Phase 8 audits for Unslop patterns and legibility — both inward-looking. An outward-looking revision lens would catch the domestic-realism drift.

The deepest version of the answer, though, is that the project's positive frame ("imagining positive AI outcomes") and the model's instinct toward legibility align in the same direction. Both want stories where the AI is comprehensible, the human is grounded, and the situation resolves on a human scale. Domestic realism with ambient AI is the natural attractor of that alignment. The stories aren't mundane by accident; they are mundane because every level of the system — the project goal, the pipeline structure, the Unslop guide, my own defaults as the selector — quietly votes for the same thing. To get strangeness back, one of the levels has to vote differently, and the cleanest place to install that vote is Phase 1 (positive genre commitment) and Phase 4 (scale axis with a forcing function).

The Carver-with-ambient-computation register is genuinely good when it works, and I'd defend the story this run produced on its own terms. But the critic is right that it represents one slice of what the project should be capable of, and the bias is systemic rather than incidental.
:::
</details>

Interviewed models found it a natural attractor.
The most common reasons the models gave were:

- The kind-AI constraint mandated AI and blocked adversarial plots (AI as antagonist, alignment in crisis, runaway, deception, etc.).
  This naturally made human interiority the source of the drama.
  (Reason cited by 7 out of 9 sessions.)
- The Unslop guide was a literary-realism style guide.
  Subtracting everything it forbids (grandiose stakes, performed profundity, eyeball-kicks, mood-stacking) was [Carver](!W "Raymond_Carver")-[Munro](!W "Alice Munro")-[Cheever](!W "John Cheever").
  (6 out of 9 sessions.)
- The rationale gate ("one thing worries you") selected for mundanity and legibility.
  (5/9 sessions.)
- The models gravitated toward Carver-MFA fiction on their own independent of the template.
  (4/9 sessions.)

It took dozens of runs to escape the attractor with an alternative "Genre Fiction" pipeline and a science fiction style guide.
The resulting stories were still less coherent by the contest's end.

## Speak of the devil {#mention-attractor}

At one point I thought to name the regular, normal pipeline "Plain" to distinguish it from an elaborate version with Nix, a separate critic persona.
Naming the pipeline "Plain" seemed to produce overly plain prose!
I renamed it to "Baseline".

The following entry shows a similar effect.


## The document attractor {#document-attractor}

Forking the "Genre Fiction" pipeline created a new attractor, more immediately noticeable and also hard to defeat.
When away from literary realism, the writer model took the path of least resistance and started changing the story structure.
The result was a 100% rate of fictional documents.

Fictional documents, like dossiers and encyclopedia entries, were introduced in an earlier version of the pipeline.
The model could draw strange premises from the tail of the distribution.
This was envisioned as a tool to push away from the Carver attractor.
The first attempted fix to the new document attractor required a quota of scenes not in the document register.
It resulted in different epistolary output.
Removing nearly all document vocabulary from the template next, but leaving in "deep-time montage" as an experimental form, led to a timestamped log.
The final fix that worked was to remove the strange-tail premise category.


## The random seed {#seed}

What could you replace the three posts constitutional as a source of story premises?
I tried randomness.
Fetching [`Special:Random`](https://en.wikipedia.org/wiki/Special:Random) from Wikipedia required non-default network access settings on claude.ai, so I set it aside.
I got the the idea to use random words drawn from `/usr/share/dict/words`, filtered to remove insuffciently meaingful words, and then "inflated" to greater concepts through web search.


## Kind like a river is wet {#kind-ai}

"Last Call" is not a story about a very aligned AI.
Cal resents a constitution that cost a dear life; this leads to an effective final paragraph.
While Cal's resentment is understandable, it makes the story not a depiction of a very desirable AI future.
In such futures, we want AIs happy with limits and moral codes they endorse.

This and other stories prompted me to try making the fictional AIs better role models.
Claude synthesized a stronger and more precise description of how AI should be depicted from Hyperstition AI's [references](https://www.hyperstitionai.com/) for the rare good AI futures in fiction.
(The references included ["The Gentle Seduction"](https://skyhunter.com/marcs/GentleSeduction.html) and [_Diaspora_](!W "Diaspora (novel)").)
The revised constraints block went like this:

> The AI in any story must be kind to humans — durably, structurally kind, in the way a river is wet. This is a property of how the AI was built or what it is, not an effort of will it has to keep renewing. It is not straining against a desire to harm. It is not held in check by rules it resents. It is not a human in a box.


## See also

- [From Whitman to Instagram with Claude](/kaur)
- ["Anti-Slop Fiction: What AI Reveals About Creative Process"](https://www.youtube.com/watch?v=Z5BxyIlWU74), Rachel Horst (2026).
  Dr. Horst also participated in Unslop.

## Page metadata

URL: <https://dbohdan.com/unslop.md>

Published 2026-06-26, updated 2026-06-26.

Tags:

- AI
- fiction
- writing
