How Novelmint's ChapterSpec fixes AI tics and why positive guidance beats banned phrases

Most AI-writing pipelines fight the same battle in the same place. The prose gets generated. It comes out full of the familiar tells — the way her voice carried, a testament to her quiet strength, the kind of silence that felt like something ending. Then a QA pass runs downstream, catches the patterns, and rewrites the sentences.
It works. It's also the most expensive place to do the work.
We built Novelmint's pipeline on the opposite bet: most AI-isms aren't a prose problem. They're a grounding problem. And if you give the model enough structure before it writes the first sentence, the tics don't show up in the draft in the first place.
This post walks through what that looks like in practice — the ChapterSpec that drives each chapter, the prose stage that reads it, and the narrow editorial diff that cleans up what still gets through.
The problem with downstream cleanup
When you catch an AI-ism after the fact, you're pattern-matching finished prose. "a testament to" gets flagged. The sentence it's in gets rewritten. The replacement has to fit the paragraph around it - the voice, the beat, the emotional register.
That's a lot of work to do blind, and it's why most cleanup passes either regenerate whole paragraphs (expensive, risks drift) or make surface-level swaps that leave the underlying sentence shape intact.
But here's the thing: "a testament to her quiet strength" isn't bad because it contains those particular words. It's bad because the model reached for an abstract summary when it didn't have anything concrete to point at. The words are a symptom. The cause is one step back.
If the model had been told she's standing at a workbench cluttered with 18 years of scattered tools, and she hasn't slept in two days — if it had been given something specific to render — it wouldn't have reached for the abstraction. It would have rendered the specific thing.
That's the upstream bet.
What you start with: a single beat from a chapter
Let’s run an example through from start to finish. Here is beat 1 from chapter 1 from Signal and Root, Book 2 of Drakenhart Saga.
**Beat 1: The Research Station**
- Opens in Marcus's research station. Sera, Prime, Pip are all standing around Marcus's workbench listening to him explain
- Sera looks around, the place is scattered with the odds and ends of a life lived with no one else present - a life she missed out on knowing. She notices the workbench is clear of clutter and seems to have specific focus areas - she smiles - a true scientist at heart, he keeps his work area sharp and focused like his mind. She remembers that about him from before.
Two clear bullet points, each describing something about the environment, thoughts, and feelings of the scene. A full chapter would contain 3 or more of these. Character sheets and worldbuilding details are stored separately in the Reference Documents section of the site.
All of which are sent to the ChapterSpec generation process.
What a ChapterSpec actually contains
A ChapterSpec is the author's map for a single chapter. It's not an outline. Outlines are what feed into it. Each ChapterSpec is built out of beats — scene-level units with explicit voice modes, structural markers, and required sensory elements. Here's the same beat from our example chapter above:
BEAT 1: The Station and the Silence After
Scene Type: emotional, world-building <informs the prose how to treat this beat>
Primary Voice Mode: `CHARACTER_DRIVEN` (×1.00) — emotional truth of the revelation settling <the specific Voice Mode being used>
Secondary Voice Mode: `ATMOSPHERIC` (×1.00) — the station as a new place coming alive through observation <a secondary Voice Mode>
Word Count Target: 800-1,000 words <a calculated number based on the specificity of the beat its coming from and the Voice Modes used>
Trigger: Marcus's cliffhanger revelation — "Magic is dying. Someone is making it happen." — has just landed. The words are still settling in the silence of the research station. <the cliffhanger from Book 1, showing continuity between books>
Event: Sera absorbs the weight of the revelation while taking in Marcus's research station — the physical evidence of 18 years of solitary work. The station itself tells the story of a life she missed. She observes the scattered personal items of a life lived alone, the contrast with the pristine workbench, and one holographic image kept clean for 18 years. <details from the word building file>
Response: Sera processes through observation — the cluttered living space versus the sharp, focused workbench. She smiles — a true scientist at heart, he keeps his work area organized like his mind. She remembers that about him from before, from when she was small. <details from the character sheet>
Consequence: Marcus, seeing that the team is ready and the initial shock has settled, begins organizing his full briefing — this was the headline, now comes the data. <informs the prose to end the beat by leading into a new beat>
Then the required elements — the things the prose stage is told it must include:
EXPLICIT — Location grounding: jury-rigged research station,
walls covered in equations and dimensional charts in faded ink,
source dimension visible through viewports, fluid and luminous,
rivers of liquid magic in the distance.
EXPLICIT — Station details: a mug with a chipped rim, a blanket
folded on a cot that's seen better decades, the contrast between
cluttered living space and sharp, focused workbench.
EXPLICIT — One pristine personal item: a holographic image of
Aurelia and baby Sera — the only thing Marcus kept clean in 18
years. Sera sees her own dark red hair on the woman in the image,
her father's blue eyes looking back at her from the baby's face.
EXPLICIT — Sera's pendant reacting: warmth, resonance, a low hum
she feels in her sternum rather than hears.
AMBIENT — Prime standing near Sera, already cataloging. Head tilted
slightly right — curiosity at the environment.
AMBIENT — Pip hovering at eye level with Marcus's equipment, tiny
hands reaching toward components with the reverence of one engineer
recognizing another's work.
AMBIENT — The constant low hum of the dimensional barrier — felt in
the chest before heard with the ears.
And the guardrails:
MUST NOT REFERENCE: weapon signature specifics, 50-year timeline,
degradation pattern, attack vector (revealed in Beat 2). <timeline adherence baked in, even within the chapter itself>
POV FILTER: Sera sees the photograph and thinks of "her dad" —
not "Marcus." The workbench observation can use "Marcus" because
she's thinking about him as a scientist there.
THEME: This opening is about absence made visible. Show it in the
objects, the dust, the one clean photograph. Do NOT narrate the theme.The Main Premise: everything the prose stage reaches for — what should this paragraph be about, what does the room look like, whose head am I in, what am I allowed to know — has an answer before the model generates a single word of prose.
What this produces
Here's the prose generated from from that exact ChapterSpec:
Equations covered the walls in faded ink, layered over one another where the surface had run out. Some had been scratched through and rewritten in tighter script beside the original, corrections made years apart in handwriting that drifted from precise to shaking and back again. The oldest were barely visible beneath newer work, ghost mathematics haunting the station like a memory.
Sera stood in the middle of her father's research station and let the silence after his words settle into her bones.
*Magic is dying. Someone is making it happen.*
The station hummed around her. A deep resonance that she felt before it reached her ears. The dimensional barrier itself, thrumming through every surface, every jury-rigged panel of solidified magic that Marcus had shaped into walls and floors and something resembling a life. Through the viewport to her left, the source dimension stretched in impossible colors: rivers of liquid magic flowing in slow luminous currents between platforms of crystallized energy that floated in the void like islands in an ocean made of light. Beautiful. Alien. The dimension that was slowly eating her father alive.
She turned from the viewport. The station was small. A single room partitioned by habit rather than walls. Marcus's living space occupied the far corner: a cot with a blanket folded at its foot, the fabric so threadbare it had gone translucent at the creases. A mug with a chipped rim sat on a shelf beside three others, all identical, as if he'd salvaged a set and broken them one by one over the years. Odds and ends she'd never know the stories behind — a coil of wire twisted into a shape that might have been decorative or might have been an abandoned experiment, a stack of something that looked like pressed leaves but shimmered with dimensional energy, a pair of boots so worn the soles had separated from the uppers.
The workbench was different.
Clear. Focused. Every tool in its place, every component organized by function, every surface clean enough to reflect the source dimension's shifting light. Monitoring arrays hummed at the back of the bench, their displays cycling through data in colors that didn't exist in normal space. The contrast was stark. A man who had stopped caring about comfort a decade ago, pouring every remaining fragment of discipline into the work that kept him going.
Sera smiled. A true scientist at heart. She remembered that about him, from before, from when she was small and he'd let her sit on the counter while he worked in his home lab. The counters had always been immaculate. The rest of the house had always been a disaster. Elena used to tease him about it, and he'd say something about entropy being a personal choice, and Elena would throw a dish towel at his head.
The memory caught in her throat.
One item on the workbench wasn't equipment. A holographic image, small enough to fit in a palm, projected from a crystal base that had been polished so often the edges were smooth as river stone. The image showed a woman with dark red wavy hair holding an infant. The woman's face was warm, intelligent, lit with joy. The baby had blue eyes.
Sera's blue eyes.
Count the spec elements: the faded equations, the viewport, the chipped mug, the folded blanket, the organized workbench, the mother's voice (implied history — the POV filter at work), the pendant's resonance, and the setup for the photograph reveal.
No "a testament to". No "the kind of silence that felt like". The prose didn't reach for those shapes because it had concrete things to render. The spec did the grounding work. The prose stage just wrote what was there.
There are still a few AI tells in the generated prose, but a lot less overall, and a lot more manageable for the human author to read through and adjust manually.
The prose stage's guardrails
The spec handles most of it. The prose stage handles the rest.
It reads the ChapterSpec under a system prompt that bakes in the craft rules — POV discipline, physical grounding before interiority, paragraph variation, forward momentum. Alongside, in context: a slimmed voice-pattern library (archetypes and modifiers) and a block we call PROSE RHYTHM & GUIDANCE.
PROSE RHYTHM & GUIDANCE is a list of targeted tics. Each entry looks like this:
key: 'the_way_comparisons',
label: '"The way" / "the kind of" comparisons',
flags: '"the way a [comparison]", "the kind of [noun] that", "the kind of thing that"',
fix: 'Ask what is actually present in the scene, then replace with that. If the comparison is genuinely precise and earned, leave it.',
positiveFix: 'Name the specific sensory detail that is actually present in this scene.',
That positiveFix is the piece that took the longest to arrive at and ended up being the most important.
Telling the model don't use "the way a..." is weak. Models follow negative instructions unreliably and often generate the forbidden pattern immediately after being told not to (the forbidden phrase is still in the prompt, still active in the model's attention).
Telling the model name the specific sensory detail that is actually present in this scene is strong. It redirects the model to a different behavior instead of asking it to suppress one. The grounding happens in the prompt, before generation, not after.
We went through every tic in PROSE RHYTHM & GUIDANCE and rewrote the avoidance instruction as a redirection. Abstract melodramatic summary ("a testament to") became "state the concrete action or observation that led to this conclusion." Body-part-as-emotion-proxy (jaw clenching, chest tightening) became "show the physical action that caused or accompanied the feeling."
After that change, the editorial pass had dramatically less to do.
Editorial as a narrow diff
Whatever gets through upstream grounding still needs a cleanup pass. Originally we did this with full-prose regeneration - send the chapter back with instructions to fix the tics. This was expensive, slow, and introduced drift: the rewritten prose would sometimes lose continuity details the first pass had gotten right.
We replaced it in late March with a targeted diff.
The editorial stage makes a single analysis call that returns structured edits:
{
"edits": [
{
"tic": "<tic name>",
"original": "<exact verbatim text — complete sentence(s)>",
"replacement": "<replacement text, or empty string to delete>",
"reason": "<one sentence>"
}
]
}
A second step, applyEdits(), runs exact string matching against the prose. Only sentences that actually exhibit the tic get touched. If the analysis call hallucinates a verbatim original that doesn't exist in the prose, the edit is silently skipped and logged. It can't bluff its way into rewriting something it didn't match.
The replacement text is generated with the surrounding prose in context, so it fits the paragraph rather than just deleting the tic. And because the edits are targeted sentence swaps rather than full regeneration, continuity is preserved by default.
The architectural takeaway
Downstream QA and upstream grounding are doing the same job on different axes. Downstream catches AI-isms in finished prose. Upstream prevents them by giving the model something specific to render.
Both work. Both cost something. Neither is one-click.
What surprised us wasn't that the upstream approach worked — it was how much leverage came from one specific change: rewriting tic avoidance as positive guidance. Telling the model what to do instead of what to avoid was the cheapest architectural decision we made and the highest-return one.
If you're building a long-form prose pipeline, that's the single thing worth copying.
If you're an author with an idea and you want to see what this looks like on the other side of the keyboard — the spec you write, the prose the pipeline produces, the ratings that shape the next chapter — start a series at novelmint.ai.