| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said quietly [quietly]" | | 1 | "he said finally [finally]" |
| | dialogueSentences | 72 | | tagDensity | 0.319 | | leniency | 0.639 | | rawRatio | 0.087 | | effectiveRatio | 0.056 | |
| 91.91% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1855 | | totalAiIsmAdverbs | 3 | | 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.13% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1855 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "silence" | | 1 | "familiar" | | 2 | "pulse" | | 3 | "otherworldly" | | 4 | "traced" |
| |
| 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 | 95 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 95 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 145 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1823 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 12 | | wordCount | 1180 | | uniqueNames | 6 | | maxNameDensity | 0.34 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Eva" | | discoveredNames | | Eva | 2 | | Evan | 2 | | Ptolemy | 1 | | Severn | 1 | | French | 2 | | Lucien | 4 |
| | persons | | 0 | "Eva" | | 1 | "Evan" | | 2 | "Ptolemy" | | 3 | "Lucien" |
| | places | (empty) | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 69 | | glossingSentenceCount | 1 | | matches | | 0 | "quite fit, and the radiator made a noise like a dying animal every twenty minutes" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1823 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 145 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 75 | | mean | 24.31 | | std | 22.71 | | cv | 0.934 | | sampleLengths | | 0 | 46 | | 1 | 40 | | 2 | 62 | | 3 | 1 | | 4 | 29 | | 5 | 5 | | 6 | 4 | | 7 | 35 | | 8 | 32 | | 9 | 38 | | 10 | 21 | | 11 | 2 | | 12 | 2 | | 13 | 94 | | 14 | 10 | | 15 | 6 | | 16 | 1 | | 17 | 1 | | 18 | 37 | | 19 | 6 | | 20 | 11 | | 21 | 48 | | 22 | 4 | | 23 | 28 | | 24 | 5 | | 25 | 1 | | 26 | 46 | | 27 | 70 | | 28 | 7 | | 29 | 54 | | 30 | 14 | | 31 | 35 | | 32 | 20 | | 33 | 51 | | 34 | 4 | | 35 | 3 | | 36 | 18 | | 37 | 5 | | 38 | 19 | | 39 | 78 | | 40 | 6 | | 41 | 12 | | 42 | 48 | | 43 | 8 | | 44 | 1 | | 45 | 61 | | 46 | 13 | | 47 | 13 | | 48 | 32 | | 49 | 13 |
| |
| 97.88% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 95 | | matches | | 0 | "get complicated" | | 1 | "was left" |
| |
| 71.79% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 208 | | matches | | 0 | "were having" | | 1 | "was looking" | | 2 | "was setting" | | 3 | "was watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 21 | | semicolonCount | 0 | | flaggedSentences | 21 | | totalSentences | 145 | | ratio | 0.145 | | matches | | 0 | "The knock came at half past eleven—a sound so unexpected in the quiet of the flat above Silas' bar that Rory froze with her coffee cup halfway to her lips." | | 1 | "The half-light from the stairwell caught his face—the sharp cheekbones, the pale hair slicked back from his forehead, those impossible eyes: one amber, one black as a sealed door." | | 2 | "Behind her, she heard Ptolemy jump down from the kitchen counter—his usual soundtrack when strangers appeared." | | 3 | "\"I was in the neighborhood,\" he said, and the corner of his mouth twitched—his old, infuriating half-smile, the one that used to make her forget whatever argument they were having." | | 4 | "She knew he was looking at the scar—the crescent-shaped mark from when she was nine, when she'd slipped on the wet rocks by the Severn and nearly drowned before her father fished her out." | | 5 | "\"The Avaros situation,\" he continued, his voice flat, practiced—like he'd rehearsed this, like he'd chosen each word to minimize the damage." | | 6 | "He moved past her, close enough that she caught the scent of his cologne—something dark and woodsy, expensive, probably French." | | 7 | "The flat was small—just one bedroom, a kitchenette, a bathroom with a door that didn't lock properly." | | 8 | "He was setting his cane against the wall by the door, removing his hat, running a hand through his hair—the platinum strands falling loose from their careful arrangement." | | 9 | "This was familiar—this easy back-and-forth, the way they'd always slipped into conversation like water finding its level." | | 10 | "\"No thank you.\" He remained standing as she poured herself a cup, his eyes moving over the space—the stacks of books on every surface, the takeaway menus pinned to the wall, the small altar she'd made on the windowsill with a candle and a photo of her mother." | | 11 | "Then he moved toward her, stopping just out of arm's reach—close enough that she could see the fine lines at the corners of his eyes, the slight paleness of his complexion that hinted at his heritage." | | 12 | "She laughed—a sharp, unkind sound." | | 13 | "When he cared, he cared completely, with everything he had—and when he left, he left completely, and she was left to pick up the pieces of a heart she'd never meant to give him in the first place." | | 14 | "Something shifted in his face—the careful mask slipping, just for a moment, revealing something rawer beneath." | | 15 | "Up close, he was all angles and edges—the sharp cut of his jaw, the cool efficiency of his movements, the way he held himself like a man constantly ready for battle." | | 16 | "She watched his throat work, watched him struggle for words—a first, for a man who spoke four languages fluently and could talk his way out of anything." | | 17 | "His hand found hers—cool fingers, gentle, the barest trace of something otherworldly in his touch." | | 18 | "He was watching her with that impossible gaze—amber and black, like dawn and midnight wrapped into a single look." | | 19 | "She thought about Lucien—his lies, his secrets, the way he saw her even when she didn't want to be seen." | | 20 | "He smiled—a real smile, full and unguarded, the kind she'd only seen a handful of times in all the years she'd known him." |
| |
| 97.27% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 603 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 26 | | adverbRatio | 0.04311774461028192 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.013266998341625208 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 145 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 145 | | mean | 12.57 | | std | 9.98 | | cv | 0.794 | | sampleLengths | | 0 | 30 | | 1 | 4 | | 2 | 12 | | 3 | 26 | | 4 | 9 | | 5 | 5 | | 6 | 22 | | 7 | 29 | | 8 | 6 | | 9 | 5 | | 10 | 1 | | 11 | 16 | | 12 | 13 | | 13 | 5 | | 14 | 4 | | 15 | 2 | | 16 | 3 | | 17 | 14 | | 18 | 16 | | 19 | 21 | | 20 | 11 | | 21 | 30 | | 22 | 8 | | 23 | 21 | | 24 | 2 | | 25 | 2 | | 26 | 12 | | 27 | 34 | | 28 | 8 | | 29 | 3 | | 30 | 37 | | 31 | 5 | | 32 | 5 | | 33 | 6 | | 34 | 1 | | 35 | 1 | | 36 | 13 | | 37 | 24 | | 38 | 6 | | 39 | 8 | | 40 | 3 | | 41 | 21 | | 42 | 27 | | 43 | 4 | | 44 | 14 | | 45 | 14 | | 46 | 5 | | 47 | 1 | | 48 | 9 | | 49 | 12 |
| |
| 41.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.32413793103448274 | | totalSentences | 145 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 89 | | matches | | 0 | "Of course it was French." | | 1 | "More like the man she'd" | | 2 | "Then he moved toward her," |
| | ratio | 0.034 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 57 | | totalSentences | 89 | | matches | | 0 | "She set the cup down" | | 1 | "She pulled the door open." | | 2 | "He looked older than she" | | 3 | "Her name in his voice" | | 4 | "She made herself lean against" | | 5 | "He didn't elaborate." | | 6 | "She heard the edge in" | | 7 | "he said, and the corner" | | 8 | "His gaze dropped to her" | | 9 | "She knew he was looking" | | 10 | "She never told him how" | | 11 | "He never asked." | | 12 | "He'd noticed everything, that night." | | 13 | "She'd hated him for it." | | 14 | "She heard her voice waver" | | 15 | "She went quiet." | | 16 | "he continued, his voice flat," | | 17 | "He said it gently, which" | | 18 | "She stepped back from the" | | 19 | "He moved past her, close" |
| | ratio | 0.64 | |
| 38.65% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 89 | | matches | | 0 | "The knock came at half" | | 1 | "Nobody visited her here." | | 2 | "Nobody knew where she lived," | | 3 | "She set the cup down" | | 4 | "The metallic click seemed too" | | 5 | "She pulled the door open." | | 6 | "Lucien stood in the hallway," | | 7 | "The half-light from the stairwell" | | 8 | "He looked older than she" | | 9 | "Her name in his voice" | | 10 | "She made herself lean against" | | 11 | "He didn't elaborate." | | 12 | "Rain continued its steady percussion" | | 13 | "She heard the edge in" | | 14 | "he said, and the corner" | | 15 | "His gaze dropped to her" | | 16 | "She knew he was looking" | | 17 | "She never told him how" | | 18 | "He never asked." | | 19 | "He'd noticed everything, that night." |
| | ratio | 0.843 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 89 | | matches | (empty) | | ratio | 0 | |
| 35.71% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 6 | | matches | | 0 | "He was setting his cane against the wall by the door, removing his hat, running a hand through his hair—the platinum strands falling loose from their careful ar…" | | 1 | "Then he moved toward her, stopping just out of arm's reach—close enough that she could see the fine lines at the corners of his eyes, the slight paleness of his…" | | 2 | "Half something else entirely, something that made the light bend wrong around him sometimes, something that made his black eye swirl with colors that human eyes…" | | 3 | "She watched his throat work, watched him struggle for words—a first, for a man who spoke four languages fluently and could talk his way out of anything." | | 4 | "She thought about the years she'd spent learning to trust herself again after Evan, learning to stand on her own two feet in a city that had tried to swallow he…" | | 5 | "He pulled her closer, and she let him, pressing her face against his chest, breathing in that familiar dark woodsy scent." |
| |
| 59.78% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 3 | | matches | | 0 | "He stopped, jaw tightening" | | 1 | "she asked, not looking at him" | | 2 | "She stopped, the old wound still tender after all these years" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 3 | | fancyTags | | 0 | "he continued (continue)" | | 1 | "Lucien observed (observe)" | | 2 | "he continued (continue)" |
| | dialogueSentences | 72 | | tagDensity | 0.153 | | leniency | 0.306 | | rawRatio | 0.273 | | effectiveRatio | 0.083 | |