| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 40 | | tagDensity | 0.175 | | leniency | 0.35 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 84.03% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1565 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slightly" | | 1 | "suddenly" | | 2 | "carefully" |
| |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 29.71% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1565 | | totalAiIsms | 22 | | found | | | highlights | | 0 | "flickered" | | 1 | "chill" | | 2 | "methodical" | | 3 | "flicked" | | 4 | "weight" | | 5 | "silence" | | 6 | "unreadable" | | 7 | "footsteps" | | 8 | "etching" | | 9 | "could feel" | | 10 | "pulse" | | 11 | "eyebrow" | | 12 | "measured" | | 13 | "unspoken" | | 14 | "warmth" | | 15 | "determined" |
| |
| 33.33% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 4 | | maxInWindow | 3 | | found | | 0 | | label | "clenched jaw/fists" | | count | 1 |
| | 1 | | label | "air was thick with" | | count | 1 |
| | 2 | | label | "weight of words/silence" | | count | 1 |
| | 3 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "clenched into fists" | | 1 | "the air was thick with" | | 2 | "The weight of the silence" | | 3 | "sent a jolt through" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 111 | | matches | (empty) | |
| 91.38% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | hedgeCount | 0 | | narrationSentences | 111 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 143 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 9 | | markdownWords | 54 | | totalWords | 1546 | | ratio | 0.035 | | matches | | 0 | "You look like hell" | | 1 | "You look like the kind of man who’s spent too many nights staring at the ceiling, wondering" | | 2 | "Why haven’t you answered his calls?" | | 3 | "Why did you leave without telling anyone?" | | 4 | "Why did you let me become the villain in a story you never bothered to correct?" | | 5 | "think" | | 6 | "does" | | 7 | "begged" | | 8 | "follow" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 1274 | | uniqueNames | 8 | | maxNameDensity | 1.02 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Silas" | | discoveredNames | | Rory | 13 | | Nest | 1 | | Irish | 1 | | Thursday | 1 | | Silas | 11 | | Eva | 1 | | Evan | 12 | | Prague | 1 |
| | persons | | 0 | "Rory" | | 1 | "Silas" | | 2 | "Eva" | | 3 | "Evan" |
| | places | | | globalScore | 0.99 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 74 | | 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 | 1546 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 143 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 27.12 | | std | 20.79 | | cv | 0.766 | | sampleLengths | | 0 | 82 | | 1 | 43 | | 2 | 60 | | 3 | 50 | | 4 | 67 | | 5 | 7 | | 6 | 9 | | 7 | 37 | | 8 | 15 | | 9 | 2 | | 10 | 83 | | 11 | 7 | | 12 | 17 | | 13 | 28 | | 14 | 13 | | 15 | 14 | | 16 | 47 | | 17 | 46 | | 18 | 21 | | 19 | 12 | | 20 | 37 | | 21 | 2 | | 22 | 21 | | 23 | 11 | | 24 | 77 | | 25 | 13 | | 26 | 26 | | 27 | 14 | | 28 | 53 | | 29 | 11 | | 30 | 33 | | 31 | 14 | | 32 | 10 | | 33 | 23 | | 34 | 29 | | 35 | 6 | | 36 | 43 | | 37 | 21 | | 38 | 13 | | 39 | 24 | | 40 | 45 | | 41 | 40 | | 42 | 43 | | 43 | 58 | | 44 | 3 | | 45 | 4 | | 46 | 12 | | 47 | 18 | | 48 | 28 | | 49 | 43 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 111 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 224 | | matches | | 0 | "was polishing" | | 1 | "was standing" | | 2 | "was letting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 143 | | ratio | 0.07 | | matches | | 0 | "Inside, the air was thick with the scent of aged whiskey and the low hum of conversation—some hushed, some too loud, all of it blending into the kind of ambient noise that made a person feel both invisible and exposed." | | 1 | "Silas set down the glass and reached for a bottle of Irish whiskey—her father’s favorite, though she’d never told him that." | | 2 | "He looked older—of course he did." | | 3 | "Evan took a step forward, then another, until he was close enough that she could see the faint shadow of stubble along his jaw, the way his left hand—his dominant hand—twitched at his side before he forced it still." | | 4 | "Close enough that she could see the faint scar above his eyebrow—the one he’d gotten playing rugby in uni, the one she’d teased him about for years." | | 5 | "She looked away, her gaze landing on the wall behind the bar—a black-and-white photo of some long-forgotten street in Prague, the cobblestones slick with rain." | | 6 | "To tell him—" | | 7 | "Might grab her wrist, might say something—anything—that would make this harder than it already was." | | 8 | "He just stood there, his face a mask of something she couldn’t—wouldn’t—name, and let her walk away." | | 9 | "Heard footsteps—hesitant, then determined—following her into the dark." |
| |
| 99.76% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1291 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 52 | | adverbRatio | 0.040278853601859024 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.005422153369481022 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 143 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 143 | | mean | 10.81 | | std | 9.45 | | cv | 0.874 | | sampleLengths | | 0 | 25 | | 1 | 40 | | 2 | 17 | | 3 | 25 | | 4 | 13 | | 5 | 5 | | 6 | 14 | | 7 | 19 | | 8 | 22 | | 9 | 5 | | 10 | 21 | | 11 | 16 | | 12 | 13 | | 13 | 22 | | 14 | 15 | | 15 | 30 | | 16 | 3 | | 17 | 4 | | 18 | 9 | | 19 | 9 | | 20 | 17 | | 21 | 11 | | 22 | 4 | | 23 | 1 | | 24 | 10 | | 25 | 2 | | 26 | 19 | | 27 | 6 | | 28 | 27 | | 29 | 31 | | 30 | 7 | | 31 | 16 | | 32 | 1 | | 33 | 13 | | 34 | 14 | | 35 | 1 | | 36 | 8 | | 37 | 5 | | 38 | 10 | | 39 | 4 | | 40 | 10 | | 41 | 13 | | 42 | 2 | | 43 | 2 | | 44 | 20 | | 45 | 39 | | 46 | 7 | | 47 | 15 | | 48 | 6 | | 49 | 3 |
| |
| 47.79% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.3076923076923077 | | totalSentences | 143 | | uniqueOpeners | 44 | |
| 66.67% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 100 | | matches | | 0 | "Then, softer, as if the" | | 1 | "Then Evan exhaled, a sound" |
| | ratio | 0.02 | |
| 88.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 100 | | matches | | 0 | "She exhaled, watching her breath" | | 1 | "His hazel eyes flicked up" | | 2 | "She tugged off her gloves," | | 3 | "She was about to ask" | | 4 | "She didn’t need to." | | 5 | "His gaze shifted past her," | | 6 | "He looked older—of course he" | | 7 | "His jaw was sharper now," | | 8 | "Her name on his lips" | | 9 | "She set the glass down" | | 10 | "She could feel Silas’s attention" | | 11 | "she said, her voice steady" | | 12 | "He didn’t flinch." | | 13 | "She had been here for" | | 14 | "He could have run into" | | 15 | "She could feel the weight" | | 16 | "He took the glass Silas" | | 17 | "She almost laughed." | | 18 | "*You look like hell*?" | | 19 | "*You look like the kind" |
| | ratio | 0.33 | |
| 85.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 100 | | matches | | 0 | "The green neon raven flickered" | | 1 | "She exhaled, watching her breath" | | 2 | "Silas was polishing a glass" | | 3 | "His hazel eyes flicked up" | | 4 | "Rory slid onto a stool," | | 5 | "She tugged off her gloves," | | 6 | "The crescent scar on her" | | 7 | "Silas set down the glass" | | 8 | "The amber liquid splashed into" | | 9 | "Rory wrapped her fingers around" | | 10 | "The bar was quiet for" | | 11 | "Rory took a slow sip," | | 12 | "She was about to ask" | | 13 | "Rory didn’t turn." | | 14 | "She didn’t need to." | | 15 | "The weight of the silence" | | 16 | "Silas’s fingers stilled on the" | | 17 | "His gaze shifted past her," | | 18 | "Rory took another sip, the" | | 19 | "Footsteps paused behind her." |
| | ratio | 0.75 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 100 | | matches | | 0 | "To face him." | | 1 | "To tell him—" |
| | ratio | 0.02 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 6 | | matches | | 0 | "The green neon raven flickered like a dying thought as Rory pushed through the door of the Nest, the evening’s chill clinging to her coat." | | 1 | "Inside, the air was thick with the scent of aged whiskey and the low hum of conversation—some hushed, some too loud, all of it blending into the kind of ambient…" | | 2 | "Silas was polishing a glass with the methodical precision of a man who had spent decades perfecting the art of looking busy while observing everything." | | 3 | "Rory took a slow sip, the whiskey burning a path down her throat, grounding her." | | 4 | "Five years had a way of etching lines into a person’s face, especially when those years were spent carrying the kind of weight that didn’t just disappear." | | 5 | "*You look like the kind of man who’s spent too many nights staring at the ceiling, wondering*?" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 2 | | matches | | 0 | "She jerked, her voice trembling despite her best efforts" | | 1 | "She swallowed, her throat tight" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 40 | | tagDensity | 0.025 | | leniency | 0.05 | | rawRatio | 0 | | effectiveRatio | 0 | |