| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 57 | | tagDensity | 0.228 | | leniency | 0.456 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.79% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1558 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 51.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1558 | | totalAiIsms | 15 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | word | "down her spine" | | count | 1 |
| | 9 | |
| | highlights | | 0 | "eyebrow" | | 1 | "flickered" | | 2 | "pulse" | | 3 | "simmering" | | 4 | "familiar" | | 5 | "unreadable" | | 6 | "could feel" | | 7 | "electric" | | 8 | "down her spine" | | 9 | "pounding" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "hung in the air" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "hung in the air" | | 1 | "sent a shiver down" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 125 | | matches | (empty) | |
| 85.71% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 2 | | narrationSentences | 125 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 168 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 20 | | totalWords | 1545 | | ratio | 0.013 | | matches | | 0 | "I know what you are. I know what you’ve done. And I’m going to make sure everyone else does too." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 0 | | matches | (empty) | |
| 95.36% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1281 | | uniqueNames | 9 | | maxNameDensity | 1.09 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 14 | | Lucien | 13 | | Moreau | 1 | | Eva | 5 | | Ptolemy | 3 | | Evan | 3 | | Marseille | 1 | | Close | 1 | | Ellis | 1 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Ptolemy" | | 5 | "Evan" | | 6 | "Ellis" |
| | places | | | globalScore | 0.954 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 79 | | glossingSentenceCount | 1 | | matches | | 0 | "something like burnt sugar, curled into the" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1545 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 168 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 76 | | mean | 20.33 | | std | 18.21 | | cv | 0.896 | | sampleLengths | | 0 | 68 | | 1 | 16 | | 2 | 42 | | 3 | 54 | | 4 | 56 | | 5 | 18 | | 6 | 22 | | 7 | 21 | | 8 | 18 | | 9 | 11 | | 10 | 57 | | 11 | 7 | | 12 | 2 | | 13 | 7 | | 14 | 3 | | 15 | 1 | | 16 | 14 | | 17 | 36 | | 18 | 15 | | 19 | 79 | | 20 | 34 | | 21 | 20 | | 22 | 31 | | 23 | 14 | | 24 | 6 | | 25 | 2 | | 26 | 12 | | 27 | 67 | | 28 | 7 | | 29 | 8 | | 30 | 5 | | 31 | 49 | | 32 | 60 | | 33 | 12 | | 34 | 14 | | 35 | 7 | | 36 | 40 | | 37 | 13 | | 38 | 17 | | 39 | 30 | | 40 | 11 | | 41 | 12 | | 42 | 29 | | 43 | 44 | | 44 | 5 | | 45 | 6 | | 46 | 12 | | 47 | 47 | | 48 | 2 | | 49 | 8 |
| |
| 94.04% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 125 | | matches | | 0 | "been handled" | | 1 | "were made" | | 2 | "was spilled" | | 3 | "was gone" | | 4 | "was gone" |
| |
| 12.58% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 249 | | matches | | 0 | "was memorizing" | | 1 | "was watching" | | 2 | "weren’t saying" | | 3 | "was trying" | | 4 | "was trying" | | 5 | "was, standing" | | 6 | "was waiting" |
| |
| 23.81% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 168 | | ratio | 0.042 | | 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, like he was memorizing the way she looked in an old band T-shirt and leggings, her black hair still damp from the shower." | | 2 | "The flat was a mess—books stacked on every surface, scrolls unrolled across the coffee table, Ptolemy’s fur clinging to the armchair—but Lucien didn’t seem to notice." | | 3 | "Not just any paper—parchment, yellowed at the edges, the ink smudged like it had been handled too many times." | | 4 | "Instead, she took the paper, her skin brushing against his for the briefest second—enough to feel the heat of him, the way it always seemed to radiate just a little too much, like his half-demon blood was always simmering beneath the surface." | | 5 | "The handwriting was familiar—Evan’s, looping and precise, the kind of script that looked elegant until you realized it was all a mask for something uglier." | | 6 | "Something flickered in his eyes—relief, maybe, or something darker." |
| |
| 94.43% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1294 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 60 | | adverbRatio | 0.04636785162287481 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.0030911901081916537 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 168 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 168 | | mean | 9.2 | | std | 7.66 | | cv | 0.833 | | sampleLengths | | 0 | 35 | | 1 | 18 | | 2 | 15 | | 3 | 9 | | 4 | 7 | | 5 | 33 | | 6 | 9 | | 7 | 18 | | 8 | 30 | | 9 | 6 | | 10 | 20 | | 11 | 26 | | 12 | 7 | | 13 | 3 | | 14 | 15 | | 15 | 3 | | 16 | 17 | | 17 | 5 | | 18 | 3 | | 19 | 17 | | 20 | 1 | | 21 | 3 | | 22 | 4 | | 23 | 3 | | 24 | 8 | | 25 | 11 | | 26 | 18 | | 27 | 14 | | 28 | 19 | | 29 | 6 | | 30 | 4 | | 31 | 3 | | 32 | 2 | | 33 | 7 | | 34 | 3 | | 35 | 1 | | 36 | 14 | | 37 | 10 | | 38 | 8 | | 39 | 5 | | 40 | 13 | | 41 | 11 | | 42 | 4 | | 43 | 3 | | 44 | 9 | | 45 | 11 | | 46 | 7 | | 47 | 7 | | 48 | 42 | | 49 | 3 |
| |
| 43.85% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.30952380952380953 | | totalSentences | 168 | | uniqueOpeners | 52 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 112 | | matches | | 0 | "Then he reached into his" | | 1 | "Instead, she took the paper," | | 2 | "Just watched her, his gaze" | | 3 | "Just stood there, watching her," | | 4 | "Then he turned, his coat" | | 5 | "Then he was gone, the" |
| | ratio | 0.054 | |
| 73.57% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 112 | | matches | | 0 | "She stepped aside anyway, because" | | 1 | "He sauntered inside, his cane" | | 2 | "He never did." | | 3 | "He turned, his coat brushing" | | 4 | "Her pulse jumped." | | 5 | "She crossed her arms, mostly" | | 6 | "He exhaled through his nose," | | 7 | "He held it out to" | | 8 | "he said, stepping closer, the" | | 9 | "She hadn’t heard it spoken" | | 10 | "She wanted to snatch the" | | 11 | "She unfolded it." | | 12 | "*I know what you are." | | 13 | "I know what you’ve done." | | 14 | "She’d been careful." | | 15 | "She looked up." | | 16 | "He stepped closer, close enough" | | 17 | "She should have stepped back." | | 18 | "She stood there, the parchment" | | 19 | "she asked, her voice quieter" |
| | ratio | 0.366 | |
| 71.61% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 112 | | 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 | "The words came out sharper" | | 6 | "She stepped aside anyway, because" | | 7 | "He sauntered inside, his cane" | | 8 | "The flat was a mess—books" | | 9 | "He never did." | | 10 | "Rory shut the door harder" | | 11 | "He turned, his coat brushing" | | 12 | "Her pulse jumped." | | 13 | "She crossed her arms, mostly" | | 14 | "Lucien’s mouth quirked." | | 15 | "He exhaled through his nose," | | 16 | "He held it out to" | | 17 | "Rory didn’t take it." | | 18 | "he said, stepping closer, the" | | 19 | "The name hit her like" |
| | ratio | 0.777 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 112 | | matches | (empty) | | ratio | 0 | |
| 83.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 4 | | matches | | 0 | "He sauntered inside, his cane tapping against the floorboards, the ivory handle catching the dim light from the single lamp." | | 1 | "Instead, she took the paper, her skin brushing against his for the briefest second—enough to feel the heat of him, the way it always seemed to radiate just a li…" | | 2 | "The handwriting was familiar—Evan’s, looping and precise, the kind of script that looked elegant until you realized it was all a mask for something uglier." | | 3 | "Then he was gone, the door clicking shut behind him, leaving Rory standing in the middle of Eva’s flat, her heart pounding, her skin still burning where his had…" |
| |
| 48.08% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 2 | | matches | | 0 | "she asked, her voice quieter than she intended" | | 1 | "he said, his voice low, rough" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 2 | | fancyTags | | 0 | "she repeated (repeat)" | | 1 | "she added (add)" |
| | dialogueSentences | 57 | | tagDensity | 0.158 | | leniency | 0.316 | | rawRatio | 0.222 | | effectiveRatio | 0.07 | |