| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 75 | | adverbTagCount | 4 | | adverbTags | | 0 | "Silas nodded once [once]" | | 1 | "He leaned back [back]" | | 2 | "You look like [like]" | | 3 | "She pulled back [back]" |
| | dialogueSentences | 120 | | tagDensity | 0.625 | | leniency | 1 | | rawRatio | 0.053 | | effectiveRatio | 0.053 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1477 | | 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) | |
| 32.30% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1477 | | totalAiIsms | 20 | | found | | | highlights | | 0 | "scanned" | | 1 | "gloom" | | 2 | "weight" | | 3 | "pulse" | | 4 | "velvet" | | 5 | "echoed" | | 6 | "tracing" | | 7 | "etched" | | 8 | "flicked" | | 9 | "silence" | | 10 | "traced" | | 11 | "dance" | | 12 | "unspoken" | | 13 | "flickered" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 200 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 200 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 215 | | 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 | 0 | | markdownWords | 0 | | totalWords | 1446 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 113 | | wordCount | 1080 | | uniqueNames | 43 | | maxNameDensity | 1.57 | | worstName | "Silas" | | maxWindowNameDensity | 4 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Golden | 2 | | Empress | 2 | | Soho | 1 | | Blackwood | 1 | | You | 6 | | Bombay | 1 | | Sapphire | 1 | | Pre-Law | 2 | | Cardiff | 3 | | Silas | 17 | | Jennifer | 1 | | Rory | 17 | | Carters | 1 | | Him | 1 | | Evan | 4 | | Said | 1 | | London | 2 | | Cheung | 1 | | Barstool | 1 | | Limp | 1 | | Cool-headed | 1 | | Mum | 4 | | Eva | 3 | | Brendan | 3 | | Dublin | 1 | | Da | 7 | | Avoid | 1 | | Craved | 1 | | Welsh | 2 | | Learn | 1 | | Bar | 3 | | Years | 1 | | Rattles | 1 | | Pushed | 2 | | Jukebox | 1 | | Knee | 2 | | Ring | 3 | | Conversation | 1 | | Dawn | 1 | | Gin | 3 | | Neon | 3 |
| | persons | | 0 | "Nest" | | 1 | "Empress" | | 2 | "Blackwood" | | 3 | "You" | | 4 | "Silas" | | 5 | "Jennifer" | | 6 | "Rory" | | 7 | "Evan" | | 8 | "Cheung" | | 9 | "Limp" | | 10 | "Mum" | | 11 | "Eva" | | 12 | "Brendan" | | 13 | "Da" | | 14 | "Bar" | | 15 | "Jukebox" | | 16 | "Knee" | | 17 | "Ring" | | 18 | "Conversation" | | 19 | "Dawn" | | 20 | "Gin" | | 21 | "Neon" |
| | places | | 0 | "Raven" | | 1 | "Golden" | | 2 | "Soho" | | 3 | "Cardiff" | | 4 | "London" | | 5 | "Dublin" | | 6 | "Welsh" | | 7 | "Years" |
| | globalScore | 0.713 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | 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 | 1446 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 215 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 83 | | mean | 17.42 | | std | 14.72 | | cv | 0.845 | | sampleLengths | | 0 | 74 | | 1 | 69 | | 2 | 46 | | 3 | 14 | | 4 | 2 | | 5 | 62 | | 6 | 20 | | 7 | 51 | | 8 | 37 | | 9 | 29 | | 10 | 41 | | 11 | 27 | | 12 | 37 | | 13 | 27 | | 14 | 49 | | 15 | 20 | | 16 | 28 | | 17 | 21 | | 18 | 18 | | 19 | 36 | | 20 | 26 | | 21 | 8 | | 22 | 16 | | 23 | 22 | | 24 | 19 | | 25 | 21 | | 26 | 14 | | 27 | 25 | | 28 | 20 | | 29 | 21 | | 30 | 10 | | 31 | 20 | | 32 | 12 | | 33 | 25 | | 34 | 16 | | 35 | 19 | | 36 | 8 | | 37 | 24 | | 38 | 12 | | 39 | 11 | | 40 | 22 | | 41 | 8 | | 42 | 11 | | 43 | 12 | | 44 | 13 | | 45 | 17 | | 46 | 5 | | 47 | 10 | | 48 | 10 | | 49 | 9 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 200 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 268 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 215 | | ratio | 0.065 | | matches | | 0 | "Dim light spilled from sconces bolted to walls papered in faded maps—yellowed charts of forgotten coasts, crisscrossed with pencil marks—and black-and-white photographs of stern faces staring out from another era." | | 1 | "Her delivery shift at Golden Empress had dragged—another night dodging cabs and drunks in Soho's snarl." | | 2 | "That voice—gravel wrapped in velvet—cut through years." | | 3 | "He slid the pint aside, abandoned it. Grabbed a bottle from the rail—Bombay Sapphire, her poison from uni nights. Poured neat, no ice, no tonic. Pushed it across. His limp echoed as he circled to her side of the bar, vaulted the hatch with a grunt that betrayed the old injury." | | 4 | "Eva's fault—her idea, London escape." | | 5 | "Rory traced a map's contour— jagged Welsh coast. \"Out." | | 6 | "\"Harder alone.\" He stood, limped to jukebox. Flipped coin. New track growled—raw guitar, lamenting vocals. Returned. \"Dance once?" | | 7 | "Rory rose. No music pulled them close—just sway in place, bar emptying. His limp brushed her step. Grey hair brushed her cheek." | | 8 | "Da's regret—pushing law." | | 9 | "Mine—dropping it." | | 10 | "Broke nose once—told coppers self-defense." | | 11 | "Contacts trickle—old ops, new whispers.\"" | | 12 | "Conversation flowed. Cardiff tales resurfaced—Da's barrister rants, Mum's Welsh hymns. Prague shadows hinted, never full. Evan's bruises faded in retell. Time's weight settled, heavy but shared." | | 13 | "She stood. Hugged quick—his beard tickled, ring pressed back." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 747 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 9 | | adverbRatio | 0.012048192771084338 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0013386880856760374 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 215 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 215 | | mean | 6.73 | | std | 6.4 | | cv | 0.951 | | sampleLengths | | 0 | 19 | | 1 | 2 | | 2 | 30 | | 3 | 23 | | 4 | 4 | | 5 | 13 | | 6 | 13 | | 7 | 13 | | 8 | 16 | | 9 | 3 | | 10 | 7 | | 11 | 15 | | 12 | 15 | | 13 | 5 | | 14 | 5 | | 15 | 6 | | 16 | 2 | | 17 | 12 | | 18 | 2 | | 19 | 3 | | 20 | 11 | | 21 | 4 | | 22 | 7 | | 23 | 2 | | 24 | 35 | | 25 | 15 | | 26 | 5 | | 27 | 51 | | 28 | 31 | | 29 | 3 | | 30 | 3 | | 31 | 23 | | 32 | 2 | | 33 | 4 | | 34 | 9 | | 35 | 21 | | 36 | 2 | | 37 | 9 | | 38 | 18 | | 39 | 9 | | 40 | 15 | | 41 | 3 | | 42 | 9 | | 43 | 4 | | 44 | 6 | | 45 | 15 | | 46 | 12 | | 47 | 5 | | 48 | 15 | | 49 | 8 |
| |
| 97.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.6325581395348837 | | totalSentences | 215 | | uniqueOpeners | 136 | |
| 71.43% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 140 | | matches | | 0 | "Bright blue eyes narrowed." | | 1 | "Just that you were" | | 2 | "Then the knee went." |
| | ratio | 0.021 | |
| 94.29% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 44 | | totalSentences | 140 | | matches | | 0 | "She scanned the room." | | 1 | "Her delivery shift at Golden" | | 2 | "She needed this." | | 3 | "He pivoted, glass foaming over." | | 4 | "Her pulse kicked." | | 5 | "She gripped the bar edge," | | 6 | "You own this place" | | 7 | "He slid the pint aside," | | 8 | "He pulled a stool close," | | 9 | "She snatched the gin, downed" | | 10 | "You screamed blue murder till" | | 11 | "He leaned back, signet ring" | | 12 | "Your da pulled strings." | | 13 | "She echoed the word, tasted" | | 14 | "Him legal cover, me the" | | 15 | "She swirled the gin, ice" | | 16 | "You look like you swallowed" | | 17 | "His laugh barked short." | | 18 | "She slammed the glass down." | | 19 | "He broke ribs once." |
| | ratio | 0.314 | |
| 92.14% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 103 | | totalSentences | 140 | | matches | | 0 | "Rory shoved the door to" | | 1 | "The air hung thick with" | | 2 | "She scanned the room." | | 3 | "A couple in the corner" | | 4 | "Rory claimed a stool at" | | 5 | "Her delivery shift at Golden" | | 6 | "She needed this." | | 7 | "The bartender shuffled forward, back" | | 8 | "He pivoted, glass foaming over." | | 9 | "Hazel eyes locked on hers." | | 10 | "Froth slopped onto the scarred" | | 11 | "Her pulse kicked." | | 12 | "That voice—gravel wrapped in velvet—cut" | | 13 | "She gripped the bar edge," | | 14 | "You own this place" | | 15 | "He slid the pint aside," | | 16 | "He pulled a stool close," | | 17 | "Pre-Law at Cardiff." | | 18 | "She snatched the gin, downed" | | 19 | "London swallowed the" |
| | ratio | 0.736 | |
| 71.43% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 140 | | matches | | 0 | "Now I sling chow mein" | | 1 | "Now parcels and" |
| | ratio | 0.014 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 17 | | technicalSentenceCount | 1 | | matches | | 0 | "He slid the pint aside, abandoned it. Grabbed a bottle from the rail—Bombay Sapphire, her poison from uni nights. Poured neat, no ice, no tonic. Pushed it acros…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 47 | | uselessAdditionCount | 1 | | matches | | 0 | "She leaned in, voice dropping" |
| |
| 83.33% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 8 | | fancyTags | | 0 | "Brendan boasted (boast)" | | 1 | "You screamed (scream)" | | 2 | "His laugh barked (bark)" | | 3 | "Silas spat (spit)" | | 4 | "She barked (bark)" | | 5 | "Mum snapped (snap)" | | 6 | "Silas murmured (murmur)" | | 7 | "Silas chuckled (chuckle)" |
| | dialogueSentences | 120 | | tagDensity | 0.067 | | leniency | 0.133 | | rawRatio | 1 | | effectiveRatio | 0.133 | |