| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 1 | | adverbTags | | 0 | "Eva looked away: [away]" |
| | dialogueSentences | 35 | | tagDensity | 0.286 | | leniency | 0.571 | | rawRatio | 0.1 | | effectiveRatio | 0.057 | |
| 93.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1522 | | 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) | |
| 63.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1522 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "shimmered" | | 1 | "traced" | | 2 | "lilt" | | 3 | "furrowed" | | 4 | "silence" | | 5 | "flicked" | | 6 | "echo" | | 7 | "racing" | | 8 | "flickered" | | 9 | "flicker" | | 10 | "familiar" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "knuckles turned white" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 67 | | matches | | 0 | "a flicker of empathy" | | 1 | "d with regret" |
| |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 67 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 93 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1504 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 57 | | wordCount | 811 | | uniqueNames | 12 | | maxNameDensity | 2.84 | | worstName | "Eva" | | maxWindowNameDensity | 5 | | worstWindowName | "Eva" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Aurora | 22 | | Carter | 1 | | Tuesday | 1 | | Welsh | 1 | | Cardiff | 2 | | Llewellyn | 1 | | Eva | 23 | | Buzzcocks | 1 | | Silas | 2 | | Evan | 1 |
| | persons | | 0 | "Raven" | | 1 | "Aurora" | | 2 | "Carter" | | 3 | "Llewellyn" | | 4 | "Eva" | | 5 | "Silas" | | 6 | "Evan" |
| | places | | | globalScore | 0.082 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 56 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.665 | | wordCount | 1504 | | matches | | 0 | "Not as those girls, but as who we are" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 93 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 43 | | mean | 34.98 | | std | 18.9 | | cv | 0.54 | | sampleLengths | | 0 | 89 | | 1 | 90 | | 2 | 5 | | 3 | 1 | | 4 | 39 | | 5 | 44 | | 6 | 25 | | 7 | 32 | | 8 | 30 | | 9 | 23 | | 10 | 36 | | 11 | 27 | | 12 | 43 | | 13 | 29 | | 14 | 9 | | 15 | 36 | | 16 | 29 | | 17 | 46 | | 18 | 24 | | 19 | 46 | | 20 | 57 | | 21 | 28 | | 22 | 32 | | 23 | 18 | | 24 | 20 | | 25 | 19 | | 26 | 41 | | 27 | 50 | | 28 | 34 | | 29 | 7 | | 30 | 8 | | 31 | 44 | | 32 | 49 | | 33 | 21 | | 34 | 62 | | 35 | 38 | | 36 | 37 | | 37 | 35 | | 38 | 34 | | 39 | 57 | | 40 | 56 | | 41 | 13 | | 42 | 41 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 67 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 145 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 93 | | ratio | 0.075 | | matches | | 0 | "The name spun through the dust-lit air with the old Welsh lilt she’d heard a thousand nights growing up, running races across windswept Cardiff schoolyards—except now there was grit in it, and the voice folded the years together strangely." | | 1 | "Eva Llewellyn—or whatever remained of her." | | 2 | "Aurora’s gaze caught the smudge of ink at Eva’s wrist—a new tattoo, letters knotted in a script Aurora didn’t know." | | 3 | "Silence swept in—a thick, humming pause, punctuated by a Buzzcocks track lurking beneath the conversation swirl." | | 4 | "He nodded toward Eva, as if to say—go on, don’t waste tonight on secrets." | | 5 | "A thin surge of laughter—almost involuntary—escaped Aurora, ragged and shaky." | | 6 | "She stood, walking to the bar with her shoulders straighter, and Aurora watched the way her old friend became something new beneath the uneasy light—familiar and unfamiliar, layered with regret, memory, and the heavy, flickering distance that only time could weave." |
| |
| 98.33% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 692 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.04190751445086705 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.0072254335260115606 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 93 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 93 | | mean | 16.17 | | std | 12.4 | | cv | 0.767 | | sampleLengths | | 0 | 9 | | 1 | 15 | | 2 | 13 | | 3 | 25 | | 4 | 27 | | 5 | 20 | | 6 | 11 | | 7 | 32 | | 8 | 27 | | 9 | 5 | | 10 | 1 | | 11 | 39 | | 12 | 2 | | 13 | 6 | | 14 | 11 | | 15 | 13 | | 16 | 12 | | 17 | 12 | | 18 | 13 | | 19 | 8 | | 20 | 24 | | 21 | 10 | | 22 | 20 | | 23 | 12 | | 24 | 11 | | 25 | 21 | | 26 | 4 | | 27 | 11 | | 28 | 7 | | 29 | 9 | | 30 | 11 | | 31 | 3 | | 32 | 15 | | 33 | 4 | | 34 | 21 | | 35 | 22 | | 36 | 7 | | 37 | 7 | | 38 | 2 | | 39 | 16 | | 40 | 7 | | 41 | 13 | | 42 | 11 | | 43 | 18 | | 44 | 46 | | 45 | 8 | | 46 | 16 | | 47 | 46 | | 48 | 9 | | 49 | 29 |
| |
| 70.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.43010752688172044 | | totalSentences | 93 | | uniqueOpeners | 40 | |
| 51.28% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 65 | | matches | | 0 | "Instead, Eva’s mouth scrunched into" |
| | ratio | 0.015 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 14 | | totalSentences | 65 | | matches | | 0 | "She traced the rim of" | | 1 | "Her body, once coltishly tall" | | 2 | "She’d already dropped onto the" | | 3 | "She couldn’t help it." | | 4 | "Her tongue pressed at the" | | 5 | "She settled on neither." | | 6 | "His hazel eyes flicked from" | | 7 | "She studied Aurora’s face, finding" | | 8 | "Her words dropped off like" | | 9 | "He caught Aurora’s gaze, a" | | 10 | "He nodded toward Eva, as" | | 11 | "Her voice ground down, quieter" | | 12 | "She let her eyes drift" | | 13 | "She stood, walking to the" |
| | ratio | 0.215 | |
| 21.54% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 57 | | totalSentences | 65 | | matches | | 0 | "Night pressed against the windows" | | 1 | "London mist curled and faded" | | 2 | "Lines of lamplight caught the" | | 3 | "The hum of conversation fizzled" | | 4 | "Aurora Carter pressed her shoulder" | | 5 | "The collar of her battered" | | 6 | "She traced the rim of" | | 7 | "The Tuesday night crowd looked" | | 8 | "The name spun through the" | | 9 | "Eva Llewellyn—or whatever remained of" | | 10 | "Her body, once coltishly tall" | | 11 | "A deep line furrowed between" | | 12 | "Aurora blinked at her pint" | | 13 | "Eva let a laugh roll" | | 14 | "She’d already dropped onto the" | | 15 | "Aurora’s gaze caught the smudge" | | 16 | "Eva drummed her knuckles against" | | 17 | "Aurora heard defensiveness curling each" | | 18 | "She couldn’t help it." | | 19 | "Eva jerked as if she’d" |
| | ratio | 0.877 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 65 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 1 | | matches | | 0 | "She traced the rim of a half-empty cider with her finger and stole glances at the dartboard, the tables, and, most persistently, the bookshelf that concealed th…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |