The prose register
Five drafts in a day, all different, none better. The prose was not the problem. The loop that produced it had nothing that improved.
Motivation
The loop anyone who has written something long with a model knows: read the draft, tell it what is wrong, get back a draft that is different and still wrong. Five rounds gives you five competent drafts, none better than the first, and no way to say which one you are closer to.
Six versions of one essay is enough to establish that the loop, not the essay, is the broken component.
The diagnosis
The diagnosis is not about prose, it is about algorithms. Gradient ascent and hill climbing are the reference, and four properties are what make an algorithm of that family trustworthy:
- is something getting closer and closer
- is there some stability in between
- is there something we fall back to
- is there a guarantee of monotonicity somewhere
Both are methods for finding the highest point in a landscape you cannot see all of. You stand somewhere, look at the ground immediately around you, step upward, repeat. What makes them work is not cleverness about where to step. It is that you never step down, so however long you run them, you are never worse off than when you started.
My loop had none of the four.
- Nothing getting closer. Each round produced a fresh draft rather than a modified one.
- No stability in between. The parts I liked in version three were gone in version four.
- Nothing to fall back to. No record of which version had been best at what.
- No monotone quantity. No number that only went up.
A process with none of those properties is not climbing anything. Each round starts where the last one did, looks at the same landscape, and picks a point at random. That is a lottery with extra steps, and running it more times does not improve the odds.
Which relocates the problem. The prose is not the bad part, the source code is, meaning the process that generated it. Fixing a draft buys one better draft and I already had six of those; fixing the process changes every draft after it. The question becomes what would have to be true of the loop for the sixth draft to be reliably better than the fifth.
The convergence protocol
Three changes make the loop monotone, and none of them are about writing.
Stop rewriting the whole thing. A verdict on a draft must never produce a new draft of the whole draft. This is the largest change and it makes the others possible, because a whole-essay rewrite re-rolls the sections that were already right. Every round after the first is then gambling with material you have already won.
Lock what is settled, and count the locks. When a section is right it freezes, and later rounds are forbidden from touching it. The number of frozen sections is the monotone quantity that was missing. It only goes up. A weak guarantee, and enough, because it converts an unbounded search into a bounded one: every round either adds a lock or does not, and the ones that do not are visible immediately.
Diverge per section, not per essay. Five candidates for one section is a choice a person can make, because the candidates differ in ways you can hold in your head at once. Five whole essays is a choice nobody can make, which is why the loop was stalling. I was being asked to compare objects too large to compare.
Those three are written into the harness that governs my essays, along with the reason I had not been able to state before:
The convergence protocol (how drafts get made — do not violate)
Root cause: every generative rewrite re-samples from the default AI-prose
prior, so whole-document passes silently re-roll previously-converged
sentences. Therefore:
1. Macrostate first. Nail the spine before prose. Draft nothing until the
spine is decided.
2. Section-locked convergence, never whole-essay rewrites. Once a section is
converged it is FROZEN. Only single-sentence surgical edits applied as
exact string replacements touching nothing else.
3. Diverge phrasings per section; I converge. Never diverge on a locked
section.
4. Deadline beats convergence. When it is time to ship, ship the current
best and do not open new divergence.
5. Candidate-lists are not commissions.
Rule four keeps the others honest. A protocol that only ever converges has no exit, and the exit has to be a decision rather than a state the process reaches on its own.
Underneath all three is an ordering I had been violating without noticing, most authoritative first: the core thesis, then the conceptual flow that derives from it, then the presentation of that flow, and only then paragraphs, sentences and word choice. Fixing a sentence while the conceptual flow above it might be wrong is wasted work, and most of the frustration in those two days came from sanding at the bottom of a stack whose top was still moving.
The ordering tells you which layer to work on. It does not tell you what a good sentence is, and that verdict was still living entirely in my head, arriving one reaction at a time.
Deriving the rules
So the reactions got written down. Numbered, growing, each with the same three parts:
- the pattern that is banned
- my own reaction to a real instance of it, with the date attached
- a sentence showing what a person doing the same job would have written instead
They accumulate by classification. A draft gets rejected, and rather than fixing the instance, the failure gets named as a class and written down with the offending line preserved. The verdict file that essay kept records each version with the reaction that killed it:
2026-07-17 v1 treatise "genuinely not good -- it needs to be useful,
direct, less impersonal"
2026-07-18 v2 how-to content good, prose must be reworked
2026-07-18 v3 register pass "the prose really sucks ass, and it reeks of
bloat... no punchiness, no variety...
nothing falsifiable" -> F17
2026-07-18 v4 compressed "shitty imperative voice throughout...
everything just announces it, no
derivation... it's all trash now" -> F18
2026-07-18 v5 fresh superseded by the rubric restart
2026-07-18 v6 rubric two-idea hierarchy
The third verdict and the fourth are the pair that matters. The third says the prose is bloated, with no punchiness and nothing falsifiable. The rewrite answering it produces the exact opposite failure: imperative voice throughout, everything announced, no derivation.
That mechanism is the whole argument for locking sections. A verdict like "bloated" is a property of the entire surface, not of any one sentence.
Answer it with a whole-essay rewrite and every sentence gets optimised against one constraint at once. A surface optimised for a single property comes out uniform in that property: compress everything and you get uniform clipping, so the rewrite swaps the failure for its mirror image instead of removing it.
The rule that answers it is that a ban prunes and only thinking generates. When a verdict lands you rewrite from the content and the points, never from the previous draft's sentences.
Which is also the trap the whole file sits in. Rules collected as reactions will not by themselves produce a good essay. A pile of negative constraints tells a writer everything not to do and nothing to do, and a draft optimised against a ban list arrives correct and dead.
The missing half is a positive specimen, and it cannot be one a model writes, because a model asked to demonstrate a register writes in the register you are trying to leave. The method that works: never author the target, point at a real corpus, quote it verbatim, derive the observable properties from it. What came out were properties like definitions arriving first, rules restated as concrete instances, clumsiness tolerated, and sentences that accrete and finish rather than land.
None of which settles whether a numbered list of one person's irritations is a system or a costume for one.
Validation
What would settle it is a rule file derived independently. If the same reactions, read by something with no access to the rules, produce the same rules, then the rules are compressions of the reactions rather than decoration laid over them.
A model reading forty raw quoted reactions, with no access to the rule file, was asked what rules those reactions implied. It reconstructed the substance of about twelve of the real ones, and each reconstruction cites the reaction that caused it, which is the part that carries the result. A rule recovered without its evidence would be a guess that happened to land.
That is the closest thing to a controlled test available here. Arbitrary preferences dressed up as a system would not have been recoverable that way, because there would have been nothing stable in the reactions to recover. That recoverability is what makes the file worth handing to somebody else.
Enforcement
A rule nobody checks is back to being a preference.
A small script runs in continuous integration over the parts of my site that are lists and identity data. It fails the build on three things:
- an em dash outside a quotation
- a character class nobody types: arrows, interpuncts, box-drawing characters, and bullet glyphs used as characters rather than as list markers
- any page where more than a third of its entries are quotes rather than writing
The second is the one worth showing, because the whole check is a character range:
if (line.includes("—")) hits.push(`${rel}:${i + 1}: em dash`);
// characters no one types: arrows, interpuncts, bullets-as-characters, box drawing
const glyph = line.match(/[\u2190-\u21FF\u2794-\u27BF\u00B7\u2022\u2219\u25CF\u2500-\u257F]/);Those characters are cheap to emit and effectively never typed, which makes their presence a signature rather than a style judgment. The third check exists because a page assembled out of quoted research is a research dump wearing the costume of a page.
The essays are deliberately out of that script's scope, governed by the section-by-section process instead. The split is the point: a machine takes the rules that reduce to a character range or a ratio, and everything above the sentence still needs a person reading five candidates and saying which one is right.