| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 38 | | tagDensity | 0.421 | | leniency | 0.842 | | rawRatio | 0.063 | | effectiveRatio | 0.053 | |
| 78.42% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1390 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "loosely" | | 1 | "very" | | 2 | "gently" | | 3 | "suddenly" |
| |
| 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) | |
| 78.42% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1390 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "flickered" | | 1 | "stomach" | | 2 | "silence" | | 3 | "weight" | | 4 | "throbbed" | | 5 | "pulse" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 69 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "started to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 59 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1383 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 999 | | uniqueNames | 10 | | maxNameDensity | 0.8 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 3 | | Edinburgh | 1 | | Lucien | 8 | | Moreau | 3 | | Ptolemy | 4 | | Italian | 1 | | Frenchman | 1 | | Brick | 1 | | Lane | 1 | | Rory | 3 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Ptolemy" | | 4 | "Rory" |
| | places | | 0 | "Edinburgh" | | 1 | "Brick" | | 2 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like nothing, a momentary stillnes" | | 1 | "ward her, then visibly checked himself, on" | | 2 | "seemed unable to find the next word in any of his four languages" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1383 | | matches | (empty) | |
| 92.59% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 90 | | matches | | 0 | "chose that moment" | | 1 | "found that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 43 | | mean | 32.16 | | std | 28.3 | | cv | 0.88 | | sampleLengths | | 0 | 81 | | 1 | 21 | | 2 | 7 | | 3 | 86 | | 4 | 4 | | 5 | 35 | | 6 | 9 | | 7 | 20 | | 8 | 21 | | 9 | 42 | | 10 | 5 | | 11 | 7 | | 12 | 58 | | 13 | 30 | | 14 | 10 | | 15 | 88 | | 16 | 74 | | 17 | 6 | | 18 | 5 | | 19 | 17 | | 20 | 3 | | 21 | 33 | | 22 | 45 | | 23 | 39 | | 24 | 11 | | 25 | 1 | | 26 | 28 | | 27 | 5 | | 28 | 29 | | 29 | 2 | | 30 | 9 | | 31 | 43 | | 32 | 50 | | 33 | 112 | | 34 | 25 | | 35 | 7 | | 36 | 75 | | 37 | 45 | | 38 | 22 | | 39 | 72 | | 40 | 8 | | 41 | 27 | | 42 | 66 |
| |
| 95.09% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 69 | | matches | | 0 | "was dressed" | | 1 | "being charmed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 182 | | matches | | 0 | "was tasting" | | 1 | "wasn't giving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 90 | | ratio | 0.067 | | matches | | 0 | "Ptolemy wound between her ankles, complaining, and she nudged him back with one socked foot as she yanked the door open—" | | 1 | "—expecting the curry-house delivery boy with her dinner, or perhaps the downstairs landlord come to grumble about the smell of incense." | | 2 | "The stairwell's single bulb threw half his face into gold and left the other in shadow, so that his mismatched eyes—one amber, one black as a drowned well—seemed to belong to two different men." | | 3 | "His cane came up—not threatening, just a soft tap against the wood, halting it." | | 4 | "She told herself it had nothing to do with the way the light caught the platinum of his hair, or the low rasp of his voice, or the particular cologne he wore—something with smoke and orange peel underneath—that came drifting through the doorway and dragged a whole season of her life back up out of the dark." | | 5 | "Eva's research had colonized every flat surface—scrolls unrolled and pinned with mugs, notebooks splayed open, a half-translated codex propped against the kettle." |
| |
| 96.01% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1010 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.04455445544554455 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.01485148514851485 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 15.37 | | std | 13.18 | | cv | 0.858 | | sampleLengths | | 0 | 5 | | 1 | 55 | | 2 | 21 | | 3 | 21 | | 4 | 7 | | 5 | 7 | | 6 | 34 | | 7 | 26 | | 8 | 19 | | 9 | 4 | | 10 | 3 | | 11 | 32 | | 12 | 9 | | 13 | 14 | | 14 | 6 | | 15 | 21 | | 16 | 5 | | 17 | 35 | | 18 | 2 | | 19 | 5 | | 20 | 7 | | 21 | 29 | | 22 | 3 | | 23 | 26 | | 24 | 6 | | 25 | 24 | | 26 | 10 | | 27 | 6 | | 28 | 57 | | 29 | 25 | | 30 | 12 | | 31 | 22 | | 32 | 40 | | 33 | 6 | | 34 | 5 | | 35 | 14 | | 36 | 3 | | 37 | 3 | | 38 | 3 | | 39 | 13 | | 40 | 9 | | 41 | 8 | | 42 | 22 | | 43 | 23 | | 44 | 21 | | 45 | 18 | | 46 | 3 | | 47 | 6 | | 48 | 2 | | 49 | 1 |
| |
| 67.41% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4444444444444444 | | totalSentences | 90 | | uniqueOpeners | 40 | |
| 55.56% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 60 | | matches | | 0 | "Instead, Lucien Moreau stood on" |
| | ratio | 0.017 | |
| 46.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 60 | | matches | | 0 | "He was dressed as he" | | 1 | "He looked, infuriatingly, as though" | | 2 | "He was the only one" | | 3 | "she said, and started to" | | 4 | "His cane came up—not threatening," | | 5 | "he said quietly" | | 6 | "She told herself it was" | | 7 | "She told herself it had" | | 8 | "She told herself a great" | | 9 | "He had to turn sideways" | | 10 | "He stopped himself" | | 11 | "He didn't answer." | | 12 | "He said it simply, without" | | 13 | "Her stomach dropped a slow" | | 14 | "She felt the blood leave" | | 15 | "He always saw." | | 16 | "he said, very gently" | | 17 | "she asked, before she could" | | 18 | "He took a step toward" | | 19 | "She stared at him." |
| | ratio | 0.433 | |
| 51.67% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 60 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory had wrestled with it" | | 2 | "Ptolemy wound between her ankles," | | 3 | "The stairwell's single bulb threw" | | 4 | "He was dressed as he" | | 5 | "He looked, infuriatingly, as though" | | 6 | "The full name." | | 7 | "He was the only one" | | 8 | "she said, and started to" | | 9 | "His cane came up—not threatening," | | 10 | "Something flickered across his face." | | 11 | "he said quietly" | | 12 | "Ptolemy chose that moment to" | | 13 | "Traitor, she thought." | | 14 | "Lucien glanced down at the" | | 15 | "That, more than anything, was" | | 16 | "She told herself it was" | | 17 | "She told herself it had" | | 18 | "She told herself a great" | | 19 | "He had to turn sideways" |
| | ratio | 0.817 | |
| 83.33% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 60 | | matches | | 0 | "To anyone else it would" |
| | ratio | 0.017 | |
| 98.21% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 2 | | matches | | 0 | "Lucien moved through it with the careful precision of a man crossing a minefield, set his cane against the arm of the sofa, and turned to face her in the crampe…" | | 1 | "And Rory, who was cool-headed and clever and known among her friends for never doing the reckless thing, looked at the half-demon standing among her cousin's bo…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 38 | | tagDensity | 0.237 | | leniency | 0.474 | | rawRatio | 0.111 | | effectiveRatio | 0.053 | |