| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "He stepped back [back]" |
| | dialogueSentences | 69 | | tagDensity | 0.159 | | leniency | 0.319 | | rawRatio | 0.182 | | effectiveRatio | 0.058 | |
| 76.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1276 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "lightly" | | 1 | "suddenly" | | 2 | "slightly" | | 3 | "really" | | 4 | "softly" |
| |
| 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) | |
| 68.65% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1276 | | totalAiIsms | 8 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "calloused fingers" | | count | 1 |
| | 4 | | | 5 | | | 6 | |
| | highlights | | 0 | "eyebrow" | | 1 | "flickered" | | 2 | "silence" | | 3 | "calloused fingers" | | 4 | "tracing" | | 5 | "pulse" | | 6 | "stomach" |
| |
| 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 | 82 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 82 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 137 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1258 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 39.99% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 44 | | wordCount | 909 | | uniqueNames | 7 | | maxNameDensity | 2.2 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 20 | | Lucien | 18 | | Moreau | 1 | | Eva | 1 | | Cardiff | 1 | | University | 1 | | Ptolemy | 2 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Ptolemy" |
| | places | | | globalScore | 0.4 | | windowScore | 0.5 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 61 | | glossingSentenceCount | 4 | | matches | | 0 | "something like burnt sugar, curled into the" | | 1 | "something between a growl and a groan—and then" | | 2 | "something like regret" | | 3 | "felt like a chasm" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1258 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 137 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 65 | | mean | 19.35 | | std | 18.84 | | cv | 0.973 | | sampleLengths | | 0 | 68 | | 1 | 16 | | 2 | 60 | | 3 | 48 | | 4 | 41 | | 5 | 49 | | 6 | 13 | | 7 | 26 | | 8 | 11 | | 9 | 46 | | 10 | 19 | | 11 | 3 | | 12 | 4 | | 13 | 21 | | 14 | 46 | | 15 | 13 | | 16 | 17 | | 17 | 17 | | 18 | 17 | | 19 | 22 | | 20 | 12 | | 21 | 2 | | 22 | 3 | | 23 | 13 | | 24 | 82 | | 25 | 58 | | 26 | 32 | | 27 | 11 | | 28 | 18 | | 29 | 4 | | 30 | 24 | | 31 | 20 | | 32 | 9 | | 33 | 5 | | 34 | 1 | | 35 | 1 | | 36 | 7 | | 37 | 48 | | 38 | 2 | | 39 | 6 | | 40 | 4 | | 41 | 32 | | 42 | 22 | | 43 | 1 | | 44 | 36 | | 45 | 8 | | 46 | 4 | | 47 | 12 | | 48 | 1 | | 49 | 2 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 82 | | matches | (empty) | |
| 83.72% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 172 | | matches | | 0 | "was slamming" | | 1 | "was fighting" | | 2 | "was being" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 137 | | ratio | 0.066 | | matches | | 0 | "The door swung open before Rory could turn the last deadbolt, and there he stood—Lucien Moreau, leaning against the frame like he owned the place, one platinum eyebrow arched in that infuriating way of his." | | 1 | "Lucien’s heterochromatic eyes—amber and black—flickered over her, slow and deliberate, from the messy bun holding her black hair in place to the oversized Cardiff University hoodie she’d stolen from her ex and never returned." | | 2 | "The flat was exactly as she’d left it—books stacked on every available surface, scrolls unrolled across the coffee table, Ptolemy’s fur clinging to the armchair." | | 3 | "Wanted to, but— “Then why?”" | | 4 | "A sound escaped him—something between a growl and a groan—and then his hand was in her hair, his mouth crashing down on hers." | | 5 | "Six months of silence, of missing him, of wondering—it all poured out of her in that kiss." | | 6 | "She’d forgotten how good he felt—how right." | | 7 | "Rory crossed her arms, suddenly aware of how exposed she was—how exposed she’d let herself be." | | 8 | "Rory studied him—the way his suit jacket strained slightly over his shoulders, the way his fingers tightened around his cane, the way his eyes kept darting to her mouth like he was fighting the urge to kiss her again." |
| |
| 97.95% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 921 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 39 | | adverbRatio | 0.04234527687296417 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.013029315960912053 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 137 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 137 | | mean | 9.18 | | std | 7.38 | | cv | 0.804 | | sampleLengths | | 0 | 35 | | 1 | 18 | | 2 | 15 | | 3 | 9 | | 4 | 7 | | 5 | 34 | | 6 | 17 | | 7 | 9 | | 8 | 18 | | 9 | 28 | | 10 | 2 | | 11 | 14 | | 12 | 13 | | 13 | 11 | | 14 | 3 | | 15 | 15 | | 16 | 25 | | 17 | 4 | | 18 | 5 | | 19 | 9 | | 20 | 4 | | 21 | 9 | | 22 | 17 | | 23 | 7 | | 24 | 4 | | 25 | 29 | | 26 | 17 | | 27 | 13 | | 28 | 6 | | 29 | 3 | | 30 | 4 | | 31 | 9 | | 32 | 12 | | 33 | 7 | | 34 | 21 | | 35 | 11 | | 36 | 7 | | 37 | 3 | | 38 | 5 | | 39 | 5 | | 40 | 9 | | 41 | 8 | | 42 | 8 | | 43 | 3 | | 44 | 6 | | 45 | 6 | | 46 | 11 | | 47 | 19 | | 48 | 3 | | 49 | 6 |
| |
| 49.39% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.31386861313868614 | | totalSentences | 137 | | uniqueOpeners | 43 | |
| 42.74% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 78 | | matches | | 0 | "Then, just as suddenly as" |
| | ratio | 0.013 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 78 | | matches | | 0 | "His gaze lingered on the" | | 1 | "She stepped aside just enough" | | 2 | "he observed, nodding at the" | | 3 | "She crossed her arms." | | 4 | "His jaw tightened, just for" | | 5 | "She stepped closer, close enough" | | 6 | "he said quietly" | | 7 | "She wanted to believe him." | | 8 | "His voice was rough" | | 9 | "She stepped closer, close enough" | | 10 | "His kiss was heat and" | | 11 | "His hands slid under her" | | 12 | "She’d forgotten how good he" | | 13 | "His breath came in ragged" | | 14 | "he said, but his voice" | | 15 | "He stepped back, retrieving his" | | 16 | "She exhaled, long and slow." | | 17 | "She took a sip, buying" | | 18 | "He reached into his jacket," | | 19 | "She set the mug down." |
| | ratio | 0.282 | |
| 30.51% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 78 | | matches | | 0 | "The door swung open before" | | 1 | "The scent of bergamot and" | | 2 | "Ptolemy, Eva’s tabby, hissed from" | | 3 | "Rory’s fingers tightened around the" | | 4 | "Lucien’s heterochromatic eyes—amber and black—flickered" | | 5 | "His gaze lingered on the" | | 6 | "The words came out sharper" | | 7 | "She stepped aside just enough" | | 8 | "Lucien straightened, smoothing a hand" | | 9 | "The ivory handle of his" | | 10 | "he observed, nodding at the" | | 11 | "Rory shut the door harder" | | 12 | "The flat was exactly as" | | 13 | "She crossed her arms." | | 14 | "Lucien turned, his cane tapping" | | 15 | "Rory laughed, but there was" | | 16 | "His jaw tightened, just for" | | 17 | "She stepped closer, close enough" | | 18 | "Lucien exhaled through his nose," | | 19 | "Rory’s hands curled into fists" |
| | ratio | 0.859 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 78 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 1 | | matches | | 0 | "Lucien’s cane clattered to the floor as he backed her against the wall, his body pressing hers into the peeling floral wallpaper." |
| |
| 34.09% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 2 | | matches | | 0 | "Rory shut, the latch clicking like a gunshot" | | 1 | "he said, but his voice was unsteady" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 69 | | tagDensity | 0.058 | | leniency | 0.116 | | rawRatio | 0.25 | | effectiveRatio | 0.029 | |