| 75.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 3 | | adverbTags | | 0 | "His accent curled around [around]" | | 1 | "He stepped further [further]" | | 2 | "she said finally [finally]" |
| | dialogueSentences | 48 | | tagDensity | 0.396 | | leniency | 0.792 | | rawRatio | 0.158 | | effectiveRatio | 0.125 | |
| 87.61% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1614 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "really" | | 1 | "carefully" | | 2 | "perfectly" |
| |
| 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) | |
| 47.34% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1614 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "weight" | | 1 | "effortless" | | 2 | "traced" | | 3 | "wavered" | | 4 | "scanning" | | 5 | "chaotic" | | 6 | "gloom" | | 7 | "silence" | | 8 | "stomach" | | 9 | "flicked" | | 10 | "constructed" | | 11 | "facade" | | 12 | "perfect" |
| |
| 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 | 85 | | matches | (empty) | |
| 92.44% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 85 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 114 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 16 | | totalWords | 1603 | | ratio | 0.01 | | matches | | 0 | "Second Cat Dead in Brick Lane Curio Shop" | | 1 | "Some doors should remain unopened" | | 2 | "petite" | | 3 | "ma chérie" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 26 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 54 | | wordCount | 1263 | | uniqueNames | 24 | | maxNameDensity | 0.87 | | worstName | "Aurora" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | Ptolemy | 5 | | Carter | 2 | | Avaros | 1 | | Notting | 1 | | Hill | 1 | | Danger | 1 | | Lucien | 7 | | Books | 1 | | Eva | 4 | | Malphora | 1 | | Evan | 2 | | Aurora | 11 | | Cat | 1 | | Dead | 1 | | Brick | 1 | | Lane | 1 | | Curio | 1 | | Thomas | 1 | | Greaves | 1 | | Marianne | 6 | | Hughes | 1 | | Couldn | 1 | | Cardiff | 1 | | London | 1 |
| | persons | | 0 | "Ptolemy" | | 1 | "Carter" | | 2 | "Lucien" | | 3 | "Books" | | 4 | "Eva" | | 5 | "Evan" | | 6 | "Aurora" | | 7 | "Thomas" | | 8 | "Greaves" | | 9 | "Marianne" | | 10 | "Hughes" |
| | places | | 0 | "Avaros" | | 1 | "Notting" | | 2 | "Hill" | | 3 | "Danger" | | 4 | "Dead" | | 5 | "Brick" | | 6 | "Lane" | | 7 | "Curio" | | 8 | "Cardiff" | | 9 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like a punch to the gut" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1603 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 114 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 50 | | mean | 32.06 | | std | 21.82 | | cv | 0.681 | | sampleLengths | | 0 | 58 | | 1 | 1 | | 2 | 98 | | 3 | 4 | | 4 | 41 | | 5 | 30 | | 6 | 43 | | 7 | 13 | | 8 | 24 | | 9 | 60 | | 10 | 57 | | 11 | 30 | | 12 | 5 | | 13 | 28 | | 14 | 76 | | 15 | 2 | | 16 | 35 | | 17 | 13 | | 18 | 9 | | 19 | 39 | | 20 | 8 | | 21 | 54 | | 22 | 60 | | 23 | 5 | | 24 | 27 | | 25 | 46 | | 26 | 14 | | 27 | 61 | | 28 | 62 | | 29 | 6 | | 30 | 52 | | 31 | 9 | | 32 | 55 | | 33 | 13 | | 34 | 52 | | 35 | 17 | | 36 | 32 | | 37 | 25 | | 38 | 42 | | 39 | 13 | | 40 | 49 | | 41 | 11 | | 42 | 34 | | 43 | 17 | | 44 | 29 | | 45 | 38 | | 46 | 26 | | 47 | 37 | | 48 | 40 | | 49 | 3 |
| |
| 92.88% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 85 | | matches | | 0 | "were stacked" | | 1 | "being accused" | | 2 | "been seventeen" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 221 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 114 | | ratio | 0.114 | | matches | | 0 | "Three deadbolts had swung open with effortless precision—she’d recognised that particular brand of supernatural engineering from their last conversation, from when he’d pulled her into the same conversation with that demon from Avaros who’d tried to sell her father’s law books to a cult in Notting Hill." | | 1 | "Aurora’s gaze dropped to the floorboards—scuff marks suggested someone had been here recently, someone who moved like a shadow." | | 2 | "Now, standing in this cramped flat filled with forgotten knowledge, she was being accused again—this time by a man who’d once held her hand through a demon summoning gone wrong." | | 3 | "When they’d first met, she’d been Malphora—the alias she used when she needed to disappear." | | 4 | "Probably the blade from his cane—though she’d never seen him draw it without warning." | | 5 | "The cat’s green eyes held a knowledge Aurora didn’t understand—how much of this place was real, and how much was illusion?" | | 6 | "She recognised three of them—occult signs she’d seen in Eva’s research, in the black books she’d helped organise, in the nightmares that had woken her since she’d first held a demon’s hand in her teenage years." | | 7 | "“I brought it up because she was right about you.” He removed his hand from his jacket sleeve, revealing a burn mark the shape of a crescent moon—and beneath it, fresh blood that hadn’t been there moments before." | | 8 | "The intruder moved like water, fluid and deadly—silver hair whipping across the floor, eyes that glowed faintly gold in the gloom." | | 9 | "In their hand, something glinted—something that caught the candlelight and threw it back in shards." | | 10 | "The woman—was she a witch?" | | 11 | "A demon?—laughed, and the sound was all wrong." | | 12 | "Because running had never worked before, had never stopped the nightmares, had never prevented the way men like Evan had looked at her—like she was something to be owned, something to be broken." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1278 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small crescent-shaped scar" |
| | adverbCount | 38 | | adverbRatio | 0.0297339593114241 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.010172143974960876 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 114 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 114 | | mean | 14.06 | | std | 9.86 | | cv | 0.701 | | sampleLengths | | 0 | 31 | | 1 | 27 | | 2 | 1 | | 3 | 30 | | 4 | 21 | | 5 | 47 | | 6 | 4 | | 7 | 22 | | 8 | 1 | | 9 | 1 | | 10 | 1 | | 11 | 16 | | 12 | 9 | | 13 | 19 | | 14 | 2 | | 15 | 22 | | 16 | 17 | | 17 | 4 | | 18 | 13 | | 19 | 21 | | 20 | 3 | | 21 | 16 | | 22 | 26 | | 23 | 18 | | 24 | 9 | | 25 | 17 | | 26 | 23 | | 27 | 8 | | 28 | 30 | | 29 | 5 | | 30 | 5 | | 31 | 23 | | 32 | 15 | | 33 | 15 | | 34 | 23 | | 35 | 23 | | 36 | 2 | | 37 | 3 | | 38 | 18 | | 39 | 14 | | 40 | 13 | | 41 | 8 | | 42 | 1 | | 43 | 18 | | 44 | 21 | | 45 | 5 | | 46 | 3 | | 47 | 20 | | 48 | 13 | | 49 | 21 |
| |
| 75.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.47368421052631576 | | totalSentences | 114 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 78 | | matches | | 0 | "Probably the blade from his" | | 1 | "Too bright, too sharp." | | 2 | "Instead, she ran toward Marianne," |
| | ratio | 0.038 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 23 | | totalSentences | 78 | | matches | | 0 | "His accent curled around the" | | 1 | "she said, closing the door" | | 2 | "He stepped further into the" | | 3 | "She’d left Eva’s place three" | | 4 | "His laugh was low, dangerous." | | 5 | "She flinched at the nickname," | | 6 | "She looked down." | | 7 | "he said, and she almost" | | 8 | "she said finally" | | 9 | "He pulled a folded newspaper" | | 10 | "She recognised three of them—occult" | | 11 | "His voice dropped to nothing" | | 12 | "Her breath caught." | | 13 | "She couldn’t look at him" | | 14 | "He removed his hand from" | | 15 | "He knew about the scar," | | 16 | "He stepped closer, close enough" | | 17 | "They were beautiful in a" | | 18 | "they said, and the name" | | 19 | "he said, and his voice" |
| | ratio | 0.295 | |
| 49.74% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 78 | | matches | | 0 | "The door burst open with" | | 1 | "Aurora Carter stood frozen in" | | 2 | "The word slipped out like" | | 3 | "The ivory handle of his" | | 4 | "His accent curled around the" | | 5 | "Ptolemy had returned, crouched suspiciously" | | 6 | "Aurora’s gaze dropped to the" | | 7 | "she said, closing the door" | | 8 | "The contrast between his violent" | | 9 | "The casualness of it, the" | | 10 | "He stepped further into the" | | 11 | "Books were stacked in precarious" | | 12 | "Aurora’s fingers curled around the" | | 13 | "She’d left Eva’s place three" | | 14 | "Eva had accused her of" | | 15 | "Aurora hadn’t known whether to" | | 16 | "His laugh was low, dangerous." | | 17 | "She flinched at the nickname," | | 18 | "Lucien had found her sleeping" | | 19 | "She looked down." |
| | ratio | 0.821 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 78 | | matches | | 0 | "Now, standing in this cramped" | | 1 | "Before she could respond, the" | | 2 | "Because running had never worked" |
| | ratio | 0.038 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 14 | | matches | | 0 | "The door burst open with a crash that rattled the dusty bookshelves, and Ptolemy the tabby launched himself from his perch on the mantelpiece, landing in a spra…" | | 1 | "The word slipped out like a prayer and a curse, and he framed her in the doorway, his platinum hair catching the late afternoon light that filtered through grim…" | | 2 | "Three deadbolts had swung open with effortless precision—she’d recognised that particular brand of supernatural engineering from their last conversation, from w…" | | 3 | "Now, standing in this cramped flat filled with forgotten knowledge, she was being accused again—this time by a man who’d once held her hand through a demon summ…" | | 4 | "She recognised three of them—occult signs she’d seen in Eva’s research, in the black books she’d helped organise, in the nightmares that had woken her since she…" | | 5 | "About the nightmares that had followed her from Cardiff to London, from the bar above which she now lived to this flat where books whispered secrets she wasn’t …" | | 6 | "The intruder moved like water, fluid and deadly—silver hair whipping across the floor, eyes that glowed faintly gold in the gloom." | | 7 | "The silver-haired figure pushed themselves up, revealing features that made Aurora’s blood turn to ice." | | 8 | "They were beautiful in a way that hurt, with cheekbones sharp enough to cut and lips painted the colour of fresh blood." | | 9 | "In their hand, something glinted—something that caught the candlelight and threw it back in shards." | | 10 | "Marianne’s smile widened, revealing teeth that were too straight, too perfect." | | 11 | "Ptolemy appeared at the top of the stairs, his fur standing on end, his eyes reflecting the flames like twin stars." | | 12 | "Lucien’s blade found its mark in a book that exploded into flame." | | 13 | "Instead, she ran toward Marianne, toward the woman who knew her mother’s secrets, who knew the shape of her scars and the colour of her blood." |
| |
| 46.05% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 3 | | matches | | 0 | "He stepped further, eyes scanning the chaotic interior" | | 1 | "they said, and the name was a knife to the heart" | | 2 | "he said, and her name was a lifeline thrown across a chasm" |
| |
| 66.67% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 4 | | fancyTags | | 0 | "she whispered (whisper)" | | 1 | "Aurora breathed (breathe)" | | 2 | "she breathed (breathe)" | | 3 | "Aurora interrupted (interrupt)" |
| | dialogueSentences | 48 | | tagDensity | 0.208 | | leniency | 0.417 | | rawRatio | 0.4 | | effectiveRatio | 0.167 | |