| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 69 | | tagDensity | 0.145 | | leniency | 0.29 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 61.73% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1437 | | totalAiIsmAdverbs | 11 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | adverb | "barely above a whisper" | | count | 1 |
|
| | highlights | | 0 | "perfectly" | | 1 | "really" | | 2 | "sharply" | | 3 | "slightly" | | 4 | "softly" | | 5 | "suddenly" | | 6 | "barely above a whisper" |
| |
| 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.81% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1437 | | totalAiIsms | 15 | | found | | 0 | | | 1 | | | 2 | | word | "down her spine" | | count | 1 |
| | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | |
| | highlights | | 0 | "unreadable" | | 1 | "pulse" | | 2 | "down her spine" | | 3 | "flickered" | | 4 | "silence" | | 5 | "charged" | | 6 | "unspoken" | | 7 | "could feel" | | 8 | "stomach" | | 9 | "trembled" | | 10 | "whisper" | | 11 | "raced" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "blood ran cold" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 118 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 118 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 170 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 9 | | markdownWords | 9 | | totalWords | 1429 | | ratio | 0.006 | | matches | | 0 | "no" | | 1 | "real" | | 2 | "was" | | 3 | "Aurora." | | 4 | "you" | | 5 | "everything" | | 6 | "feel" | | 7 | "afraid" | | 8 | "we’re" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 65 | | wordCount | 1115 | | uniqueNames | 10 | | maxNameDensity | 2.24 | | worstName | "Rory" | | maxWindowNameDensity | 5.5 | | worstWindowName | "Eva" | | discoveredNames | | Rory | 25 | | Golden | 1 | | Empress | 1 | | Eva | 17 | | Moreau | 2 | | Lucien | 14 | | November | 1 | | Like | 2 | | Brick | 1 | | Lane | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" |
| | places | | | globalScore | 0.379 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.7 | | wordCount | 1429 | | matches | | 0 | "Not close enough to touch, but close enough" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 170 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 75 | | mean | 19.05 | | std | 16.66 | | cv | 0.874 | | sampleLengths | | 0 | 54 | | 1 | 35 | | 2 | 9 | | 3 | 67 | | 4 | 12 | | 5 | 45 | | 6 | 21 | | 7 | 50 | | 8 | 14 | | 9 | 60 | | 10 | 61 | | 11 | 17 | | 12 | 16 | | 13 | 14 | | 14 | 49 | | 15 | 16 | | 16 | 1 | | 17 | 16 | | 18 | 43 | | 19 | 14 | | 20 | 7 | | 21 | 4 | | 22 | 3 | | 23 | 5 | | 24 | 15 | | 25 | 12 | | 26 | 17 | | 27 | 10 | | 28 | 6 | | 29 | 2 | | 30 | 2 | | 31 | 9 | | 32 | 7 | | 33 | 44 | | 34 | 5 | | 35 | 36 | | 36 | 1 | | 37 | 5 | | 38 | 11 | | 39 | 33 | | 40 | 7 | | 41 | 9 | | 42 | 12 | | 43 | 9 | | 44 | 59 | | 45 | 3 | | 46 | 34 | | 47 | 5 | | 48 | 20 | | 49 | 9 |
| |
| 96.34% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 118 | | matches | | 0 | "was slicked" | | 1 | "was curled" | | 2 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 205 | | matches | | 0 | "was actually standing" | | 1 | "was already growing" | | 2 | "was walking" |
| |
| 75.63% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 170 | | ratio | 0.024 | | matches | | 0 | "His heterochromatic eyes—one amber, one black—locked onto hers, unreadable." | | 1 | "The scent of his cologne—something dark and spiced—lingered in the air, and she told herself the shiver that ran down her spine was just the temperature change." | | 2 | "She pulled out the containers—sweet and sour pork, chow mein, a side of prawn crackers—and set them on the coffee table." | | 3 | "But the words died in her throat because she saw it then—the way his fingers tightened around his cane, the way his jaw was set, the way his black eye seemed to swallow the light." |
| |
| 87.64% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 351 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.05413105413105413 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.017094017094017096 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 170 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 170 | | mean | 8.41 | | std | 7.13 | | cv | 0.848 | | sampleLengths | | 0 | 16 | | 1 | 18 | | 2 | 20 | | 3 | 25 | | 4 | 10 | | 5 | 9 | | 6 | 26 | | 7 | 9 | | 8 | 32 | | 9 | 8 | | 10 | 4 | | 11 | 3 | | 12 | 6 | | 13 | 24 | | 14 | 10 | | 15 | 2 | | 16 | 10 | | 17 | 6 | | 18 | 5 | | 19 | 2 | | 20 | 30 | | 21 | 14 | | 22 | 4 | | 23 | 3 | | 24 | 11 | | 25 | 3 | | 26 | 19 | | 27 | 11 | | 28 | 27 | | 29 | 16 | | 30 | 21 | | 31 | 20 | | 32 | 4 | | 33 | 13 | | 34 | 4 | | 35 | 7 | | 36 | 9 | | 37 | 11 | | 38 | 3 | | 39 | 7 | | 40 | 22 | | 41 | 10 | | 42 | 10 | | 43 | 10 | | 44 | 6 | | 45 | 1 | | 46 | 4 | | 47 | 12 | | 48 | 3 | | 49 | 24 |
| |
| 48.82% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.27647058823529413 | | totalSentences | 170 | | uniqueOpeners | 47 | |
| 96.15% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 104 | | matches | | 0 | "Then it was gone, buried" | | 1 | "Then, in a rush:" | | 2 | "Somewhere out there, Lucien was" |
| | ratio | 0.029 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 104 | | matches | | 0 | "she said, but her smile" | | 1 | "she started, but the words" | | 2 | "His heterochromatic eyes—one amber, one" | | 3 | "he said, voice smooth as" | | 4 | "She hadn’t seen him in" | | 5 | "She cut the thought off" | | 6 | "It *was* cold." | | 7 | "She exhaled through her nose," | | 8 | "His expression didn’t change, but" | | 9 | "She should have left it" | | 10 | "She remembered the way he’d" | | 11 | "He gestured to the takeaway" | | 12 | "She ignored the jab." | | 13 | "His voice was light, but" | | 14 | "She didn’t have to." | | 15 | "They both knew." | | 16 | "She met his eyes, unflinching." | | 17 | "he agreed, voice low" | | 18 | "She pulled out the containers—sweet" | | 19 | "She kept her back to" |
| | ratio | 0.298 | |
| 41.73% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 104 | | matches | | 0 | "The door swung open before" | | 1 | "Eva stood there, barefoot in" | | 2 | "she said, but her smile" | | 3 | "Rory’s fingers tightened around the" | | 4 | "she started, but the words" | | 5 | "Lucien Moreau leaned one shoulder" | | 6 | "His heterochromatic eyes—one amber, one" | | 7 | "The flat’s dim light caught" | | 8 | "he said, voice smooth as" | | 9 | "Rory’s pulse jumped." | | 10 | "She hadn’t seen him in" | | 11 | "She cut the thought off" | | 12 | "Lucien pushed off the doorframe," | | 13 | "The last time she’d been" | | 14 | "The memory of his fingers" | | 15 | "Lucien’s lips quirked." | | 16 | "It *was* cold." | | 17 | "The November wind had a" | | 18 | "She exhaled through her nose," | | 19 | "The scent of his cologne—something" |
| | ratio | 0.837 | |
| 48.08% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 104 | | matches | | 0 | "Because it wasn’t Eva who" |
| | ratio | 0.01 | |
| 86.47% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 3 | | matches | | 0 | "The flat’s dim light caught the sharp angle of his jaw, the way his platinum hair was slicked back just a little too perfectly, as if he’d been expecting someon…" | | 1 | "Lucien Moreau, half-demon fixer with a blade hidden in his cane and a reputation that made even the most hardened supernatural criminals think twice, was *afrai…" | | 2 | "The door clicked shut behind him, the deadbolts sliding into place with a finality that made Rory’s chest ache." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 5 | | matches | | 0 | "she said, but her smile faltered when she saw who was actually standing in the hallway" | | 1 | "she started, but the words died in her throat" | | 2 | "he said, voice smooth as aged whiskey" | | 3 | "he agreed, voice low" | | 4 | "She froze, her dark eyes darting between them" |
| |
| 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 | |