| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 72 | | tagDensity | 0.319 | | leniency | 0.639 | | rawRatio | 0.043 | | effectiveRatio | 0.028 | |
| 86.01% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1787 | | totalAiIsmAdverbs | 5 | | found | | 0 | | | 1 | | | 2 | | adverb | "barely above a whisper" | | count | 1 |
| | 3 | | | 4 | |
| | highlights | | 0 | "suddenly" | | 1 | "really" | | 2 | "barely above a whisper" | | 3 | "lightly" | | 4 | "carefully" |
| |
| 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) | |
| 38.44% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1787 | | totalAiIsms | 22 | | found | | | highlights | | 0 | "echoed" | | 1 | "stomach" | | 2 | "lilt" | | 3 | "silk" | | 4 | "fluttered" | | 5 | "weight" | | 6 | "silence" | | 7 | "marble" | | 8 | "pounding" | | 9 | "familiar" | | 10 | "methodical" | | 11 | "fleeting" | | 12 | "whisper" | | 13 | "flicker" | | 14 | "electric" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 123 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 123 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 172 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1776 | | 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 | 30 | | wordCount | 1135 | | uniqueNames | 14 | | maxNameDensity | 0.62 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Aurora" | | discoveredNames | | Eva | 4 | | Moreau | 1 | | French | 1 | | English | 1 | | Ptolemy | 4 | | Aurora | 5 | | Mayfair | 1 | | Elise | 1 | | Mathieu | 1 | | Dubois | 1 | | Lucien | 7 | | Triad | 1 | | Brick | 1 | | Lane | 1 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "French" | | 3 | "Ptolemy" | | 4 | "Aurora" | | 5 | "Elise" | | 6 | "Mathieu" | | 7 | "Dubois" | | 8 | "Lucien" |
| | places | | 0 | "Mayfair" | | 1 | "Brick" | | 2 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 85.90% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 78 | | glossingSentenceCount | 2 | | matches | | 0 | "as if asking permission to enter" | | 1 | "felt like a door she’d finally let hers" |
| |
| 87.39% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.126 | | wordCount | 1776 | | matches | | 0 | "not an invitation but a concession to the draft" | | 1 | "not in threat but like a man reaching for an anchor" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 172 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 69 | | mean | 25.74 | | std | 19.91 | | cv | 0.774 | | sampleLengths | | 0 | 77 | | 1 | 68 | | 2 | 18 | | 3 | 39 | | 4 | 8 | | 5 | 9 | | 6 | 39 | | 7 | 4 | | 8 | 21 | | 9 | 85 | | 10 | 15 | | 11 | 11 | | 12 | 13 | | 13 | 39 | | 14 | 5 | | 15 | 15 | | 16 | 34 | | 17 | 32 | | 18 | 40 | | 19 | 4 | | 20 | 27 | | 21 | 25 | | 22 | 7 | | 23 | 32 | | 24 | 5 | | 25 | 8 | | 26 | 14 | | 27 | 63 | | 28 | 28 | | 29 | 13 | | 30 | 7 | | 31 | 52 | | 32 | 6 | | 33 | 16 | | 34 | 11 | | 35 | 1 | | 36 | 25 | | 37 | 45 | | 38 | 59 | | 39 | 5 | | 40 | 62 | | 41 | 32 | | 42 | 26 | | 43 | 1 | | 44 | 19 | | 45 | 40 | | 46 | 21 | | 47 | 26 | | 48 | 28 | | 49 | 22 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 123 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 207 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 172 | | ratio | 0.052 | | matches | | 0 | "Instead, platinum hair gleamed under the bare bulb, and mismatched eyes—one molten amber, one flat black—met hers through the gap." | | 1 | "He’d taught her that—the power of a pause." | | 2 | "Malphora—the name she’d inadvertently earned in the supernatural underworld, a fluke identity that had saved her life six months ago and cursed her since." | | 3 | "For a moment, he looked younger, less like the fixer who brokered truces and sold secrets—and more like the man who’d pressed her against the bookshelves in his study, mouth hungry, his cane clattering to the floor." | | 4 | "The gesture was so familiar—the way he always shed the accessory first, a small disarmament—that her throat tightened." | | 5 | "The motions of tea-making—filling, plugging, clicking the switch—gave her hands something to do." | | 6 | "The black eye absorbed the dim light; the amber one burned like a low flame." | | 7 | "A flicker crossed his features—relief, carefully suppressed." | | 8 | "Inside, the space between them still hummed with things unsaid—but for the first time in a year, the silence didn’t feel like a wound." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1154 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.03292894280762565 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.012131715771230503 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 172 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 172 | | mean | 10.33 | | std | 7.94 | | cv | 0.769 | | sampleLengths | | 0 | 13 | | 1 | 26 | | 2 | 12 | | 3 | 20 | | 4 | 6 | | 5 | 22 | | 6 | 11 | | 7 | 3 | | 8 | 9 | | 9 | 17 | | 10 | 6 | | 11 | 10 | | 12 | 8 | | 13 | 3 | | 14 | 15 | | 15 | 7 | | 16 | 14 | | 17 | 7 | | 18 | 1 | | 19 | 4 | | 20 | 5 | | 21 | 4 | | 22 | 13 | | 23 | 2 | | 24 | 20 | | 25 | 4 | | 26 | 6 | | 27 | 12 | | 28 | 3 | | 29 | 11 | | 30 | 5 | | 31 | 8 | | 32 | 11 | | 33 | 26 | | 34 | 15 | | 35 | 2 | | 36 | 2 | | 37 | 5 | | 38 | 15 | | 39 | 7 | | 40 | 4 | | 41 | 3 | | 42 | 6 | | 43 | 4 | | 44 | 18 | | 45 | 15 | | 46 | 6 | | 47 | 4 | | 48 | 1 | | 49 | 9 |
| |
| 54.26% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.36046511627906974 | | totalSentences | 172 | | uniqueOpeners | 62 | |
| 63.49% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 105 | | matches | | 0 | "Instead, platinum hair gleamed under" | | 1 | "Just silence, for twelve months." |
| | ratio | 0.019 | |
| 40.95% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 105 | | matches | | 0 | "She expected rain-slicked takeaway menus" | | 1 | "Her fingers tightened on the" | | 2 | "He didn’t smile." | | 3 | "He never smiled at the" | | 4 | "His voice carried that precise," | | 5 | "She didn’t answer." | | 6 | "He shifted his weight." | | 7 | "He dipped his chin" | | 8 | "He’d taught her that—the power" | | 9 | "She’d been a mess the" | | 10 | "He’d stood at the window," | | 11 | "His jaw tightened." | | 12 | "She pushed the door wider," | | 13 | "She folded her arms" | | 14 | "He drew a breath." | | 15 | "Her stomach clenched." | | 16 | "Her name dropped between them," | | 17 | "He rarely used it." | | 18 | "She hated the way it" | | 19 | "She crouched to scoop him" |
| | ratio | 0.448 | |
| 21.90% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 92 | | totalSentences | 105 | | matches | | 0 | "The clank of the third" | | 1 | "Aurora pulled the door open" | | 2 | "She expected rain-slicked takeaway menus" | | 3 | "Her fingers tightened on the" | | 4 | "Lucien Moreau stood with his" | | 5 | "The scent of damp wool" | | 6 | "He didn’t smile." | | 7 | "He never smiled at the" | | 8 | "The amber eye seemed to" | | 9 | "His voice carried that precise," | | 10 | "French sliding over English like" | | 11 | "She didn’t answer." | | 12 | "A stack of Eva’s research" | | 13 | "Aurora kept her body in" | | 14 | "He shifted his weight." | | 15 | "The cane tap-tapped once on" | | 16 | "He dipped his chin" | | 17 | "The black eye revealed nothing," | | 18 | "A gust of wind rattled" | | 19 | "Aurora let the silence stretch." |
| | ratio | 0.876 | |
| 95.24% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 105 | | matches | | 0 | "Now it just made her" | | 1 | "Now he stood on Eva’s" |
| | ratio | 0.019 | |
| 96.27% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 46 | | technicalSentenceCount | 3 | | matches | | 0 | "The cane tap-tapped once on the floorboards as if asking permission to enter." | | 1 | "Malphora—the name she’d inadvertently earned in the supernatural underworld, a fluke identity that had saved her life six months ago and cursed her since." | | 2 | "For a moment, he looked younger, less like the fixer who brokered truces and sold secrets—and more like the man who’d pressed her against the bookshelves in his…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 1 | | matches | | 0 | "Aurora said, her voice barely above a whisper" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 1 | | fancyTags | | 0 | "Lucien observed (observe)" |
| | dialogueSentences | 72 | | tagDensity | 0.139 | | leniency | 0.278 | | rawRatio | 0.1 | | effectiveRatio | 0.028 | |