| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said finally [finally]" |
| | dialogueSentences | 84 | | tagDensity | 0.214 | | leniency | 0.429 | | rawRatio | 0.056 | | effectiveRatio | 0.024 | |
| 87.83% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1644 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "barely above a whisper" | | count | 2 |
| | 2 | |
| | highlights | | 0 | "sharply" | | 1 | "barely above a whisper" | | 2 | "slowly" |
| |
| 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) | |
| 45.26% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1644 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "flicked" | | 1 | "jaw clenched" | | 2 | "pulse" | | 3 | "silence" | | 4 | "unreadable" | | 5 | "unspoken" | | 6 | "tension" | | 7 | "stomach" | | 8 | "trembled" | | 9 | "whisper" | | 10 | "tracing" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "jaw/fists clenched" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "jaw clenched" | | 1 | "sent a jolt through" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 141 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 141 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 207 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 33 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 9 | | markdownWords | 9 | | totalWords | 1634 | | ratio | 0.006 | | matches | | 0 | "text" | | 1 | "now" | | 2 | "care" | | 3 | "always" | | 4 | "Malphora." | | 5 | "my" | | 6 | "gone" | | 7 | "care" | | 8 | "my" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 30 | | unquotedAttributions | 0 | | matches | (empty) | |
| 16.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 69 | | wordCount | 1180 | | uniqueNames | 10 | | maxNameDensity | 2.29 | | worstName | "Lucien" | | maxWindowNameDensity | 4.5 | | worstWindowName | "Lucien" | | discoveredNames | | Evan | 2 | | Ptolemy | 3 | | Lucien | 27 | | Rory | 24 | | Cardiff | 1 | | Moreau | 4 | | Brick | 1 | | Lane | 1 | | One | 3 | | Should | 3 |
| | persons | | 0 | "Evan" | | 1 | "Ptolemy" | | 2 | "Lucien" | | 3 | "Rory" | | 4 | "Moreau" | | 5 | "Should" |
| | places | | 0 | "Cardiff" | | 1 | "Brick" | | 2 | "Lane" |
| | globalScore | 0.356 | | windowScore | 0.167 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 85 | | glossingSentenceCount | 1 | | matches | | 0 | "as if sensing the shift in the air" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.612 | | wordCount | 1634 | | matches | | 0 | "not from the impact, but from the sight of him standing there, filling the doorway li" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 207 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 103 | | mean | 15.86 | | std | 13.43 | | cv | 0.847 | | sampleLengths | | 0 | 68 | | 1 | 34 | | 2 | 28 | | 3 | 53 | | 4 | 13 | | 5 | 35 | | 6 | 8 | | 7 | 17 | | 8 | 40 | | 9 | 3 | | 10 | 12 | | 11 | 9 | | 12 | 10 | | 13 | 36 | | 14 | 23 | | 15 | 3 | | 16 | 2 | | 17 | 25 | | 18 | 7 | | 19 | 5 | | 20 | 40 | | 21 | 6 | | 22 | 1 | | 23 | 27 | | 24 | 9 | | 25 | 24 | | 26 | 10 | | 27 | 20 | | 28 | 43 | | 29 | 6 | | 30 | 5 | | 31 | 8 | | 32 | 11 | | 33 | 33 | | 34 | 12 | | 35 | 6 | | 36 | 1 | | 37 | 38 | | 38 | 18 | | 39 | 15 | | 40 | 11 | | 41 | 8 | | 42 | 2 | | 43 | 30 | | 44 | 14 | | 45 | 11 | | 46 | 10 | | 47 | 49 | | 48 | 4 | | 49 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 141 | | matches | | 0 | "were filled" | | 1 | "been spoken" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 224 | | matches | | 0 | "wasn’t hammering" | | 1 | "was telling" | | 2 | "was watching" |
| |
| 60.04% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 207 | | ratio | 0.029 | | matches | | 0 | "Rory’s breath hitched—not from the impact, but from the sight of him standing there, filling the doorway like a storm given human form." | | 1 | "The flat smelled of takeout and Ptolemy’s cat food, but beneath it all was the faint metallic tang of blood—hers, probably, from where she’d bitten her lip when the buzzer rang." | | 2 | "Lucien’s gaze swept the room—the stacks of books, the half-empty mug of cold tea on the desk, the way the single lamp cast long shadows over the floor." | | 3 | "Not the files she’d stolen from his father’s office that night—files that had proven what she’d always suspected: that Lucien’s world wasn’t just the glamorous underworld of deals and whispers." | | 4 | "Rory’s fingers twitched toward the switchblade tucked in her boot—old habit, old fear—but she forced them to stay at her sides." | | 5 | "The pages were filled with frantic scribbles in a language she didn’t recognize—symbols, numbers, dates." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1191 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small, leather-bound journal." |
| | adverbCount | 43 | | adverbRatio | 0.03610411418975651 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.008396305625524769 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 207 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 207 | | mean | 7.89 | | std | 6.19 | | cv | 0.784 | | sampleLengths | | 0 | 10 | | 1 | 23 | | 2 | 22 | | 3 | 13 | | 4 | 23 | | 5 | 5 | | 6 | 3 | | 7 | 3 | | 8 | 20 | | 9 | 8 | | 10 | 11 | | 11 | 31 | | 12 | 11 | | 13 | 6 | | 14 | 7 | | 15 | 28 | | 16 | 7 | | 17 | 3 | | 18 | 5 | | 19 | 12 | | 20 | 5 | | 21 | 13 | | 22 | 16 | | 23 | 5 | | 24 | 6 | | 25 | 3 | | 26 | 8 | | 27 | 4 | | 28 | 4 | | 29 | 5 | | 30 | 3 | | 31 | 7 | | 32 | 11 | | 33 | 6 | | 34 | 17 | | 35 | 2 | | 36 | 11 | | 37 | 12 | | 38 | 3 | | 39 | 2 | | 40 | 19 | | 41 | 6 | | 42 | 5 | | 43 | 2 | | 44 | 5 | | 45 | 3 | | 46 | 14 | | 47 | 7 | | 48 | 16 | | 49 | 6 |
| |
| 45.17% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.28502415458937197 | | totalSentences | 207 | | uniqueOpeners | 59 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 131 | | matches | | 0 | "Of course Lucien Moreau wouldn’t" | | 1 | "Of course it would be" | | 2 | "Then he reached into his" | | 3 | "Then, slowly, Lucien’s lips curled" |
| | ratio | 0.031 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 131 | | matches | | 0 | "he said, voice smooth as" | | 1 | "His black eye didn’t react." | | 2 | "He stepped inside without invitation," | | 3 | "he said, as if that" | | 4 | "she corrected, voice tight" | | 5 | "He hissed, a sound that" | | 6 | "His expression darkened." | | 7 | "She should’ve known." | | 8 | "she said, voice flat" | | 9 | "His voice dropped, low and" | | 10 | "Her breath caught." | | 11 | "It was darker." | | 12 | "She’d taken those files and" | | 13 | "she said, voice steadier than" | | 14 | "She didn’t offer him one." | | 15 | "She downed the whiskey in" | | 16 | "she said, but her voice" | | 17 | "He pushed off the doorframe," | | 18 | "Her breath hitched." | | 19 | "he snapped, voice raw" |
| | ratio | 0.275 | |
| 70.69% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 102 | | totalSentences | 131 | | matches | | 0 | "The door swung open before" | | 1 | "Rory’s breath hitched—not from the" | | 2 | "Platinum blond hair slicked back," | | 3 | "he said, voice smooth as" | | 4 | "His black eye didn’t react." | | 5 | "Rory’s fingers twitched toward the" | | 6 | "He stepped inside without invitation," | | 7 | "The flat smelled of takeout" | | 8 | "he said, as if that" | | 9 | "she corrected, voice tight" | | 10 | "Lucien’s gaze swept the room—the" | | 11 | "Rory’s jaw clenched." | | 12 | "A slow smile curled his" | | 13 | "Ptolemy chose that moment to" | | 14 | "He hissed, a sound that" | | 15 | "Lucien didn’t even glance down." | | 16 | "Lucien’s cane tapped the floor" | | 17 | "Rory barked a laugh." | | 18 | "His expression darkened." | | 19 | "The use of her full" |
| | ratio | 0.779 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 131 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 2 | | matches | | 0 | "Something that would drag her back into the underworld she’d spent years trying to leave behind." | | 1 | "Not the files she’d stolen from his father’s office that night—files that had proven what she’d always suspected: that Lucien’s world wasn’t just the glamorous …" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 9 | | matches | | 0 | "he said, as if that explained everything" | | 1 | "she corrected, voice tight" | | 2 | "Lucien’s cane tapped, twice" | | 3 | "she said, voice flat" | | 4 | "she said, voice steadier than she felt" | | 5 | "she said, but her voice lacked conviction" | | 6 | "he snapped, voice raw" | | 7 | "she said, voice barely above a whisper" | | 8 | "she said, voice barely above a whisper" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 4 | | fancyTags | | 0 | "she corrected (correct)" | | 1 | "Lucien observed (observe)" | | 2 | "he snapped (snap)" | | 3 | "she murmured (murmur)" |
| | dialogueSentences | 84 | | tagDensity | 0.155 | | leniency | 0.31 | | rawRatio | 0.308 | | effectiveRatio | 0.095 | |