| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 19 | | tagDensity | 0.368 | | leniency | 0.737 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.67% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1396 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "lightly" | | 1 | "perfectly" | | 2 | "softly" |
| |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 92.84% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1396 | | totalAiIsms | 2 | | found | | 0 | | word | "down her spine" | | count | 1 |
| | 1 | |
| | highlights | | 0 | "down her spine" | | 1 | "perfect" |
| |
| 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 | 82 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 82 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 95 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 82 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1394 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 1074 | | uniqueNames | 11 | | maxNameDensity | 0.56 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Eva" | | discoveredNames | | Golden | 1 | | Empress | 1 | | Eva | 4 | | Moreau | 1 | | Evan | 2 | | Cardiff | 1 | | University | 1 | | Lucien | 6 | | Brick | 1 | | Lane | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Evan" | | 3 | "Lucien" | | 4 | "Ptolemy" |
| | places | | 0 | "Cardiff" | | 1 | "Brick" | | 2 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 73 | | 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 | 1394 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 95 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 51.63 | | std | 29.88 | | cv | 0.579 | | sampleLengths | | 0 | 106 | | 1 | 1 | | 2 | 68 | | 3 | 107 | | 4 | 63 | | 5 | 1 | | 6 | 41 | | 7 | 38 | | 8 | 63 | | 9 | 30 | | 10 | 70 | | 11 | 26 | | 12 | 88 | | 13 | 66 | | 14 | 28 | | 15 | 100 | | 16 | 34 | | 17 | 66 | | 18 | 69 | | 19 | 36 | | 20 | 49 | | 21 | 94 | | 22 | 27 | | 23 | 28 | | 24 | 53 | | 25 | 8 | | 26 | 34 |
| |
| 88.15% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 82 | | matches | | 0 | "is slicked" | | 1 | "carried" | | 2 | "being held" | | 3 | "being abandoned" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 169 | | matches | (empty) | |
| 82.71% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 1 | | flaggedSentences | 2 | | totalSentences | 95 | | ratio | 0.021 | | matches | | 0 | "One eye burns amber, the color of burnt honey; the other is deep, unyielding black." | | 1 | "“Not stalk. Watch.” He shifts closer, and she can smell his cologne again—sandalwood, cedar, the same scent that wrapped around her that night, when he’d sat on the fire escape of her flat above Silas’ bar and listened to her talk about her father, about growing up in Cardiff, about how she’d never wanted to be a barrister, never wanted the life her parents had mapped out for her." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 997 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 27 | | adverbRatio | 0.02708124373119358 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.004012036108324975 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 95 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 95 | | mean | 14.67 | | std | 11.69 | | cv | 0.797 | | sampleLengths | | 0 | 8 | | 1 | 13 | | 2 | 24 | | 3 | 28 | | 4 | 33 | | 5 | 1 | | 6 | 13 | | 7 | 33 | | 8 | 22 | | 9 | 12 | | 10 | 16 | | 11 | 10 | | 12 | 15 | | 13 | 4 | | 14 | 26 | | 15 | 24 | | 16 | 8 | | 17 | 10 | | 18 | 11 | | 19 | 18 | | 20 | 16 | | 21 | 1 | | 22 | 29 | | 23 | 6 | | 24 | 6 | | 25 | 15 | | 26 | 18 | | 27 | 5 | | 28 | 13 | | 29 | 12 | | 30 | 11 | | 31 | 9 | | 32 | 8 | | 33 | 6 | | 34 | 4 | | 35 | 15 | | 36 | 15 | | 37 | 23 | | 38 | 15 | | 39 | 18 | | 40 | 14 | | 41 | 6 | | 42 | 17 | | 43 | 3 | | 44 | 69 | | 45 | 19 | | 46 | 7 | | 47 | 18 | | 48 | 14 | | 49 | 27 |
| |
| 65.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.4 | | totalSentences | 95 | | uniqueOpeners | 38 | |
| 84.39% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 79 | | matches | | 0 | "Then he’d vanished, left a" | | 1 | "Just his voice, low and" |
| | ratio | 0.025 | |
| 17.47% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 79 | | matches | | 0 | "She dumps her frayed Golden" | | 1 | "Her shoulder-length black hair sticks" | | 2 | "She yanks the stained red" | | 3 | "He stands right in the" | | 4 | "His tailored charcoal suit, fabric" | | 5 | "They fix on her." | | 6 | "His right hand rests lightly" | | 7 | "She’d spent three months trying" | | 8 | "She slams the door shut," | | 9 | "Her grip slips on the" | | 10 | "He pushes off the windowsill," | | 11 | "His eyes never leave her" | | 12 | "He reaches into his suit" | | 13 | "It lands next to a" | | 14 | "Her old pre-law paperwork, the" | | 15 | "She’d forgotten all about that" | | 16 | "He shifts closer, and she" | | 17 | "His eyes flick back to" | | 18 | "He takes a step closer," | | 19 | "She sucks in a sharp" |
| | ratio | 0.506 | |
| 54.94% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 79 | | matches | | 0 | "The key turns three times" | | 1 | "Rory shoves the last deadbolt" | | 2 | "She dumps her frayed Golden" | | 3 | "Her shoulder-length black hair sticks" | | 4 | "She yanks the stained red" | | 5 | "The room glows with pale" | | 6 | "He stands right in the" | | 7 | "Ptolemy, Eva’s tabby cat, lifts" | | 8 | "Lucien Moreau leans against the" | | 9 | "His tailored charcoal suit, fabric" | | 10 | "Platinum blond hair is slicked" | | 11 | "They fix on her." | | 12 | "The black one flickers to" | | 13 | "His right hand rests lightly" | | 14 | "She’d spent three months trying" | | 15 | "Scrub the scent of sandalwood" | | 16 | "The word hangs in the" | | 17 | "She slams the door shut," | | 18 | "Her grip slips on the" | | 19 | "The words are sharp, edged" |
| | ratio | 0.81 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 79 | | matches | | 0 | "When he’s always polished, always" | | 1 | "Now, holding the jade pendant," |
| | ratio | 0.025 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 1 | | matches | | 0 | "He stands right in the clutter that makes Eva’s flat feel like home: stacks of weathered books teeter on the coffee table, scrolls tied with twine line the shel…" |
| |
| 53.57% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 1 | | matches | | 0 | "He steps, their chests inches apart" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |