| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 6 | | adverbTags | | 0 | "she said quietly [quietly]" | | 1 | "Lucien said finally [finally]" | | 2 | "he agreed pleasantly [pleasantly]" | | 3 | "I had just [just]" | | 4 | "he asked finally [finally]" | | 5 | "he finished quietly [quietly]" |
| | dialogueSentences | 46 | | tagDensity | 0.478 | | leniency | 0.957 | | rawRatio | 0.273 | | effectiveRatio | 0.261 | |
| 78.28% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1381 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "sharply" | | 1 | "slightly" | | 2 | "softly" | | 3 | "very" | | 4 | "slowly" | | 5 | "gently" |
| |
| 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) | |
| 71.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1381 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "pulse" | | 1 | "stomach" | | 2 | "weight" | | 3 | "silence" | | 4 | "traced" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 76 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 76 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 99 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 5 | | totalWords | 1370 | | ratio | 0.004 | | matches | | 0 | "I" | | 1 | "are" | | 2 | "talk" | | 3 | "mon coeur" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 899 | | uniqueNames | 11 | | maxNameDensity | 1.11 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Eva" | | discoveredNames | | Thursday | 1 | | Rory | 10 | | Eva | 10 | | Ptolemy | 3 | | Lucien | 5 | | Moreau | 1 | | Marseille | 1 | | Like | 1 | | East | 1 | | London | 2 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Ptolemy" | | 3 | "Lucien" | | 4 | "Moreau" | | 5 | "Evan" |
| | places | | 0 | "Marseille" | | 1 | "East" | | 2 | "London" |
| | globalScore | 0.944 | | windowScore | 0.833 | |
| 50.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 50 | | glossingSentenceCount | 2 | | matches | | 0 | "seemed deeper in the lamplight, like an actual void" | | 1 | "something like storm clouds and silver" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1370 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 99 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 30.44 | | std | 21 | | cv | 0.69 | | sampleLengths | | 0 | 2 | | 1 | 49 | | 2 | 33 | | 3 | 18 | | 4 | 5 | | 5 | 62 | | 6 | 82 | | 7 | 12 | | 8 | 39 | | 9 | 17 | | 10 | 39 | | 11 | 53 | | 12 | 11 | | 13 | 23 | | 14 | 37 | | 15 | 28 | | 16 | 16 | | 17 | 4 | | 18 | 56 | | 19 | 31 | | 20 | 5 | | 21 | 5 | | 22 | 36 | | 23 | 56 | | 24 | 10 | | 25 | 34 | | 26 | 67 | | 27 | 47 | | 28 | 40 | | 29 | 4 | | 30 | 34 | | 31 | 42 | | 32 | 9 | | 33 | 44 | | 34 | 32 | | 35 | 21 | | 36 | 28 | | 37 | 6 | | 38 | 19 | | 39 | 30 | | 40 | 86 | | 41 | 10 | | 42 | 56 | | 43 | 15 | | 44 | 17 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 76 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 168 | | matches | | 0 | "weren't remembering" | | 1 | "wasn't saying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 99 | | ratio | 0.081 | | matches | | 0 | "The deadbolts came undone—all three of them, which meant Eva was either terrified or furious." | | 1 | "Charcoal suit impeccable despite whatever he'd been doing before this—the suit was always impeccable." | | 2 | "\"Charming as ever.\" He leaned his weight on the cane, not because he needed it—she'd never quite believed he needed it—but because it gave him something to do with his hands." | | 3 | "His face was calm, but she knew how to read the micro-expressions now—the tightness at the corner of his mouth, the way his jaw worked slightly as if chewing on words he wasn't saying." | | 4 | "\"—and I had just gotten away from someone who controlled me. I couldn't go from Evan's hands straight to... to whatever this is. I needed to remember who I was when I was alone.\"" | | 5 | "He absorbed this quietly, then moved—with that unsettling grace of his—to the bookshelf." | | 6 | "\"I'm not Evan,\" he said, stopping close enough that she could smell him—expensive cologne and something else, something like storm clouds and silver." | | 7 | "\"Perhaps they're the same thing when one is half-demon.\" He reached out, and his fingers found her wrist—the one with the crescent scar, the one that remembered old hurts." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 811 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 23 | | adverbRatio | 0.02836004932182491 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.009864364981504316 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 99 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 99 | | mean | 13.84 | | std | 11.92 | | cv | 0.861 | | sampleLengths | | 0 | 51 | | 1 | 11 | | 2 | 22 | | 3 | 11 | | 4 | 2 | | 5 | 5 | | 6 | 5 | | 7 | 15 | | 8 | 2 | | 9 | 26 | | 10 | 19 | | 11 | 16 | | 12 | 14 | | 13 | 20 | | 14 | 32 | | 15 | 2 | | 16 | 10 | | 17 | 17 | | 18 | 9 | | 19 | 13 | | 20 | 5 | | 21 | 12 | | 22 | 23 | | 23 | 11 | | 24 | 5 | | 25 | 31 | | 26 | 2 | | 27 | 4 | | 28 | 16 | | 29 | 4 | | 30 | 7 | | 31 | 7 | | 32 | 12 | | 33 | 4 | | 34 | 12 | | 35 | 25 | | 36 | 28 | | 37 | 11 | | 38 | 5 | | 39 | 4 | | 40 | 22 | | 41 | 34 | | 42 | 14 | | 43 | 6 | | 44 | 11 | | 45 | 5 | | 46 | 5 | | 47 | 16 | | 48 | 6 | | 49 | 14 |
| |
| 70.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.46464646464646464 | | totalSentences | 99 | | uniqueOpeners | 46 | |
| 51.28% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 65 | | matches | | | ratio | 0.015 | |
| 41.54% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 65 | | matches | | 0 | "She padded across the cluttered" | | 1 | "He stepped into the flat" | | 2 | "he said, and his voice" | | 3 | "He leaned his weight on" | | 4 | "She'd learned his tells." | | 5 | "His heterochromatic eyes narrowed" | | 6 | "She disappeared, leaving Rory alone" | | 7 | "He tilted his head, that" | | 8 | "She wrapped her arms around" | | 9 | "He shifted his weight, and" | | 10 | "She'd been trying to have" | | 11 | "she said quietly" | | 12 | "She did look at him" | | 13 | "His face was calm, but" | | 14 | "she said, and it was" | | 15 | "he agreed pleasantly" | | 16 | "He absorbed this quietly, then" | | 17 | "His cane clicked softly against" | | 18 | "He studied the spines of" | | 19 | "he asked finally" |
| | ratio | 0.446 | |
| 36.92% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 65 | | matches | | 0 | "# UNANNOUNCED The knock came" | | 1 | "Eva said, abandoning her books" | | 2 | "She padded across the cluttered" | | 3 | "Rory heard the chain rattle" | | 4 | "A sharp intake of breath." | | 5 | "The deadbolts came undone—all three" | | 6 | "Rory set down her tea" | | 7 | "He stepped into the flat" | | 8 | "Charcoal suit impeccable despite whatever" | | 9 | "Rain pearled on his platinum" | | 10 | "That's how long it had" | | 11 | "he said, and his voice" | | 12 | "The Marseille accent wrapped around" | | 13 | "Eva's face had gone tight." | | 14 | "Rory cut in, still on" | | 15 | "He leaned his weight on" | | 16 | "She'd learned his tells." | | 17 | "His heterochromatic eyes narrowed" | | 18 | "The black one seemed deeper" | | 19 | "Eva made a small noise" |
| | ratio | 0.846 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 65 | | matches | (empty) | | ratio | 0 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 4 | | matches | | 0 | "# UNANNOUNCED The knock came at half past nine on a Thursday night when Rory was in her oldest jumper with a cup of tea that had gone cold an hour ago, sitting …" | | 1 | "The deadbolts came undone—all three of them, which meant Eva was either terrified or furious." | | 2 | "And Lucien Moreau was always trouble, even if he was the kind of trouble that made her stomach flip." | | 3 | "His face was calm, but she knew how to read the micro-expressions now—the tightness at the corner of his mouth, the way his jaw worked slightly as if chewing on…" |
| |
| 56.82% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 3 | | matches | | 0 | "he said, and his voice was soft in that way that meant he was dangerous" | | 1 | "He shifted, and the cane tapped once against the wooden floor" | | 2 | "She stopped, jaw tight" |
| |
| 84.78% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 3 | | fancyTags | | 0 | "Eva muttered (mutter)" | | 1 | "Lucien observed (observe)" | | 2 | "he agreed pleasantly (agree)" |
| | dialogueSentences | 46 | | tagDensity | 0.304 | | leniency | 0.609 | | rawRatio | 0.214 | | effectiveRatio | 0.13 | |