| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 63 | | tagDensity | 0.222 | | leniency | 0.444 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 87.61% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1614 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | | 2 | | | 3 | | adverb | "barely above a whisper" | | count | 1 |
|
| | highlights | | 0 | "quickly" | | 1 | "completely" | | 2 | "really" | | 3 | "barely above a whisper" |
| |
| 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) | |
| 75.22% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1614 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "measured" | | 1 | "intensity" | | 2 | "profound" | | 3 | "silence" | | 4 | "weight" | | 5 | "effortless" | | 6 | "trembled" | | 7 | "whisper" |
| |
| 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 | 0 | | narrationSentences | 97 | | matches | (empty) | |
| 83.95% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 97 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 144 | | 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 | 0 | | markdownWords | 0 | | totalWords | 1626 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 1179 | | uniqueNames | 14 | | maxNameDensity | 0.59 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Ptolemy" | | discoveredNames | | Eva | 2 | | Moreau | 1 | | Accented | 1 | | Marseille | 3 | | Ptolemy | 6 | | Lucien | 7 | | Cardiff | 1 | | Silence | 1 | | Aurora | 7 | | Brick | 1 | | Lane | 1 | | Home | 1 | | London | 1 | | Swallowed | 1 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Lucien" | | 4 | "Aurora" |
| | places | | 0 | "Marseille" | | 1 | "Cardiff" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 66 | | 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.615 | | wordCount | 1626 | | matches | | 0 | "not a single crease out of place, but something in the set of his jaw undermined the immaculate pr" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 144 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 70 | | mean | 23.23 | | std | 20.42 | | cv | 0.879 | | sampleLengths | | 0 | 44 | | 1 | 77 | | 2 | 23 | | 3 | 18 | | 4 | 44 | | 5 | 4 | | 6 | 24 | | 7 | 1 | | 8 | 55 | | 9 | 43 | | 10 | 63 | | 11 | 29 | | 12 | 22 | | 13 | 5 | | 14 | 49 | | 15 | 15 | | 16 | 3 | | 17 | 6 | | 18 | 30 | | 19 | 2 | | 20 | 5 | | 21 | 61 | | 22 | 11 | | 23 | 49 | | 24 | 3 | | 25 | 3 | | 26 | 10 | | 27 | 34 | | 28 | 22 | | 29 | 3 | | 30 | 60 | | 31 | 5 | | 32 | 3 | | 33 | 1 | | 34 | 2 | | 35 | 48 | | 36 | 16 | | 37 | 31 | | 38 | 4 | | 39 | 7 | | 40 | 6 | | 41 | 51 | | 42 | 4 | | 43 | 17 | | 44 | 6 | | 45 | 21 | | 46 | 12 | | 47 | 48 | | 48 | 2 | | 49 | 46 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 97 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 208 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 144 | | ratio | 0.063 | | matches | | 0 | "Aurora pulled the door open without checking the peephole — Eva had always been the paranoid one, not her — and the words she'd prepared died somewhere in her throat." | | 1 | "Not because she wanted to — because standing that close to him while rain dripped off his coat and his mismatched eyes held that particular intensity was more than she could process without a full night's sleep and several pints." | | 2 | "His gaze swept the room — the towers of books, the scrolls curled on every available surface, Ptolemy's tabby form stretched across a stack of research papers on the sofa." | | 3 | "He took up more room than his frame should have allowed — or maybe that was just the memory of him, the way he'd once filled every corner of her life until she'd had to claw her way back to herself." | | 4 | "His voice had dropped to that register she recognized — the one that preceded violence, the one that made his eyes go flat and cold." | | 5 | "Aurora laughed — short, sharp, not entirely humourless." | | 6 | "When she sat on the sofa — displacing Ptolemy, who yawned and relocated to the armrest — she left enough room for him to sit." | | 7 | "She'd forgotten how he did that — made elegance look effortless even in moments of discomfort." | | 8 | "\"Because I spent three months in a realm made of shadows and fire, and the only thing that kept me sane was knowing you were here. Safe. Alive.\" He looked at her then, and his eyes held something she'd never seen in them before — something raw and unguarded." |
| |
| 92.21% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 975 | | adjectiveStacks | 1 | | stackExamples | | 0 | "same low, measured cadence" |
| | adverbCount | 41 | | adverbRatio | 0.04205128205128205 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.011282051282051283 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 144 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 144 | | mean | 11.29 | | std | 9.67 | | cv | 0.856 | | sampleLengths | | 0 | 14 | | 1 | 30 | | 2 | 20 | | 3 | 25 | | 4 | 8 | | 5 | 24 | | 6 | 16 | | 7 | 1 | | 8 | 1 | | 9 | 5 | | 10 | 7 | | 11 | 11 | | 12 | 6 | | 13 | 16 | | 14 | 22 | | 15 | 4 | | 16 | 15 | | 17 | 3 | | 18 | 6 | | 19 | 1 | | 20 | 2 | | 21 | 11 | | 22 | 3 | | 23 | 39 | | 24 | 3 | | 25 | 40 | | 26 | 12 | | 27 | 30 | | 28 | 21 | | 29 | 17 | | 30 | 3 | | 31 | 9 | | 32 | 13 | | 33 | 9 | | 34 | 5 | | 35 | 8 | | 36 | 41 | | 37 | 14 | | 38 | 1 | | 39 | 3 | | 40 | 6 | | 41 | 2 | | 42 | 14 | | 43 | 12 | | 44 | 2 | | 45 | 2 | | 46 | 3 | | 47 | 2 | | 48 | 6 | | 49 | 28 |
| |
| 65.05% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.4236111111111111 | | totalSentences | 144 | | uniqueOpeners | 61 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 83 | | matches | | 0 | "Just her name, and still" | | 1 | "Unconsciously, her hand drifted toward" | | 2 | "Then he shifted on the" |
| | ratio | 0.036 | |
| 36.87% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 38 | | totalSentences | 83 | | matches | | 0 | "His charcoal suit looked freshly" | | 1 | "His voice carried that same" | | 2 | "She moved to shut the" | | 3 | "His cane shot out, the" | | 4 | "She shoved against the cane" | | 5 | "He didn't budge." | | 6 | "She hated that." | | 7 | "She stepped back." | | 8 | "His gaze swept the room" | | 9 | "He set his cane against" | | 10 | "He took up more room" | | 11 | "She moved to the kitchen" | | 12 | "She used to spend hours" | | 13 | "His voice came from closer" | | 14 | "He'd moved to the counter" | | 15 | "His head tilted, studying her" | | 16 | "She caught herself, forced her" | | 17 | "His voice had dropped to" | | 18 | "She'd only seen it once," | | 19 | "She still remembered how quickly" |
| | ratio | 0.458 | |
| 50.36% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 83 | | matches | | 0 | "The third deadbolt resisted before" | | 1 | "Aurora pulled the door open" | | 2 | "Lucien Moreau stood in the" | | 3 | "His charcoal suit looked freshly" | | 4 | "Rain beaded on the shoulders" | | 5 | "Water dripped from the ends" | | 6 | "His voice carried that same" | | 7 | "Aurora's fingers tightened around the" | | 8 | "She moved to shut the" | | 9 | "His cane shot out, the" | | 10 | "The gesture was so fluid," | | 11 | "She shoved against the cane" | | 12 | "He didn't budge." | | 13 | "She hated that." | | 14 | "She stepped back." | | 15 | "Lucien entered the flat like" | | 16 | "His gaze swept the room" | | 17 | "The cat lifted his head," | | 18 | "He set his cane against" | | 19 | "A deliberate choice." |
| | ratio | 0.819 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 83 | | matches | (empty) | | ratio | 0 | |
| 48.87% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 5 | | matches | | 0 | "Water dripped from the ends of his platinum hair, which had escaped its usual slicked-back order to fall across his forehead in damp strands." | | 1 | "Hated how he could strip everything down to two syllables and make her feel nineteen again, stupid and brave and standing in a Marseille doorway with a man who …" | | 2 | "Aurora busied herself with mugs, with tea bags, with anything that meant she didn't have to look at him standing in Eva's living room like he belonged there." | | 3 | "She covered it by taking a sip of tea that was still too hot, letting it burn her tongue." | | 4 | "Ptolemy stretched and leapt onto Lucien's lap, settling there with the casual ownership of a cat who had decided this human belonged to him." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 63 | | tagDensity | 0.016 | | leniency | 0.032 | | rawRatio | 1 | | effectiveRatio | 0.032 | |