| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.38% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1383 | | 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) | |
| 53.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1383 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "pumping" | | 1 | "pulse" | | 2 | "footsteps" | | 3 | "echoed" | | 4 | "could feel" | | 5 | "velvet" | | 6 | "flickered" | | 7 | "resolved" | | 8 | "mechanical" | | 9 | "pulsed" | | 10 | "familiar" |
| |
| 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 | 112 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 112 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 113 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1367 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 24 | | wordCount | 1348 | | uniqueNames | 12 | | maxNameDensity | 0.96 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 13 | | London | 1 | | Camden | 1 | | Hawley | 1 | | Crescent | 1 | | Wind | 1 | | Victorian | 1 | | Elephant | 1 | | Castle | 1 | | Deptford | 1 | | Morris | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Wind" | | 3 | "Morris" |
| | places | | 0 | "London" | | 1 | "Hawley" | | 2 | "Crescent" | | 3 | "Elephant" | | 4 | "Deptford" |
| | globalScore | 1 | | windowScore | 1 | |
| 83.33% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 75 | | glossingSentenceCount | 2 | | matches | | 0 | "rings that seemed to shift size when she looked at them directly" | | 1 | "felt like them, back alleys in Elephant" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.732 | | wordCount | 1367 | | matches | | 0 | "not footsteps but the creak of leather" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 113 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 35.05 | | std | 26.14 | | cv | 0.746 | | sampleLengths | | 0 | 66 | | 1 | 8 | | 2 | 75 | | 3 | 7 | | 4 | 15 | | 5 | 59 | | 6 | 52 | | 7 | 20 | | 8 | 49 | | 9 | 18 | | 10 | 57 | | 11 | 4 | | 12 | 69 | | 13 | 4 | | 14 | 54 | | 15 | 4 | | 16 | 74 | | 17 | 37 | | 18 | 9 | | 19 | 72 | | 20 | 62 | | 21 | 5 | | 22 | 87 | | 23 | 10 | | 24 | 12 | | 25 | 12 | | 26 | 3 | | 27 | 8 | | 28 | 44 | | 29 | 60 | | 30 | 54 | | 31 | 64 | | 32 | 16 | | 33 | 23 | | 34 | 54 | | 35 | 4 | | 36 | 40 | | 37 | 12 | | 38 | 44 |
| |
| 99.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 112 | | matches | | 0 | "been locked" | | 1 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 231 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 113 | | ratio | 0.142 | | matches | | 0 | "The suspect was thirty meters ahead—a wiry figure in a gray hoodie, arms pumping, sneakers splashing through puddles that caught the amber bleed of streetlights." | | 1 | "Eighteen years of chasing men across this city had trained her legs to read the geometry of a sprint—where to cut, when to anticipate, how much distance a person gained on a diagonal." | | 2 | "Late-night foot traffic scattered at the sight of them—a woman clutching a paper bag, a group of boys who yelled something she didn't process." | | 3 | "She could see the entrance up ahead—the shuttered station with its roundel sign, the one that should have been locked." | | 4 | "The suspect's footsteps echoed ahead—irregular, scraping, the sound of someone who'd stopped caring about quiet." | | 5 | "She stepped out into a space that shouldn't have existed—a vaulted chamber, maybe fifty meters across, with the ribbed ceiling of a Victorian reservoir." | | 6 | "Tables lined both sides, draped in dark cloth and stacked with goods she couldn't immediately name—vials of liquid that caught light and held it wrong, bundles of dried herbs tied with red thread, rings that seemed to shift size when she looked at them directly." | | 7 | "The smell hit her—incense, copper, something sweet and rotting underneath." | | 8 | "A tattoo crawling up the left side of his neck—a spiral of dark ink." | | 9 | "Then he gestured behind him—a bookshelf, freestanding against the far wall, incongruous among the brick and pipework." | | 10 | "She'd followed men into places like this before—or places that felt like them, back alleys in Elephant and Castle, a decommissioned warehouse in Deptford where the floor gave way to black water below." | | 11 | "Then a voice, broken: \"—not on any schematics, Quinn, there's no—\"" | | 12 | "That was the play any commander would order if she reported in—assuming her radio worked long enough to reach one." | | 13 | "And the spiral tattoo on his neck matched a fragment she'd pulled from a case file three years ago—the same case that had swallowed DS Morris whole and left her with questions that never resolved into answers." | | 14 | "A sound reached her—not footsteps but the creak of leather and the soft mechanical click of the bookshelf swinging back on its hinges." | | 15 | "The suspect in gray stepped out, hood back up, and moved in the opposite direction—toward a stairwell at the far end of the chamber where stone steps descended further into darkness." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 936 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 21 | | adverbRatio | 0.022435897435897436 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.005341880341880342 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 113 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 113 | | mean | 12.1 | | std | 9.2 | | cv | 0.76 | | sampleLengths | | 0 | 23 | | 1 | 25 | | 2 | 4 | | 3 | 2 | | 4 | 4 | | 5 | 8 | | 6 | 3 | | 7 | 5 | | 8 | 21 | | 9 | 21 | | 10 | 33 | | 11 | 3 | | 12 | 4 | | 13 | 10 | | 14 | 5 | | 15 | 9 | | 16 | 8 | | 17 | 19 | | 18 | 20 | | 19 | 3 | | 20 | 5 | | 21 | 24 | | 22 | 12 | | 23 | 11 | | 24 | 20 | | 25 | 20 | | 26 | 3 | | 27 | 16 | | 28 | 3 | | 29 | 3 | | 30 | 4 | | 31 | 18 | | 32 | 17 | | 33 | 4 | | 34 | 23 | | 35 | 13 | | 36 | 4 | | 37 | 7 | | 38 | 15 | | 39 | 8 | | 40 | 21 | | 41 | 18 | | 42 | 4 | | 43 | 24 | | 44 | 6 | | 45 | 1 | | 46 | 3 | | 47 | 4 | | 48 | 16 | | 49 | 4 |
| |
| 42.48% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.3185840707964602 | | totalSentences | 113 | | uniqueOpeners | 36 | |
| 93.46% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 107 | | matches | | 0 | "Then the tunnel widened." | | 1 | "Then he gestured behind him—a" | | 2 | "Then a voice, broken: \"—not" |
| | ratio | 0.028 | |
| 96.64% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 107 | | matches | | 0 | "He glanced back once." | | 1 | "She didn't waste the oxygen." | | 2 | "She'd spent two decades learning" | | 3 | "He was fast." | | 4 | "She'd give him that." | | 5 | "He vaulted a low railing" | | 6 | "She squeezed through the same" | | 7 | "She kept moving." | | 8 | "They hit the high street." | | 9 | "she muttered into her radio," | | 10 | "She could see the entrance" | | 11 | "He'd planned this route." | | 12 | "Her boots struck tile." | | 13 | "She followed the tunnel." | | 14 | "She stepped out into a" | | 15 | "She pressed herself against the" | | 16 | "He stood ten meters away," | | 17 | "He looked left, right, then" | | 18 | "He held it up toward" | | 19 | "He took the bone disc," |
| | ratio | 0.308 | |
| 39.44% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 90 | | totalSentences | 107 | | matches | | 0 | "The rain hit Harlow Quinn" | | 1 | "The suspect was thirty meters" | | 2 | "He glanced back once." | | 3 | "Quinn didn't shout." | | 4 | "She didn't waste the oxygen." | | 5 | "She'd spent two decades learning" | | 6 | "The suspect turned left onto" | | 7 | "He was fast." | | 8 | "She'd give him that." | | 9 | "The word left her mouth" | | 10 | "Wind swallowed half of it." | | 11 | "He vaulted a low railing" | | 12 | "Quinn followed, her knee complaining" | | 13 | "The man in gray crashed" | | 14 | "She squeezed through the same" | | 15 | "She kept moving." | | 16 | "They hit the high street." | | 17 | "The suspect crossed recklessly, headlights" | | 18 | "Quinn waited half a beat" | | 19 | "she muttered into her radio," |
| | ratio | 0.841 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 107 | | matches | (empty) | | ratio | 0 | |
| 10.58% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 54 | | technicalSentenceCount | 10 | | matches | | 0 | "The suspect was thirty meters ahead—a wiry figure in a gray hoodie, arms pumping, sneakers splashing through puddles that caught the amber bleed of streetlights…" | | 1 | "Late-night foot traffic scattered at the sight of them—a woman clutching a paper bag, a group of boys who yelled something she didn't process." | | 2 | "The station smelled of old rainwater and rust, the fluorescent tubes overhead humming and flickering in a stutter that made the walls pulse." | | 3 | "The suspect's footsteps echoed ahead—irregular, scraping, the sound of someone who'd stopped caring about quiet." | | 4 | "Graffiti covered one wall: a crown rendered in spray paint, half-effaced by something that looked almost like scorching." | | 5 | "Tables lined both sides, draped in dark cloth and stacked with goods she couldn't immediately name—vials of liquid that caught light and held it wrong, bundles …" | | 6 | "The figure was tall and thin, draped in a long coat that might have been leather or something older." | | 7 | "She caught the flash of it swinging on hinges before it closed tight, revealing nothing but a wall of brick and a row of jars that held things suspended in ambe…" | | 8 | "And the spiral tattoo on his neck matched a fragment she'd pulled from a case file three years ago—the same case that had swallowed DS Morris whole and left her…" | | 9 | "She stood at the junction between the tunnel behind her and the market ahead, the rain from above a distant memory, her torn jacket hanging open, the watch on h…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 1 | | matches | | 0 | "she muttered, though the channel crackled with static and no reply came" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 1 | | effectiveRatio | 0.5 | |