| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said suddenly [suddenly]" |
| | dialogueSentences | 35 | | tagDensity | 0.257 | | leniency | 0.514 | | rawRatio | 0.111 | | effectiveRatio | 0.057 | |
| 76.19% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1050 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slightly" | | 1 | "really" | | 2 | "suddenly" |
| |
| 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) | |
| 38.10% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1050 | | totalAiIsms | 13 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | word | "carried the weight" | | count | 1 |
|
| | highlights | | 0 | "flickered" | | 1 | "weight" | | 2 | "silence" | | 3 | "familiar" | | 4 | "intensity" | | 5 | "stomach" | | 6 | "traced" | | 7 | "carried the weight" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "hung in the air" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "hung in the air" | | 1 | "sent a jolt through" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 76 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 76 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 105 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 4 | | totalWords | 1046 | | ratio | 0.004 | | matches | | 0 | "The Raven’s Nest" | | 1 | "Laila." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 15 | | wordCount | 859 | | uniqueNames | 7 | | maxNameDensity | 0.93 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Carter | 1 | | Raven | 1 | | London | 2 | | Prague | 1 | | Evan | 1 | | Blackwood | 1 | | Rory | 8 |
| | persons | | 0 | "Carter" | | 1 | "Raven" | | 2 | "Evan" | | 3 | "Blackwood" | | 4 | "Rory" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 53.85% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 2 | | matches | | 0 | "quite a laugh" | | 1 | "felt like a cage" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1046 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 105 | | matches | | 0 | "changed, that she changed, that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 21.79 | | std | 22.71 | | cv | 1.042 | | sampleLengths | | 0 | 101 | | 1 | 72 | | 2 | 17 | | 3 | 4 | | 4 | 71 | | 5 | 12 | | 6 | 14 | | 7 | 28 | | 8 | 23 | | 9 | 24 | | 10 | 6 | | 11 | 1 | | 12 | 13 | | 13 | 3 | | 14 | 14 | | 15 | 58 | | 16 | 7 | | 17 | 15 | | 18 | 2 | | 19 | 16 | | 20 | 11 | | 21 | 31 | | 22 | 20 | | 23 | 34 | | 24 | 7 | | 25 | 9 | | 26 | 68 | | 27 | 3 | | 28 | 16 | | 29 | 10 | | 30 | 68 | | 31 | 4 | | 32 | 3 | | 33 | 40 | | 34 | 9 | | 35 | 20 | | 36 | 3 | | 37 | 4 | | 38 | 17 | | 39 | 15 | | 40 | 26 | | 41 | 1 | | 42 | 3 | | 43 | 15 | | 44 | 6 | | 45 | 55 | | 46 | 33 | | 47 | 14 |
| |
| 96.03% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 76 | | matches | | 0 | "was streaked" | | 1 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 146 | | matches | | |
| 61.22% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 105 | | ratio | 0.029 | | matches | | 0 | "Not after the shift from hell—double-booked orders, a screaming customer, and the ever-present hum of London traffic grinding her nerves to dust." | | 1 | "Rory studied him—the lines around his eyes, the way his shoulders carried the weight of years she hadn’t been there to see." | | 2 | "She pushed the thought away, focusing on the present—the hum of the bar, the scent of leather and old wood, the man in front of her who knew too much and not enough." |
| |
| 84.39% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 255 | | adjectiveStacks | 1 | | stackExamples | | 0 | "warm, whiskey-scented air." |
| | adverbCount | 13 | | adverbRatio | 0.050980392156862744 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.01568627450980392 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 105 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 105 | | mean | 9.96 | | std | 7.86 | | cv | 0.789 | | sampleLengths | | 0 | 20 | | 1 | 20 | | 2 | 4 | | 3 | 2 | | 4 | 22 | | 5 | 33 | | 6 | 14 | | 7 | 24 | | 8 | 11 | | 9 | 23 | | 10 | 17 | | 11 | 4 | | 12 | 22 | | 13 | 31 | | 14 | 18 | | 15 | 12 | | 16 | 4 | | 17 | 9 | | 18 | 1 | | 19 | 21 | | 20 | 2 | | 21 | 5 | | 22 | 16 | | 23 | 7 | | 24 | 3 | | 25 | 9 | | 26 | 9 | | 27 | 3 | | 28 | 4 | | 29 | 2 | | 30 | 1 | | 31 | 7 | | 32 | 6 | | 33 | 3 | | 34 | 13 | | 35 | 1 | | 36 | 7 | | 37 | 13 | | 38 | 9 | | 39 | 11 | | 40 | 18 | | 41 | 7 | | 42 | 11 | | 43 | 4 | | 44 | 2 | | 45 | 9 | | 46 | 7 | | 47 | 3 | | 48 | 8 | | 49 | 15 |
| |
| 64.76% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.4 | | totalSentences | 105 | | uniqueOpeners | 42 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 70 | | matches | | 0 | "Then, the ghost of a" | | 1 | "Instead, she said," | | 2 | "Instead, she asked," | | 3 | "Just watched her with those" |
| | ratio | 0.057 | |
| 65.71% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 70 | | matches | | 0 | "She shouldn’t have come." | | 1 | "She didn’t look up as" | | 2 | "He stood behind the bar," | | 3 | "His auburn hair was streaked" | | 4 | "she said, and her voice" | | 5 | "He slid a glass toward" | | 6 | "She didn’t argue." | | 7 | "she said, nodding toward the" | | 8 | "He leaned against the counter," | | 9 | "She should have known he’d" | | 10 | "he said suddenly" | | 11 | "Her hand flew to the" | | 12 | "She exhaled, a laugh that" | | 13 | "His mouth quirked." | | 14 | "She wanted to ask about" | | 15 | "He didn’t pretend not to" | | 16 | "He wasn’t the same man" | | 17 | "She shook her head." | | 18 | "She pushed the thought away," | | 19 | "She wanted to argue." |
| | ratio | 0.386 | |
| 81.43% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 70 | | matches | | 0 | "The neon sign above the" | | 1 | "Rory Carter hesitated on the" | | 2 | "She shouldn’t have come." | | 3 | "The door swung open with" | | 4 | "The bar was half-full, the" | | 5 | "Rory slipped inside, her boots" | | 6 | "She didn’t look up as" | | 7 | "Rory’s head snapped up." | | 8 | "He stood behind the bar," | | 9 | "His auburn hair was streaked" | | 10 | "The silver signet ring on" | | 11 | "she said, and her voice" | | 12 | "A beat of silence." | | 13 | "The name hung between them," | | 14 | "He slid a glass toward" | | 15 | "She didn’t argue." | | 16 | "The whiskey burned going down," | | 17 | "she said, nodding toward the" | | 18 | "He leaned against the counter," | | 19 | "A shadow passed over his" |
| | ratio | 0.757 | |
| 71.43% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 70 | | matches | | 0 | "Before she’d had to run." |
| | ratio | 0.014 | |
| 37.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 5 | | matches | | 0 | "The bar was half-full, the usual mix of regulars hunched over their drinks and a few lost souls who’d wandered in off the street." | | 1 | "He wasn’t the same man who’d taught her how to pick a lock at seventeen, who’d slipped her notes in the dead of night when her father’s disapproval had felt lik…" | | 2 | "*Laila.* That’s what Evan had called her, in the beginning, before the pet names had turned into something uglier." | | 3 | "She pushed the thought away, focusing on the present—the hum of the bar, the scent of leather and old wood, the man in front of her who knew too much and not en…" | | 4 | "Wanted to tell him that everything had changed, that she had changed, that the girl who’d idolized him, who’d followed him into half-baked schemes and late-nigh…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 35 | | tagDensity | 0.229 | | leniency | 0.457 | | rawRatio | 0 | | effectiveRatio | 0 | |