| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 6 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 57 | | tagDensity | 0.105 | | leniency | 0.211 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.84% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1203 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 58.44% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1203 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "flickered" | | 1 | "charged" | | 2 | "tension" | | 3 | "stomach" | | 4 | "trembled" | | 5 | "unreadable" | | 6 | "velvet" | | 7 | "intricate" | | 8 | "pulsed" | | 9 | "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 | 115 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 115 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 166 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 33 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 30 | | totalWords | 1196 | | ratio | 0.025 | | matches | | 0 | "Don’t call me again." | | 1 | "Aurora Carter, in exchange for safe passage and protection from Evan Griffiths, hereby owes Lucien Moreau one favour, to be called upon at his discretion." | | 2 | "my" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 96.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 25 | | wordCount | 926 | | uniqueNames | 10 | | maxNameDensity | 1.08 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 4 | | Lucien | 10 | | Traitor | 1 | | Cardiff | 1 | | Evan | 2 | | Carter | 1 | | Griffiths | 1 | | Moreau | 1 | | Yu-Fei-delivering | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Evan" | | 3 | "Carter" | | 4 | "Griffiths" | | 5 | "Moreau" | | 6 | "Ptolemy" |
| | places | | | globalScore | 0.96 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1196 | | matches | (empty) | |
| 86.35% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 4 | | totalSentences | 166 | | matches | | 0 | "knew that pattern" | | 1 | "chose that moment" | | 2 | "chose that moment" | | 3 | "was that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 82 | | mean | 14.59 | | std | 13.71 | | cv | 0.94 | | sampleLengths | | 0 | 38 | | 1 | 41 | | 2 | 38 | | 3 | 22 | | 4 | 56 | | 5 | 4 | | 6 | 6 | | 7 | 14 | | 8 | 29 | | 9 | 21 | | 10 | 17 | | 11 | 45 | | 12 | 23 | | 13 | 6 | | 14 | 16 | | 15 | 18 | | 16 | 29 | | 17 | 16 | | 18 | 16 | | 19 | 11 | | 20 | 5 | | 21 | 6 | | 22 | 11 | | 23 | 45 | | 24 | 4 | | 25 | 25 | | 26 | 13 | | 27 | 6 | | 28 | 5 | | 29 | 11 | | 30 | 12 | | 31 | 29 | | 32 | 6 | | 33 | 7 | | 34 | 1 | | 35 | 1 | | 36 | 4 | | 37 | 6 | | 38 | 35 | | 39 | 3 | | 40 | 1 | | 41 | 43 | | 42 | 8 | | 43 | 7 | | 44 | 4 | | 45 | 2 | | 46 | 8 | | 47 | 15 | | 48 | 6 | | 49 | 2 |
| |
| 99.16% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 115 | | matches | | 0 | "were singed" | | 1 | "was gone" |
| |
| 90.11% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 182 | | matches | | 0 | "was wiping" | | 1 | "was already winding" | | 2 | "was looking" |
| |
| 56.80% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 166 | | ratio | 0.03 | | matches | | 0 | "The deadbolts were still locked—she always kept them that way." | | 1 | "His eyes—one amber, one black—flickered over her, lingering on the grease stain, the scar on her wrist, the way her hair had come loose from its tie." | | 2 | "Two years, and she still remembered the way his voice had sounded the last time they’d spoken—cold, clipped, final." | | 3 | "Lucien stepped inside without waiting for an invitation, the scent of bergamot and something darker—gunpowder, maybe—following him." | | 4 | "But the key pulsed, and the parchment burned in her peripheral vision, and the way he was looking at her—like she was the only person who could do this—made her chest tight." |
| |
| 93.96% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 938 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 44 | | adverbRatio | 0.046908315565031986 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0031982942430703624 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 166 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 166 | | mean | 7.2 | | std | 5.81 | | cv | 0.807 | | sampleLengths | | 0 | 16 | | 1 | 9 | | 2 | 2 | | 3 | 2 | | 4 | 3 | | 5 | 6 | | 6 | 14 | | 7 | 27 | | 8 | 16 | | 9 | 10 | | 10 | 6 | | 11 | 6 | | 12 | 8 | | 13 | 2 | | 14 | 2 | | 15 | 10 | | 16 | 6 | | 17 | 16 | | 18 | 7 | | 19 | 27 | | 20 | 4 | | 21 | 4 | | 22 | 2 | | 23 | 10 | | 24 | 4 | | 25 | 2 | | 26 | 19 | | 27 | 8 | | 28 | 13 | | 29 | 3 | | 30 | 5 | | 31 | 16 | | 32 | 1 | | 33 | 17 | | 34 | 5 | | 35 | 19 | | 36 | 4 | | 37 | 14 | | 38 | 9 | | 39 | 6 | | 40 | 2 | | 41 | 14 | | 42 | 9 | | 43 | 9 | | 44 | 9 | | 45 | 10 | | 46 | 10 | | 47 | 11 | | 48 | 5 | | 49 | 15 |
| |
| 57.03% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.3674698795180723 | | totalSentences | 166 | | uniqueOpeners | 61 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 97 | | matches | | 0 | "Too much history in the" | | 1 | "Of course he did." | | 2 | "Instead, he reached into his" | | 3 | "Instead, he reached into his" |
| | ratio | 0.041 | |
| 75.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 97 | | matches | | 0 | "Her fingers stilled." | | 1 | "She hesitated, then slid the" | | 2 | "His eyes—one amber, one black—flickered" | | 3 | "she said, but the cat" | | 4 | "She hadn’t expected company." | | 5 | "He took it in with" | | 6 | "She wanted to snap back," | | 7 | "He moved further in, the" | | 8 | "She arched a brow." | | 9 | "His jaw tightened." | | 10 | "He’d caught it, set it" | | 11 | "She pushed off the counter." | | 12 | "He held it out to" | | 13 | "She didn’t take it." | | 14 | "Her stomach dropped." | | 15 | "She’d almost forgotten." | | 16 | "Her fingers trembled as she" | | 17 | "She looked up at him," | | 18 | "His gaze didn’t waver." | | 19 | "She barked a laugh." |
| | ratio | 0.361 | |
| 78.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 74 | | totalSentences | 97 | | matches | | 0 | "The knock came just as" | | 1 | "Her fingers stilled." | | 2 | "Ptolemy, the tabby, lifted his" | | 3 | "The flat was small enough" | | 4 | "Rory exhaled through her nose," | | 5 | "The deadbolts were still locked—she" | | 6 | "Eva had drilled it into" | | 7 | "She hesitated, then slid the" | | 8 | "The door swung inward before" | | 9 | "Lucien stood there, filling the" | | 10 | "Charcoal suit immaculate, not a" | | 11 | "The cane rested against his" | | 12 | "His eyes—one amber, one black—flickered" | | 13 | "Rory crossed her arms." | | 14 | "A smirk tugged at his" | | 15 | "Ptolemy chose that moment to" | | 16 | "Lucien’s gaze dropped." | | 17 | "she said, but the cat" | | 18 | "Lucien stepped inside without waiting" | | 19 | "The flat was a mess." |
| | ratio | 0.763 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 97 | | matches | | 0 | "Now, he was back." | | 1 | "Now, his expression was unreadable." |
| | ratio | 0.021 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 35 | | technicalSentenceCount | 1 | | matches | | 0 | "But the key pulsed, and the parchment burned in her peripheral vision, and the way he was looking at her—like she was the only person who could do this—made her…" |
| |
| 41.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 6 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, but the cat was already winding around Lucien’s polished shoes, purring" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 57 | | tagDensity | 0.07 | | leniency | 0.14 | | rawRatio | 0 | | effectiveRatio | 0 | |