| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 1 | | adverbTags | | 0 | "She laughed once [once]" |
| | dialogueSentences | 45 | | tagDensity | 0.533 | | leniency | 1 | | rawRatio | 0.042 | | effectiveRatio | 0.042 | |
| 94.76% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1907 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 60.67% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1907 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "pulse" | | 1 | "trembled" | | 2 | "footsteps" | | 3 | "calibrated" | | 4 | "echo" | | 5 | "crystal" | | 6 | "flickered" | | 7 | "traced" | | 8 | "silence" | | 9 | "comfortable" | | 10 | "glinting" | | 11 | "throbbed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 0 | | maxInWindow | 0 | | found | (empty) | | highlights | (empty) | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 190 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 190 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 208 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 13 | | markdownWords | 27 | | totalWords | 1891 | | ratio | 0.014 | | matches | | 0 | "purpose" | | 1 | "Limey" | | 2 | "with him" | | 3 | "At least I’m not selling souls in a boardroom." | | 4 | "Unsent" | | 5 | "I’m sorry" | | 6 | "I missed you" | | 7 | "something" | | 8 | "dead" | | 9 | "Rory girl" | | 10 | "loss" | | 11 | "I’m sorry" | | 12 | "Grief" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 29 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 130 | | wordCount | 1544 | | uniqueNames | 23 | | maxNameDensity | 3.17 | | worstName | "Rory" | | maxWindowNameDensity | 6 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 48 | | Cardiff | 2 | | London | 1 | | Clapham | 1 | | Evan | 2 | | Easter | 1 | | Rory | 49 | | Raven | 2 | | Nest | 1 | | Golden | 1 | | Empress | 1 | | Macallan | 1 | | Ibiza | 1 | | Silas | 4 | | Eurasian | 1 | | Guerlain | 1 | | Carter | 1 | | Keats | 1 | | Year | 1 | | Seven | 1 | | Saw | 3 | | Brendan | 2 | | Like | 4 |
| | persons | | 0 | "Eva" | | 1 | "Evan" | | 2 | "Rory" | | 3 | "Raven" | | 4 | "Silas" | | 5 | "Carter" | | 6 | "Keats" | | 7 | "Brendan" |
| | places | | 0 | "Cardiff" | | 1 | "London" | | 2 | "Ibiza" | | 3 | "Year" |
| | globalScore | 0 | | windowScore | 0 | |
| 9.55% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 89 | | glossingSentenceCount | 5 | | matches | | 0 | "looked like it had been drawn with a rule" | | 1 | "felt like an echo" | | 2 | "not quite touching Rory’s but close enough to cast a shadow" | | 3 | "sounded like an apology" | | 4 | "felt like shelter and Eva’s kindness st" |
| |
| 94.24% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.058 | | wordCount | 1891 | | matches | | 0 | "not out of nerves, but habit" | | 1 | "not quite touching Rory’s but close enough to cast a shadow" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 208 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 78 | | mean | 24.24 | | std | 19.28 | | cv | 0.795 | | sampleLengths | | 0 | 83 | | 1 | 4 | | 2 | 82 | | 3 | 68 | | 4 | 30 | | 5 | 41 | | 6 | 13 | | 7 | 8 | | 8 | 27 | | 9 | 58 | | 10 | 64 | | 11 | 17 | | 12 | 29 | | 13 | 65 | | 14 | 36 | | 15 | 10 | | 16 | 37 | | 17 | 10 | | 18 | 45 | | 19 | 22 | | 20 | 30 | | 21 | 31 | | 22 | 24 | | 23 | 21 | | 24 | 9 | | 25 | 39 | | 26 | 4 | | 27 | 21 | | 28 | 27 | | 29 | 42 | | 30 | 8 | | 31 | 24 | | 32 | 5 | | 33 | 44 | | 34 | 7 | | 35 | 4 | | 36 | 22 | | 37 | 27 | | 38 | 25 | | 39 | 3 | | 40 | 9 | | 41 | 13 | | 42 | 30 | | 43 | 4 | | 44 | 61 | | 45 | 1 | | 46 | 24 | | 47 | 22 | | 48 | 21 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 190 | | matches | | 0 | "been drawn" | | 1 | "been buried" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 274 | | matches | | 0 | "was already standing" | | 1 | "was wiping" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 208 | | ratio | 0.063 | | matches | | 0 | "Not ever Eva—her oldest friend, the one who’d plucked her from Cardiff’s damp streets and dropped her into London’s thrumming pulse, the one who’d let her crumple on the bathroom floor of that shitty Clapham flat after Evan’s fists split her lip seven years ago." | | 1 | "Eva’s perfume hit first—warm, sophisticated, something spicy with a hint of leather—before her shadow stretched across the worn parquet of The Raven’s Nest." | | 2 | "The faintest limp in Eva’s gait—no, not a limp." | | 3 | "Even her lips—full, always full, but now lined with the faintest scarlet tint, deliberate as a warning." | | 4 | "Rory wiped her palms on her jeans, not out of nerves, but habit—old scars itching to surface." | | 5 | "Rory recognised the amber in the glass—Macallan." | | 6 | "The old mirrors behind the bar still held fragments of their past—Eva’s laugh in crooked letters, Rory’s scrawl on napkins half-soaked in cheap lager." | | 7 | "The old man—still solid as an oak, grey-streaked auburn beard neatly trimmed, his hazel eyes sharp as broken glass—gave her a barely perceptible nod." | | 8 | "“I was. Brussels. Milan. Places with better suitcase space and worse coffee.” Eva leaned in, close enough that Rory caught the scent of that expensive perfume again—something Eurasian by Guerlain, Rory knew from a client’s review years back." | | 9 | "That was Eva all over—vague, strategic, comfortable with the discomfort of others." | | 10 | "She stared at the amber liquid in her pint glass—flat now, lifeless." | | 11 | "Saw her father’s hands—large, veined, always trembling slightly." | | 12 | "Eva checked her watch—a designer piece with a face that glowed like a spaceship control panel." |
| |
| 97.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 875 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.04342857142857143 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.004571428571428572 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 208 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 208 | | mean | 9.09 | | std | 8.69 | | cv | 0.956 | | sampleLengths | | 0 | 22 | | 1 | 2 | | 2 | 45 | | 3 | 14 | | 4 | 4 | | 5 | 23 | | 6 | 17 | | 7 | 3 | | 8 | 2 | | 9 | 28 | | 10 | 9 | | 11 | 5 | | 12 | 1 | | 13 | 35 | | 14 | 12 | | 15 | 15 | | 16 | 7 | | 17 | 9 | | 18 | 5 | | 19 | 9 | | 20 | 1 | | 21 | 9 | | 22 | 2 | | 23 | 29 | | 24 | 13 | | 25 | 8 | | 26 | 24 | | 27 | 3 | | 28 | 32 | | 29 | 5 | | 30 | 16 | | 31 | 3 | | 32 | 1 | | 33 | 1 | | 34 | 5 | | 35 | 7 | | 36 | 16 | | 37 | 19 | | 38 | 17 | | 39 | 3 | | 40 | 2 | | 41 | 2 | | 42 | 2 | | 43 | 8 | | 44 | 24 | | 45 | 5 | | 46 | 17 | | 47 | 48 | | 48 | 12 | | 49 | 4 |
| |
| 54.49% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 20 | | diversityRatio | 0.38461538461538464 | | totalSentences | 208 | | uniqueOpeners | 80 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 133 | | matches | | 0 | "Then the voice, lower than" | | 1 | "Even her lips—full, always full," | | 2 | "Instead, she caught Silas’s eye" | | 3 | "Just two old ghosts deciding" | | 4 | "Then Eva’s hand withdrew." |
| | ratio | 0.038 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 133 | | matches | | 0 | "She didn’t turn." | | 1 | "She’d learned, over years of" | | 2 | "She could afford a second" | | 3 | "She’d simply pulled one up," | | 4 | "Her face was different too." | | 5 | "She didn’t tell Eva the" | | 6 | "She stopped, exhaled through her" | | 7 | "She laughed once, sharp" | | 8 | "It was impossible to tell." | | 9 | "They’d been buried under layers" | | 10 | "She’d deleted the first three." | | 11 | "They settled like ash." | | 12 | "She stared at the amber" | | 13 | "He placed a fresh napkin" | | 14 | "She’d called Eva from a" | | 15 | "They’d sat on the roof" | | 16 | "She wouldn’t have." | | 17 | "Their fingers brushed." | | 18 | "They were seventeen again, sneaking" | | 19 | "She looked up." |
| | ratio | 0.15 | |
| 95.34% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 97 | | totalSentences | 133 | | matches | | 0 | "The door swung open with" | | 1 | "The one who still texted" | | 2 | "Eva’s perfume hit first—warm, sophisticated," | | 3 | "Rory’s fingers tightened around the" | | 4 | "She didn’t turn." | | 5 | "She’d learned, over years of" | | 6 | "She could afford a second" | | 7 | "Eva’s laugh was louder now." | | 8 | "Eva had never had to" | | 9 | "She’d simply pulled one up," | | 10 | "Rory exhaled through her nose," | | 11 | "The pint glass trembled when" | | 12 | "The damn thing was half-full." | | 13 | "The faintest limp in Eva’s" | | 14 | "Eva stood there, framed by" | | 15 | "This was deliberate." | | 16 | "Her face was different too." | | 17 | "The girl Rory had shared" | | 18 | "This woman had sculpted cheekbones" | | 19 | "Eva tilted her head, studied" |
| | ratio | 0.729 | |
| 37.59% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 133 | | matches | | 0 | "Now Eva’s hand moved across" |
| | ratio | 0.008 | |
| 97.26% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 3 | | matches | | 0 | "She’d learned, over years of running and hiding and pretending the past was just a ghost that tapped her shoulder now and then, that hesitation was a currency." | | 1 | "Eva stood there, framed by the green neon glow of the Raven’s sign, her dark hair now shorter and styled in a sleek, angled bob that caught the light like a bla…" | | 2 | "Eva checked her watch—a designer piece with a face that glowed like a spaceship control panel." |
| |
| 62.50% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 3 | | matches | | 0 | "Eva said, voice dropping, conspiratorial," | | 1 | "She laughed once, sharp" | | 2 | "Eva said, voice softening just enough to slide a knife between ribs" |
| |
| 38.89% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 5 | | fancyTags | | 0 | "She didn’t (do)" | | 1 | "Eva teased (tease)" | | 2 | "She laughed once (laugh)" | | 3 | "Rory corrected (correct)" | | 4 | "Rory whispered (whisper)" |
| | dialogueSentences | 45 | | tagDensity | 0.378 | | leniency | 0.756 | | rawRatio | 0.294 | | effectiveRatio | 0.222 | |