| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.45 | | leniency | 0.9 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 91.74% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1211 | | totalAiIsmAdverbs | 2 | | 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) | |
| 66.97% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1211 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "flicker" | | 1 | "silence" | | 2 | "throbbed" | | 3 | "weight" | | 4 | "flickered" | | 5 | "echoed" | | 6 | "pulse" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 120 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 120 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 133 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 50 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1185 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 15 | | wordCount | 1007 | | uniqueNames | 8 | | maxNameDensity | 0.79 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Quinn | 8 | | Raven | 1 | | Nest | 1 | | Deptford | 1 | | Tube | 1 | | Christopher | 1 | | Herrera | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Raven" | | 2 | "Christopher" | | 3 | "Herrera" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1185 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 133 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 28.9 | | std | 25.06 | | cv | 0.867 | | sampleLengths | | 0 | 103 | | 1 | 55 | | 2 | 75 | | 3 | 62 | | 4 | 56 | | 5 | 35 | | 6 | 54 | | 7 | 53 | | 8 | 83 | | 9 | 54 | | 10 | 42 | | 11 | 41 | | 12 | 6 | | 13 | 8 | | 14 | 47 | | 15 | 47 | | 16 | 51 | | 17 | 8 | | 18 | 13 | | 19 | 9 | | 20 | 34 | | 21 | 5 | | 22 | 3 | | 23 | 11 | | 24 | 13 | | 25 | 6 | | 26 | 17 | | 27 | 7 | | 28 | 27 | | 29 | 5 | | 30 | 7 | | 31 | 2 | | 32 | 38 | | 33 | 9 | | 34 | 18 | | 35 | 3 | | 36 | 32 | | 37 | 6 | | 38 | 14 | | 39 | 15 | | 40 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 120 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 187 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 27 | | semicolonCount | 0 | | flaggedSentences | 19 | | totalSentences | 133 | | ratio | 0.143 | | matches | | 0 | "Ahead, a shadow darted between two narrow alleys—just a flicker under the weak halo of a sodium lamp—but she knew it was him." | | 1 | "Only that he’d left The Raven’s Nest too fast after seeing her walk in, that he hadn’t belonged there the way the regulars did—the ones who knew how to drink in silence, who didn’t ask questions about the bookshelf that never seemed to line up right with the others." | | 2 | "Eighteen years on the force, and she still felt it—the phantom weight of Morris’ hand on her shoulder the last time she saw him alive." | | 3 | "She dropped to one knee, fingers grazing the spot where someone—recently—had wrenched through." | | 4 | "The air here tasted stale, metallic—like old pennies and damp earth." | | 5 | "The sound of dripping water echoed below, layered with something else—muffled voices, a low thump of music, the clink of glass." | | 6 | "And there, ten feet ahead, stood a man—hood drawn low, shoulders tight." | | 7 | "The wall slid open with a groan, revealing a cascade of dim, coloured light—amber, violet, crimson—spilling from within." | | 8 | "She stumbled into a vast, cavernous space—an abandoned Tube station, the kind they’d decommissioned in the ‘80s." | | 9 | "People—humans, mostly, though some weren’t quite right—bargained over vials of glowing liquid, bundles of dried roots, locks of hair sealed in jars." | | 10 | "Quinn kept her head down, hand tucked in her coat, not touching the gun—not yet." | | 11 | "She turned—too fast—and found herself staring into the face of a boy who had no reflection in the polished brass bowl beside him." | | 12 | "He bolted—ducking between two stalls, knocking over a basket of dried moths that burst into blue flame when they hit the ground." | | 13 | "Another doorway there—half-collapsed, guarded by a figure in a long, hooded coat, arms crossed." | | 14 | "She holstered her weapon—visibility would only get her killed down there." | | 15 | "Never known what it meant—until now." | | 16 | "She could hear him ahead—panting, stumbling—knowing he was trapped." | | 17 | "From the shadows stepped a man—mid-thirties, curly dark hair, olive skin, a scar running down his forearm." | | 18 | "Behind him, a low hum rose from the dark—like the growl of something ancient, waking." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 199 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 5 | | adverbRatio | 0.02512562814070352 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 133 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 133 | | mean | 8.91 | | std | 7.17 | | cv | 0.804 | | sampleLengths | | 0 | 16 | | 1 | 26 | | 2 | 14 | | 3 | 23 | | 4 | 24 | | 5 | 6 | | 6 | 49 | | 7 | 11 | | 8 | 25 | | 9 | 13 | | 10 | 2 | | 11 | 2 | | 12 | 22 | | 13 | 9 | | 14 | 4 | | 15 | 14 | | 16 | 6 | | 17 | 13 | | 18 | 7 | | 19 | 1 | | 20 | 2 | | 21 | 3 | | 22 | 3 | | 23 | 14 | | 24 | 11 | | 25 | 5 | | 26 | 18 | | 27 | 3 | | 28 | 3 | | 29 | 2 | | 30 | 5 | | 31 | 21 | | 32 | 3 | | 33 | 2 | | 34 | 4 | | 35 | 12 | | 36 | 12 | | 37 | 12 | | 38 | 6 | | 39 | 3 | | 40 | 9 | | 41 | 18 | | 42 | 10 | | 43 | 5 | | 44 | 11 | | 45 | 9 | | 46 | 13 | | 47 | 9 | | 48 | 17 | | 49 | 5 |
| |
| 69.17% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.45112781954887216 | | totalSentences | 133 | | uniqueOpeners | 60 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 10 | | totalSentences | 100 | | matches | | 0 | "Only that he’d left The" | | 1 | "Just before the fog swallowed" | | 2 | "Just a puddle of black" | | 3 | "Then she was moving, one" | | 4 | "Then she lunged, shoulder first," | | 5 | "Then, just ahead, the suspect" | | 6 | "Instead, she reached into her" | | 7 | "Then, slowly, the head tilted." | | 8 | "Just passed through." | | 9 | "Then a voice, not his." |
| | ratio | 0.1 | |
| 92.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 100 | | matches | | 0 | "Her coat flapped behind her" | | 1 | "She wasn’t sure what he" | | 2 | "Her wrist throbbed where the" | | 3 | "She rounded the corner, water" | | 4 | "She dropped to one knee," | | 5 | "Her torch beam cut through" | | 6 | "They led down." | | 7 | "She hesitated only a second." | | 8 | "She tapped it." | | 9 | "He faced a blank stretch" | | 10 | "Her fingers tightened on the" | | 11 | "She waited until the man" | | 12 | "She stumbled into a vast," | | 13 | "She spotted him again, slipping" | | 14 | "She turned—too fast—and found herself" | | 15 | "She backed away." | | 16 | "His eyes widened." | | 17 | "He bolted—ducking between two stalls," | | 18 | "She followed, vaulting over a" | | 19 | "He ran toward the far" |
| | ratio | 0.32 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 70 | | totalSentences | 100 | | matches | | 0 | "Rain sliced down in silver" | | 1 | "Harlow Quinn’s leather boots slipped" | | 2 | "Her coat flapped behind her" | | 3 | "The same figure she’d seen" | | 4 | "She wasn’t sure what he" | | 5 | "Her wrist throbbed where the" | | 6 | "She rounded the corner, water" | | 7 | "The figure was gone." | | 8 | "The alley ended in a" | | 9 | "She dropped to one knee," | | 10 | "Her torch beam cut through" | | 11 | "Sneakers, soaked through." | | 12 | "They led down." | | 13 | "A set of broken steps," | | 14 | "The air here tasted stale," | | 15 | "She hesitated only a second." | | 16 | "The beam flickered." | | 17 | "She tapped it." | | 18 | "The steps spiraled into blackness." | | 19 | "The sound of dripping water" |
| | ratio | 0.7 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 100 | | matches | (empty) | | ratio | 0 | |
| 73.17% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 4 | | matches | | 0 | "Only that he’d left The Raven’s Nest too fast after seeing her walk in, that he hadn’t belonged there the way the regulars did—the ones who knew how to drink in…" | | 1 | "A woman with eyes like polished jet offered her a cracked mirror that whispered when touched." | | 2 | "She turned—too fast—and found herself staring into the face of a boy who had no reflection in the polished brass bowl beside him." | | 3 | "He bolted—ducking between two stalls, knocking over a basket of dried moths that burst into blue flame when they hit the ground." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |