Context

Back to the editor · Settings

Documents (0) Entities (0) Threads (0) Voice Lint (32) Import Preview
The detection half of a doctrine. Telling a model not to write these works about as well as telling it not to use em dashes, so every suggestion is checked against these rules after it comes back, and you can run them over your own prose from the editor sidebar. Advisory only: nothing is ever rewritten. A rule with regex off matches whole words literally, which is the right choice for a banned phrase.
Sent to the model: 15 of 32 rules, about 316 tokens per call and 948 per action, since three angles run.

Most rules are deliberately not sent. Naming a construction raises its salience, so a long list of prohibitions produces cautious, generic prose while still not reliably preventing the thing: the em dash instruction has been in the prompt since stage two and the counter still finds them. Detection after the fact costs nothing and has neither problem.

Send a rule only when it is absolute, frequent in model output, and statable in one line. A rule cannot be sent without guidance, because a regex means nothing to a model.

Add a rule

Rules

LabelPatternSentSeverityScopeState
"Not X, but Y"
A stock construction that reads as written rather than thought.
\b(?:not|isn't|wasn't)\s+\w+[^.?!]{0,40}?,?\s+
regex
detect only
warn global on
A beat of silence
Genre-default atmosphere.
\b(?:a beat of silence|the silence stretched|s
regex
detect only
warn global on
A mixture of
Naming two abstractions instead of showing one concrete thing.
\ba (?:mixture|blend|combination) of\s+\w+\s+a
regex
detect only
warn global on
A wave of
Emotion as weather. Give what she notices instead.
\ba (?:wave|surge|flood|rush) of (?:nausea|rel
regex
sent
warn global on
Adverb-propped gesture
Stock stage direction. Give the gesture or cut it.
\b(?:nod(?:s|ded|ding)?|smil(?:es|ed|ing)|shru
regex
sent
warn global on
Adverb-propped speech
The adverb is doing work the line of dialogue should do. Cut it and fix the line.
\b(?:said|asked|replied|muttered|murmured|adde
regex
sent
warn global on
As if simile
Where borrowed images hide. Most are fine; check whether the comparison is built from this book's own particulars or from general stock.
\bas if\b
regex
detect only
info global on
Body as emotion
Stock somatic shorthand. Every book uses these; none of them are yours.
\b(?:chest|stomach|throat|heart|jaw)\s+(?:tigh
regex
sent
warn global on
Chandler simile
The "as X as a Y" construction is Chandler's signature and the easiest thing to echo unknowingly. Many are innocent; check any at an emotionally load-bearing moment.
\bas (?!soon|long|far|well|much|many|though|if
regex
detect only
info global on
Chill ran down
Stock.
\ba (?:chill|shiver) (?:ran|went|crawled) (?:d
regex
detect only
warn global on
Could not help but
Filler that describes a reaction instead of giving it.
\b(?:could|couldn't|can't|cannot)\s+(?:not\s+)
regex
detect only
warn global on
Did not need to know
Telling wrapped in a negative. Show the thing she would have needed.
\b(?:did|didn't|does|doesn't)\s*n?o?t?\s*need
regex
detect only
warn global on
Em dash
Not wanted in this manuscript. The drafting prompts ask models not to use them; this catches the ones that slip through, and any arriving by paste.
\x{2014}
regex
sent
warn global on
Hung in the air
Genre-default atmosphere.
\b(?:hung|hangs|hanging) in the air\b
regex
sent
warn global on
It is not X, it is Y
The escalation form of the same tell. Almost always cuttable to the second half alone.
\b(?:it|this|that)(?:'s|\s+is|\s+was)\s+not\s+
regex
sent
warn global on
Like some kind of
Vague comparison. Name it.
\blike some (?:kind|sort) of\b
regex
detect only
warn global on
Little did she know
Narrator addressing the reader over the character's head.
\blittle did (?:she|he|they)\b
regex
detect only
warn global on
Model vocabulary
Words models reach for that almost never appear in plain British fiction.
\b(?:delve|tapestry|testament to|underscore[sd
regex
sent
warn global on
Not X, but Y
The construction Anthropic names as one of its own tells. Rewrite as a plain statement or cut the first half.
\b(?:not|isn't|wasn't|never)\s+(?!everyone|eve
regex
sent
warn global on
Part X, part Y
A stock way of avoiding choosing. Name the thing.
\bpart\s+\w+,\s*part\s+\w+
regex
detect only
warn global on
Quietly
Anthropic names this as a word its models overuse. Not wrong, but count them: more than one or two a chapter is a tell.
\bquietly\b
regex
detect only
info global on
Sententious opener
A general truth in the narrator's mouth. In close third it is both an echo risk and a POV slip.
^\s*(?:It was|There was|Grief|Love|Life|Death|
regex
sent
warn global on
Silence stretched
Genre-default atmosphere at a load-bearing moment.
\b(?:a beat of silence|the silence (?:stretche
regex
sent
warn global on
Smoothing invisible
A body-language cliché that appears in an enormous amount of fiction.
\b(?:smoothing|brushing) (?:invisible|imaginar
regex
sent
warn global on
Something shifted
Stock interiority-at-a-distance.
\bsomething\s+(?:shifted|flickered|passed)\s+(
regex
detect only
warn global on
Stock intensifier
Reaching for emphasis instead of specifics.
\b(?:utterly|profoundly|deeply|palpable|palpab
regex
sent
warn global on
Telling after showing
Naming the emotion the scene has already shown.
\b(?:she|he)\s+(?:felt|realised|knew|understoo
regex
sent
warn global on
That was the thing about
The narrator stepping back to explain. Cut it.
\bthat was the thing about\b
regex
detect only
warn global on
The kind of X that
Frequently fine, but it is the hardboiled aphorism's favourite frame.
\bthe kind of \w+ that\b
regex
detect only
info global on
There was something almost
Hedged abstraction where a concrete detail belongs.
\bthere was something (?:almost )?\w+ about\b
regex
detect only
warn global on
Thick with
Stock atmosphere.
\bair was thick with\b
regex
detect only
warn global on
Three-item rhythmic list
Only a flag: many are fine. Worth checking whether the rhythm is doing the work instead of the words.
\b\w+,\s+\w+,?\s+and\s+\w+\.
regex
sent
info global on