| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 96.83% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1579 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 81.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1579 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "footsteps" | | 1 | "could feel" | | 2 | "electric" | | 3 | "vibrated" | | 4 | "pulse" | | 5 | "framework" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 0 | | maxInWindow | 0 | | found | (empty) | | highlights | (empty) | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 108 | | matches | (empty) | |
| 63.49% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 4 | | narrationSentences | 108 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "happened to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 108 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 68 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1601 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 1601 | | uniqueNames | 15 | | maxNameDensity | 0.87 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 14 | | Kentish | 1 | | Town | 1 | | Road | 1 | | Herrera | 9 | | Saint | 1 | | Christopher | 1 | | Raven | 2 | | Nest | 2 | | Soho | 1 | | Morris | 6 | | Underground | 1 | | Tube | 1 | | Aldgate | 1 | | London | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Herrera" | | 2 | "Saint" | | 3 | "Christopher" | | 4 | "Morris" |
| | places | | 0 | "Kentish" | | 1 | "Town" | | 2 | "Road" | | 3 | "Raven" | | 4 | "Soho" | | 5 | "Aldgate" | | 6 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 81 | | glossingSentenceCount | 1 | | matches | | 0 | "as if presenting it to the darkness, and the darkness — Quinn's chest tightened — seemed to respond" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.625 | | wordCount | 1601 | | matches | | 0 | "not clearly, but the suggestion of sound" |
| |
| 74.07% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 108 | | matches | | 0 | "pushed that thought" | | 1 | "know that the" | | 2 | "opened that file" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 44.47 | | std | 38.26 | | cv | 0.86 | | sampleLengths | | 0 | 23 | | 1 | 76 | | 2 | 73 | | 3 | 82 | | 4 | 7 | | 5 | 66 | | 6 | 18 | | 7 | 11 | | 8 | 96 | | 9 | 31 | | 10 | 83 | | 11 | 13 | | 12 | 114 | | 13 | 5 | | 14 | 57 | | 15 | 4 | | 16 | 94 | | 17 | 42 | | 18 | 39 | | 19 | 73 | | 20 | 13 | | 21 | 69 | | 22 | 7 | | 23 | 19 | | 24 | 77 | | 25 | 6 | | 26 | 8 | | 27 | 152 | | 28 | 57 | | 29 | 10 | | 30 | 97 | | 31 | 6 | | 32 | 7 | | 33 | 9 | | 34 | 47 | | 35 | 10 |
| |
| 89.02% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 108 | | matches | | 0 | "was soaked" | | 1 | "being followed" | | 2 | "been parked" | | 3 | "were tiled " | | 4 | "been handed" |
| |
| 40.64% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 251 | | matches | | 0 | "was reading" | | 1 | "was doing" | | 2 | "wasn't looking" | | 3 | "was looking" | | 4 | "was supplying" | | 5 | "was looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 22 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 108 | | ratio | 0.139 | | matches | | 0 | "She kept her distance — forty feet back, maybe forty-five — letting the crowd of umbrellas and hunched shoulders absorb her." | | 1 | "She'd been parked outside the Raven's Nest in Soho for six hours, nursing cold coffee and watching the green neon sign bleed its colour down the wet cobblestones, when Herrera had come out the side entrance — not the front, the side, which meant he knew things he wasn't supposed to know — and turned north at a pace that wasn't casual." | | 2 | "She checked her watch — the leather strap dark with rain, the face a little fogged — and noted the time." | | 3 | "The high street's chaos of neon and puddles and late-night foot traffic should have swallowed Herrera, but Quinn had locked onto the rhythm of his walk — that slight forward lean, the way his left arm swung a fraction less than his right, probably the old knife scar pulling at the muscle — and she kept him in her peripheral vision even when she wasn't looking directly at him." | | 4 | "He was looking at something she couldn't see yet — a door, maybe, or a gap in the hoardings." | | 5 | "He held it out at arm's length, as if presenting it to the darkness, and the darkness — Quinn's chest tightened — seemed to respond." | | 6 | "She could feel warm air coming up from below, and with it a smell that made no sense in context — burnt copper, lamp oil, and something sweet she couldn't name." | | 7 | "The walls on either side were tiled — cream and brown, the old Underground pattern, cracked and stained with decades of damp." | | 8 | "She could hear things now — not clearly, but the suggestion of sound." | | 9 | "He was a former paramedic running unlicensed medical care — that was what the intelligence suggested, though intelligence was a generous word for the thread of rumour and half-confirmed sighting that had led her here." | | 10 | "She pressed two fingers to the worn leather of her watch, a habit she'd developed without ever quite understanding why — something about feeling time against her wrist, grounding herself in the sequential, the rational." | | 11 | "The light grew warmer as she descended, and the smell intensified — the lamp oil smell became distinct now, actual oil-fed flames in iron sconces bolted to the old tiled walls, their tongues of fire bending toward her in the updraught from below." | | 12 | "Stalls and tables lined the walls, their surfaces covered with objects she could see but not immediately categorise — glass vessels containing things that moved, bundles of material tied with dark thread, small wooden boxes with locks that didn't correspond to any key she'd ever seen." | | 13 | "And there — twenty metres down the platform, turning to speak to a vendor with the careful, transactional manner of someone conducting regular business — was Herrera." | | 14 | "What she did not have was any meaningful framework for the burning oil lamps, the wrong-coloured light in the glass vessel, or the low resonant hum that she could now identify as coming from the tunnel itself — from the walls, from the tracks — as if the station were alive in some dim, geological way and barely tolerating their presence." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1589 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 48 | | adverbRatio | 0.030207677784770296 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.00881057268722467 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 108 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 108 | | mean | 14.82 | | std | 13.38 | | cv | 0.903 | | sampleLengths | | 0 | 23 | | 1 | 21 | | 2 | 8 | | 3 | 4 | | 4 | 25 | | 5 | 13 | | 6 | 5 | | 7 | 19 | | 8 | 32 | | 9 | 22 | | 10 | 7 | | 11 | 62 | | 12 | 13 | | 13 | 3 | | 14 | 4 | | 15 | 21 | | 16 | 1 | | 17 | 14 | | 18 | 12 | | 19 | 18 | | 20 | 11 | | 21 | 7 | | 22 | 11 | | 23 | 2 | | 24 | 69 | | 25 | 25 | | 26 | 5 | | 27 | 1 | | 28 | 15 | | 29 | 10 | | 30 | 19 | | 31 | 9 | | 32 | 10 | | 33 | 25 | | 34 | 20 | | 35 | 13 | | 36 | 11 | | 37 | 12 | | 38 | 2 | | 39 | 3 | | 40 | 31 | | 41 | 4 | | 42 | 8 | | 43 | 6 | | 44 | 37 | | 45 | 5 | | 46 | 1 | | 47 | 11 | | 48 | 23 | | 49 | 22 |
| |
| 37.07% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 22 | | diversityRatio | 0.34579439252336447 | | totalSentences | 107 | | uniqueOpeners | 37 | |
| 68.73% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 97 | | matches | | 0 | "Then a section of the" | | 1 | "Then she put her hand" |
| | ratio | 0.021 | |
| 50.93% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 97 | | matches | | 0 | "She kept her distance —" | | 1 | "They always did, eventually." | | 2 | "She was reading it now." | | 3 | "She hadn't planned on running" | | 4 | "She'd been parked outside the" | | 5 | "She checked her watch —" | | 6 | "She'd called it in an" | | 7 | "Her sergeant had told her" | | 8 | "She had said yes, of" | | 9 | "She pushed that thought back" | | 10 | "He turned off the main" | | 11 | "He was looking at something" | | 12 | "He reached into his jacket" | | 13 | "She couldn't make out what" | | 14 | "He held it out at" | | 15 | "She pressed her back to" | | 16 | "She could feel warm air" | | 17 | "She counted her heartbeats." | | 18 | "She had left her radio" | | 19 | "Her sidearm was on her" |
| | ratio | 0.423 | |
| 52.78% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 79 | | totalSentences | 97 | | matches | | 0 | "The rain had been falling" | | 1 | "She kept her distance —" | | 2 | "Herrera hadn't looked back yet," | | 3 | "They always did, eventually." | | 4 | "The ones who knew they" | | 5 | "Quinn had learned to read" | | 6 | "She was reading it now." | | 7 | "Tomás Herrera walked fast, hands" | | 8 | "The Saint Christopher medallion at" | | 9 | "Quinn stepped off the kerb" | | 10 | "She hadn't planned on running" | | 11 | "She'd been parked outside the" | | 12 | "Quinn had been out of" | | 13 | "That was instinct." | | 14 | "She checked her watch —" | | 15 | "She'd called it in an" | | 16 | "Her sergeant had told her" | | 17 | "She had said yes, of" | | 18 | "DS Morris used to say" | | 19 | "Morris had been right about" |
| | ratio | 0.814 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 5 | | totalSentences | 97 | | matches | | 0 | "To call for backup." | | 1 | "To document the location, establish" | | 2 | "If there was something in" | | 3 | "If he was supplying something" | | 4 | "If there were answers down" |
| | ratio | 0.052 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 59 | | technicalSentenceCount | 13 | | matches | | 0 | "The ones who knew they were being followed developed a kind of animal awareness, a twitch in the shoulders that came just before they bolted." | | 1 | "She'd been parked outside the Raven's Nest in Soho for six hours, nursing cold coffee and watching the green neon sign bleed its colour down the wet cobblestone…" | | 2 | "He turned off the main drag, ducking into a narrow service road that ran behind the market stalls, and Quinn counted to three before following." | | 3 | "She could feel warm air coming up from below, and with it a smell that made no sense in context — burnt copper, lamp oil, and something sweet she couldn't name." | | 4 | "They descended at a sharp angle into yellow-orange light that wasn't fluorescent and wasn't electric, or at least not any electricity she recognised." | | 5 | "She knew there were ghost stations under the city, sealed up and forgotten, and she'd spent enough years working the streets to know that the forgotten spaces b…" | | 6 | "He was a former paramedic running unlicensed medical care — that was what the intelligence suggested, though intelligence was a generous word for the thread of …" | | 7 | "She pressed two fingers to the worn leather of her watch, a habit she'd developed without ever quite understanding why — something about feeling time against he…" | | 8 | "She slowed her pace, keeping close to the wall, trying to make herself small in the way that a five-foot-nine woman with military bearing cannot entirely manage…" | | 9 | "The platform was long, the tracks below buried under wooden boards and rugs that shouldn't have survived underground." | | 10 | "Stalls and tables lined the walls, their surfaces covered with objects she could see but not immediately categorise — glass vessels containing things that moved…" | | 11 | "A woman in a grey coat examined a small bottle held up to the flame of a candelabra, and the light that passed through the liquid was the wrong colour, a deep a…" | | 12 | "What she did not have was any meaningful framework for the burning oil lamps, the wrong-coloured light in the glass vessel, or the low resonant hum that she cou…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |