| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 45 | | adverbTagCount | 9 | | adverbTags | | 0 | "she remembered like [like]" | | 1 | "she said quietly [quietly]" | | 2 | "she asked instead [instead]" | | 3 | "He looked away [away]" | | 4 | "He stood abruptly [abruptly]" | | 5 | "Rory's hand moved instinctively [instinctively]" | | 6 | "Li said carefully [carefully]" | | 7 | "he said quickly [quickly]" | | 8 | "Ash said quietly [quietly]" |
| | dialogueSentences | 90 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.2 | | effectiveRatio | 0.2 | |
| 88.86% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1795 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "slightly" | | 1 | "really" | | 2 | "carefully" | | 3 | "quickly" |
| |
| 80.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 55.43% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1795 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "methodical" | | 1 | "efficient" | | 2 | "weight" | | 3 | "reminder" | | 4 | "familiar" | | 5 | "lilt" | | 6 | "silk" | | 7 | "raced" | | 8 | "sentinel" | | 9 | "flicked" | | 10 | "whisper" | | 11 | "footsteps" | | 12 | "unreadable" | | 13 | "scanning" |
| |
| 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 | 1 | | narrationSentences | 114 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 114 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 153 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1778 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 63.04% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 79 | | wordCount | 1380 | | uniqueNames | 24 | | maxNameDensity | 1.74 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 24 | | Golden | 1 | | Empress | 1 | | Chen | 3 | | Small | 1 | | Rhodes | 1 | | Scholarship | 1 | | Complicated | 1 | | London | 1 | | Silas | 5 | | Evan | 1 | | Maya | 15 | | Li | 5 | | Irish | 1 | | Welsh | 1 | | You | 1 | | Since | 1 | | Ash | 8 | | Underbaggage | 1 | | Yu-Fei | 1 | | Let | 1 | | Through | 2 | | Raven | 1 | | Nest | 1 |
| | persons | | 0 | "Rory" | | 1 | "Empress" | | 2 | "Chen" | | 3 | "Silas" | | 4 | "Evan" | | 5 | "Maya" | | 6 | "Li" | | 7 | "You" | | 8 | "Ash" | | 9 | "Raven" | | 10 | "Nest" |
| | places | | | globalScore | 0.63 | | windowScore | 0.667 | |
| 83.33% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 75 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like he'd been carved from slate a" | | 1 | "appeared beside her, his presence like a shadow filling a corner" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1778 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 153 | | matches | | 0 | "learned that jokes" | | 1 | "understand that whatever" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 95 | | mean | 18.72 | | std | 15.69 | | cv | 0.838 | | sampleLengths | | 0 | 75 | | 1 | 1 | | 2 | 41 | | 3 | 1 | | 4 | 15 | | 5 | 57 | | 6 | 15 | | 7 | 37 | | 8 | 3 | | 9 | 54 | | 10 | 2 | | 11 | 24 | | 12 | 26 | | 13 | 25 | | 14 | 10 | | 15 | 15 | | 16 | 43 | | 17 | 4 | | 18 | 21 | | 19 | 1 | | 20 | 2 | | 21 | 39 | | 22 | 4 | | 23 | 8 | | 24 | 14 | | 25 | 13 | | 26 | 42 | | 27 | 6 | | 28 | 24 | | 29 | 2 | | 30 | 11 | | 31 | 8 | | 32 | 39 | | 33 | 49 | | 34 | 5 | | 35 | 24 | | 36 | 8 | | 37 | 13 | | 38 | 49 | | 39 | 6 | | 40 | 26 | | 41 | 18 | | 42 | 7 | | 43 | 52 | | 44 | 6 | | 45 | 21 | | 46 | 10 | | 47 | 20 | | 48 | 3 | | 49 | 1 |
| |
| 92.95% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 114 | | matches | | 0 | "been carved" | | 1 | "being used" | | 2 | "was broken" | | 3 | "are meant" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 260 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 153 | | ratio | 0.098 | | matches | | 0 | "Three months of working nights at Golden Empress had taught her to move through this space like water finding its level—quiet, efficient, never drawing attention." | | 1 | "When he finally looked up, his eyes—those sharp, intelligent eyes that used to sparkle with the same mischief Rory remembered from their university days—held something hard now." | | 2 | "Maya had been a golden child—straight A's, Rhodes Scholarship, plans to become a human rights lawyer." | | 3 | "There it was—that dangerous edge in his voice, the way his fingers drummed against his knee." | | 4 | "Rory had built a life in the six years they'd been apart—moving back to London, working at the restaurant, living above Silas's bar, trying to forget the way Evan had broken her." | | 5 | "Rory's mind raced—Maya's family had been tight-knit, her sister Li waiting tables at their parents' Chinese restaurant while Maya studied law." | | 6 | "For family. The words curled around something deep in Rory's chest. Her own family—the Irish barrister father, the Welsh teacher mother who'd died when Rory was sixteen, leaving her with that damn scar from falling down the stairs while trying to reach the top shelf of their kitchen cupboard." | | 7 | "Rory studied him—the way his jaw worked when he was thinking, the way his thumb rubbed against the scar on his lip, the way he held himself like a coiled spring ready to snap. This wasn't her Maya. This was someone who'd been through fire and come back changed." | | 8 | "The honesty in his voice made her heart hammer against her ribs. She remembered this boy—the one who'd stayed up all night helping her study for exams, who'd held her hair back after she'd drunk too much at their final year party, who'd cried when their dog died and she'd comforted him." | | 9 | "Maya blinked, confused for a moment. Then he laughed—a real laugh, the one that used to fill their dorm rooms. \"What?\"" | | 10 | "Rory turned to see him holding a newspaper—today's edition, folded to the business section. The headline caught her eye: LOCAL BUSINESSMAN FOUND DEAD IN EAST LONDON WAREHOUSE. Below it, in smaller print: POLICE SUSPECT ORGANIZED CRIME INVOLVEMENT." | | 11 | "The threat hung in the air like cigarette smoke. Rory looked at Ash's face—really looked at it—and saw the weight of someone carrying stones he couldn't lift." | | 12 | "Rory watched as Ash's face softened, the hard lines seeming to melt away. For a moment, she saw them both—those girls from university, sitting in their dorm room, dreaming of changing the world." | | 13 | "Through the window, rain had begun to patter against the glass. The green neon sign of The Raven's Nest threw shifting colours across the wet pavement outside. Rory could hear the city breathing around them—cars, footsteps, the distant wail of sirens." | | 14 | "Rory touched her wrist again, feeling for that crescent moon of a scar. Time had taught her that some wounds never close—they just become part of who you are." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1241 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 48 | | adverbRatio | 0.038678485092667206 | | lyAdverbCount | 22 | | lyAdverbRatio | 0.017727639000805803 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 153 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 153 | | mean | 11.62 | | std | 10.39 | | cv | 0.894 | | sampleLengths | | 0 | 23 | | 1 | 25 | | 2 | 27 | | 3 | 1 | | 4 | 19 | | 5 | 10 | | 6 | 12 | | 7 | 1 | | 8 | 3 | | 9 | 2 | | 10 | 10 | | 11 | 20 | | 12 | 27 | | 13 | 10 | | 14 | 13 | | 15 | 2 | | 16 | 2 | | 17 | 17 | | 18 | 18 | | 19 | 3 | | 20 | 1 | | 21 | 1 | | 22 | 16 | | 23 | 11 | | 24 | 11 | | 25 | 14 | | 26 | 2 | | 27 | 11 | | 28 | 7 | | 29 | 6 | | 30 | 11 | | 31 | 8 | | 32 | 7 | | 33 | 16 | | 34 | 9 | | 35 | 5 | | 36 | 5 | | 37 | 12 | | 38 | 3 | | 39 | 1 | | 40 | 32 | | 41 | 10 | | 42 | 4 | | 43 | 7 | | 44 | 9 | | 45 | 5 | | 46 | 1 | | 47 | 2 | | 48 | 9 | | 49 | 21 |
| |
| 53.16% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.3660130718954248 | | totalSentences | 153 | | uniqueOpeners | 56 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 92 | | matches | (empty) | | ratio | 0 | |
| 93.91% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 92 | | matches | | 0 | "She looked up from the" | | 1 | "Her college roommate." | | 2 | "His voice was rougher than" | | 3 | "She set down the glass" | | 4 | "His expensive suit hung wrong" | | 5 | "She slid into the booth" | | 6 | "He tossed it onto the" | | 7 | "she said quietly" | | 8 | "He picked at a loose" | | 9 | "She'd thought Maya would be" | | 10 | "She'd always been the responsible" | | 11 | "I found both of them" | | 12 | "It means I'm not working" | | 13 | "You should know better than" | | 14 | "She did it to they're" | | 15 | "she asked instead" | | 16 | "He looked away, toward Silas" | | 17 | "She repeated it like a" | | 18 | "He stood abruptly, chair scraping" | | 19 | "He nodded toward Ash" |
| | ratio | 0.315 | |
| 68.70% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 72 | | totalSentences | 92 | | matches | | 0 | "The amber liquid in Rory's" | | 1 | "The weight of her crescent" | | 2 | "She looked up from the" | | 3 | "The gesture was so familiar" | | 4 | "Her college roommate." | | 5 | "The person who'd promised they'd" | | 6 | "Maya Chen sat alone at" | | 7 | "His voice was rougher than" | | 8 | "She set down the glass" | | 9 | "The bar's familiar scents of" | | 10 | "Maya had been a golden" | | 11 | "His expensive suit hung wrong" | | 12 | "The scar above his lip" | | 13 | "She slid into the booth" | | 14 | "The vinyl seat stuck to" | | 15 | "Maya's phone call ended with" | | 16 | "He tossed it onto the" | | 17 | "Something had shaped him into" | | 18 | "she said quietly" | | 19 | "He picked at a loose" |
| | ratio | 0.783 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 5 | | totalSentences | 92 | | matches | | 0 | "Even from behind, she could" | | 1 | "Now he looked like he'd" | | 2 | "because I needed to see" | | 3 | "Because of what we used" | | 4 | "Because now I finally understand" |
| | ratio | 0.054 | |
| 55.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 5 | | matches | | 0 | "When he finally looked up, his eyes—those sharp, intelligent eyes that used to sparkle with the same mischief Rory remembered from their university days—held so…" | | 1 | "Rory had built a life in the six years they'd been apart—moving back to London, working at the restaurant, living above Silas's bar, trying to forget the way Ev…" | | 2 | "For family. The words curled around something deep in Rory's chest. Her own family—the Irish barrister father, the Welsh teacher mother who'd died when Rory was…" | | 3 | "The honesty in his voice made her heart hammer against her ribs. She remembered this boy—the one who'd stayed up all night helping her study for exams, who'd he…" | | 4 | "Rory exchanged a glance with Silas, who was now leaning against the bar, arms crossed. The older man's expression was unreadable, but she could see the calculat…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 41 | | uselessAdditionCount | 1 | | matches | | 0 | "Rory stood, her chair legs scraping against the floor" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 90 | | tagDensity | 0.156 | | leniency | 0.311 | | rawRatio | 0.071 | | effectiveRatio | 0.022 | |