| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 80 | | tagDensity | 0.225 | | leniency | 0.45 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1481 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 42.61% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1481 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "flicked" | | 1 | "weight" | | 2 | "calculating" | | 3 | "glinting" | | 4 | "eyebrow" | | 5 | "silence" | | 6 | "flickered" | | 7 | "tension" | | 8 | "stomach" |
| |
| 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 | 134 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 134 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 191 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 7 | | markdownWords | 7 | | totalWords | 1471 | | ratio | 0.005 | | matches | | 0 | "thunk" | | 1 | "retire" | | 2 | "above" | | 3 | "exactly" | | 4 | "she" | | 5 | "Carter" | | 6 | "You" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 60 | | wordCount | 1046 | | uniqueNames | 16 | | maxNameDensity | 1.82 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 19 | | Raven | 1 | | Nest | 1 | | Blackwood | 1 | | Prague | 2 | | Golden | 1 | | Empress | 1 | | Evan | 2 | | Silas | 19 | | Berlin | 1 | | Beirut | 1 | | Eastern | 1 | | European | 1 | | Cardiff | 1 | | Didn | 5 | | Anika | 3 |
| | persons | | 0 | "Rory" | | 1 | "Nest" | | 2 | "Blackwood" | | 3 | "Evan" | | 4 | "Silas" | | 5 | "Anika" |
| | places | | 0 | "Raven" | | 1 | "Prague" | | 2 | "Berlin" | | 3 | "Beirut" | | 4 | "Cardiff" |
| | globalScore | 0.592 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 1 | | matches | | 0 | "appeared in front of Rory" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1471 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 191 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 76 | | mean | 19.36 | | std | 17.25 | | cv | 0.891 | | sampleLengths | | 0 | 54 | | 1 | 42 | | 2 | 6 | | 3 | 91 | | 4 | 13 | | 5 | 66 | | 6 | 39 | | 7 | 9 | | 8 | 19 | | 9 | 38 | | 10 | 13 | | 11 | 21 | | 12 | 8 | | 13 | 45 | | 14 | 22 | | 15 | 42 | | 16 | 9 | | 17 | 1 | | 18 | 45 | | 19 | 5 | | 20 | 1 | | 21 | 6 | | 22 | 10 | | 23 | 21 | | 24 | 12 | | 25 | 58 | | 26 | 7 | | 27 | 19 | | 28 | 17 | | 29 | 22 | | 30 | 25 | | 31 | 4 | | 32 | 15 | | 33 | 48 | | 34 | 5 | | 35 | 3 | | 36 | 38 | | 37 | 8 | | 38 | 2 | | 39 | 18 | | 40 | 15 | | 41 | 30 | | 42 | 16 | | 43 | 47 | | 44 | 17 | | 45 | 9 | | 46 | 10 | | 47 | 10 | | 48 | 38 | | 49 | 14 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 134 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 183 | | matches | | |
| 38.15% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 2 | | flaggedSentences | 7 | | totalSentences | 191 | | ratio | 0.037 | | matches | | 0 | "The scent hit first—bergamot and gun oil, the same damn cologne he’d worn since she was sixteen." | | 1 | "A ghost with a silver signet ring, glinting as he lifted his own glass—neat, no ice, because of course he still took it like medicine." | | 2 | "“You look…” His hazel eyes flicked over her—black hair longer than he’d ever allowed, the delivery jacket with the Golden Empress logo peeling at the edges, the crescent scar on her wrist peeking out from under her sleeve." | | 3 | "“Or what? You’ll revoke my membership?” She gestured at the room—the maps yellowed with age, the photographs of places that didn’t exist anymore, the green neon sign outside that only ever flickered when someone interesting walked in." | | 4 | "Silas flagged down the bartender—a silent lift of two fingers—and a fresh whiskey appeared in front of Rory." | | 5 | "“Does it?” Rory glanced at the photographs on the wall—a street in Berlin, 1989; a café in Beirut, 1993; a bridge in Prague, 2001." | | 6 | "She had a face like a blade—sharp cheekbones, darker skin, eyes that missed nothing." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1056 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 42 | | adverbRatio | 0.03977272727272727 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.004734848484848485 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 191 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 191 | | mean | 7.7 | | std | 6.76 | | cv | 0.877 | | sampleLengths | | 0 | 11 | | 1 | 15 | | 2 | 22 | | 3 | 6 | | 4 | 5 | | 5 | 17 | | 6 | 13 | | 7 | 7 | | 8 | 6 | | 9 | 5 | | 10 | 19 | | 11 | 9 | | 12 | 16 | | 13 | 23 | | 14 | 19 | | 15 | 7 | | 16 | 6 | | 17 | 25 | | 18 | 3 | | 19 | 6 | | 20 | 26 | | 21 | 6 | | 22 | 38 | | 23 | 1 | | 24 | 5 | | 25 | 4 | | 26 | 5 | | 27 | 10 | | 28 | 4 | | 29 | 9 | | 30 | 23 | | 31 | 6 | | 32 | 5 | | 33 | 8 | | 34 | 9 | | 35 | 12 | | 36 | 6 | | 37 | 2 | | 38 | 37 | | 39 | 8 | | 40 | 5 | | 41 | 4 | | 42 | 1 | | 43 | 12 | | 44 | 14 | | 45 | 19 | | 46 | 3 | | 47 | 6 | | 48 | 5 | | 49 | 4 |
| |
| 61.08% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.38219895287958117 | | totalSentences | 191 | | uniqueOpeners | 73 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 7 | | totalSentences | 116 | | matches | | 0 | "Then the weight of his" | | 1 | "Just leaned against the bar," | | 2 | "Just watched the amber liquid" | | 3 | "Just picked up his glass" | | 4 | "Somewhere in the back, a" | | 5 | "Instead, her hands were steady" | | 6 | "Somewhere in the distance, a" |
| | ratio | 0.06 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 116 | | matches | | 0 | "It hit the bar with" | | 1 | "She didn’t need to turn." | | 2 | "His auburn hair had surrendered" | | 3 | "He didn’t sit." | | 4 | "His hazel eyes flicked over" | | 5 | "She laughed, sharp and humourless." | | 6 | "His voice dropped" | | 7 | "She turned fully toward him," | | 8 | "She gestured at the room—the" | | 9 | "He exhaled through his nose." | | 10 | "She didn’t thank him." | | 11 | "He finally turned to face" | | 12 | "His signet ring tapped against" | | 13 | "She swallowed it like punishment." | | 14 | "She jerked her chin toward" | | 15 | "She drained the glass" | | 16 | "His thumb brushed the scar" | | 17 | "His grip was warm." | | 18 | "He let go." | | 19 | "She watched his face" |
| | ratio | 0.276 | |
| 54.83% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 94 | | totalSentences | 116 | | matches | | 0 | "The glass slipped through Rory’s" | | 1 | "It hit the bar with" | | 2 | "The bartender’s scowl lasted exactly" | | 3 | "Someone important had just walked" | | 4 | "She didn’t need to turn." | | 5 | "The scent hit first—bergamot and" | | 6 | "The air in The Raven’s" | | 7 | "The voice was the same." | | 8 | "Silas Blackwood had been a" | | 9 | "His auburn hair had surrendered" | | 10 | "Rory wiped her palm on" | | 11 | "A ghost with a silver" | | 12 | "He didn’t sit." | | 13 | "The one he’d never talk" | | 14 | "His hazel eyes flicked over" | | 15 | "She laughed, sharp and humourless." | | 16 | "Silas took a slow sip." | | 17 | "The ice in his glass" | | 18 | "The name landed like a" | | 19 | "Rory’s fingers twitched toward the" |
| | ratio | 0.81 | |
| 43.10% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 116 | | matches | | | ratio | 0.009 | |
| 60.44% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 3 | | matches | | 0 | "Rough-edged, the vowels clipped just so, like he’d spent too many years biting back words that wanted to escape." | | 1 | "Rory reached for it, tapped her cigarette free of its filter, and lit it with hands that didn’t shake." | | 2 | "She had a face like a blade—sharp cheekbones, darker skin, eyes that missed nothing." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 80 | | tagDensity | 0.013 | | leniency | 0.025 | | rawRatio | 0 | | effectiveRatio | 0 | |