| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 74 | | tagDensity | 0.203 | | leniency | 0.405 | | rawRatio | 0.067 | | effectiveRatio | 0.027 | |
| 79.53% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2198 | | totalAiIsmAdverbs | 9 | | found | | | highlights | | 0 | "slowly" | | 1 | "loosely" | | 2 | "carefully" | | 3 | "perfectly" | | 4 | "very" | | 5 | "slightly" | | 6 | "softly" | | 7 | "really" |
| |
| 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) | |
| 63.60% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2198 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "silence" | | 1 | "vibrated" | | 2 | "pulse" | | 3 | "flicker" | | 4 | "warmth" | | 5 | "charm" | | 6 | "scripted" | | 7 | "weight" | | 8 | "reminder" | | 9 | "intensity" | | 10 | "familiar" |
| |
| 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 | 2 | | narrationSentences | 143 | | matches | | 0 | "A flicker of warmth" | | 1 | "t with anger" |
| |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 143 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 202 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2216 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 32 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1527 | | uniqueNames | 13 | | maxNameDensity | 0.92 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Deliveroo | 1 | | Thai | 1 | | Moreau | 2 | | Eva | 3 | | Jordan | 1 | | Ptolemy | 7 | | Lucien | 14 | | French | 1 | | Brick | 1 | | Lane | 1 | | Silence | 1 | | Sumerian | 1 | | Rory | 8 |
| | persons | | 0 | "Moreau" | | 1 | "Eva" | | 2 | "Ptolemy" | | 3 | "Lucien" | | 4 | "Rory" |
| | places | | | globalScore | 1 | | windowScore | 0.833 | |
| 60.71% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 84 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like a paper hurricane had swept t" | | 1 | "something close to alarm" | | 2 | "quite human" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 0.903 | | wordCount | 2216 | | matches | | 0 | "not something I should describe to you in detail, but it would have involved very little of my human half" | | 1 | "not waiting for you but the door's open if you come back" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 202 | | matches | | 0 | "hated that he" | | 1 | "hated that her" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 95 | | mean | 23.33 | | std | 27.05 | | cv | 1.16 | | sampleLengths | | 0 | 49 | | 1 | 96 | | 2 | 7 | | 3 | 9 | | 4 | 2 | | 5 | 57 | | 6 | 5 | | 7 | 4 | | 8 | 13 | | 9 | 62 | | 10 | 43 | | 11 | 77 | | 12 | 56 | | 13 | 6 | | 14 | 16 | | 15 | 16 | | 16 | 4 | | 17 | 35 | | 18 | 13 | | 19 | 51 | | 20 | 4 | | 21 | 10 | | 22 | 1 | | 23 | 69 | | 24 | 12 | | 25 | 31 | | 26 | 11 | | 27 | 1 | | 28 | 33 | | 29 | 6 | | 30 | 45 | | 31 | 11 | | 32 | 9 | | 33 | 38 | | 34 | 41 | | 35 | 11 | | 36 | 74 | | 37 | 21 | | 38 | 7 | | 39 | 6 | | 40 | 2 | | 41 | 33 | | 42 | 16 | | 43 | 1 | | 44 | 2 | | 45 | 17 | | 46 | 2 | | 47 | 14 | | 48 | 2 | | 49 | 129 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 143 | | matches | | 0 | "was slicked" | | 1 | "been broken" |
| |
| 68.77% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 254 | | matches | | 0 | "wasn't slowly driving" | | 1 | "was deciding" | | 2 | "wasn't making" | | 3 | "was resisting" | | 4 | "was, prying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 202 | | ratio | 0.054 | | matches | | 0 | "His platinum hair was slicked back from a face that belonged on a cathedral wall — half-saint, half-gargoyle — and those mismatched eyes, one amber, one black, found hers with an expression she couldn't name." | | 1 | "Rory had been staying here since Eva left for a dig in Jordan two weeks ago — feeding Ptolemy, watering the one surviving basil plant, pretending the clutter wasn't slowly driving her insane." | | 2 | "He stood near the door, both hands layered on his cane, and looked at her the way he always looked at her — like she was a locked room and he was deciding which pick to use." | | 3 | "She'd imagined this conversation a hundred times during the first two weeks — in the shower, during deliveries, staring at the water stain above her bed at her own flat." | | 4 | "For the first time in the year she'd known Lucien Moreau — fixer, information broker, man who could talk a demon into a discount and a saint into a card game — he seemed to struggle for language." | | 5 | "The composure she was so used to seeing cracked — a fracture running through stone — and she saw the thing beneath." | | 6 | "Evan had taught her that — the only useful thing he'd ever taught her." | | 7 | "Barely visible — a hitch in his chest, a flicker in his throat." | | 8 | "Not a smile — he didn't earn a smile yet — but the possibility of one." | | 9 | "She stared at the small crescent scar on her wrist and pressed her thumb to it again — not flinching this time, just touching, the way you touch a compass to remind yourself which way is north." | | 10 | "She turned and leaned against the counter again, and this time she let herself look at him — really look." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1164 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 37 | | adverbRatio | 0.03178694158075601 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.011168384879725086 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 202 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 202 | | mean | 10.97 | | std | 10.72 | | cv | 0.977 | | sampleLengths | | 0 | 9 | | 1 | 21 | | 2 | 19 | | 3 | 35 | | 4 | 5 | | 5 | 5 | | 6 | 16 | | 7 | 35 | | 8 | 7 | | 9 | 5 | | 10 | 2 | | 11 | 2 | | 12 | 2 | | 13 | 36 | | 14 | 7 | | 15 | 11 | | 16 | 3 | | 17 | 5 | | 18 | 4 | | 19 | 13 | | 20 | 8 | | 21 | 6 | | 22 | 34 | | 23 | 14 | | 24 | 12 | | 25 | 3 | | 26 | 2 | | 27 | 21 | | 28 | 5 | | 29 | 12 | | 30 | 6 | | 31 | 6 | | 32 | 11 | | 33 | 33 | | 34 | 9 | | 35 | 16 | | 36 | 3 | | 37 | 37 | | 38 | 6 | | 39 | 16 | | 40 | 16 | | 41 | 4 | | 42 | 35 | | 43 | 4 | | 44 | 3 | | 45 | 6 | | 46 | 3 | | 47 | 24 | | 48 | 10 | | 49 | 14 |
| |
| 44.88% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.31683168316831684 | | totalSentences | 202 | | uniqueOpeners | 64 | |
| 80.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 125 | | matches | | 0 | "Just a man standing in" | | 1 | "Barely visible — a hitch" | | 2 | "Somewhere in the building, a" |
| | ratio | 0.024 | |
| 50.40% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 53 | | totalSentences | 125 | | matches | | 0 | "She pulled the door open" | | 1 | "He looked exactly the same." | | 2 | "His platinum hair was slicked" | | 3 | "she said, and pushed the" | | 4 | "His cane caught the frame." | | 5 | "She kept her hand flat" | | 6 | "He was right, and they" | | 7 | "She hated that he was" | | 8 | "She hated the way rain" | | 9 | "She hated that her pulse" | | 10 | "She heard him enter behind" | | 11 | "He didn't touch the deadbolts." | | 12 | "She turned and leaned against" | | 13 | "He didn't sit." | | 14 | "He stood near the door," | | 15 | "She crushed it." | | 16 | "He looked down at the" | | 17 | "She hadn't expected that." | | 18 | "She'd imagined this conversation a" | | 19 | "She'd scripted devastating lines." |
| | ratio | 0.424 | |
| 48.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 103 | | totalSentences | 125 | | matches | | 0 | "The third deadbolt stuck the" | | 1 | "Rory had to lean her" | | 2 | "She pulled the door open" | | 3 | "Lucien Moreau stood on the" | | 4 | "He looked exactly the same." | | 5 | "That was the worst part." | | 6 | "His platinum hair was slicked" | | 7 | "she said, and pushed the" | | 8 | "His cane caught the frame." | | 9 | "She kept her hand flat" | | 10 | "The wood vibrated between them," | | 11 | "Ptolemy threaded between her ankles," | | 12 | "He was right, and they" | | 13 | "She hated that he was" | | 14 | "She hated the way rain" | | 15 | "She hated that her pulse" | | 16 | "Rory let go of the" | | 17 | "She heard him enter behind" | | 18 | "He didn't touch the deadbolts." | | 19 | "Eva's flat looked like a" |
| | ratio | 0.824 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 125 | | matches | (empty) | | ratio | 0 | |
| 74.18% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 5 | | matches | | 0 | "Lucien Moreau stood on the landing instead, one hand resting on the ivory head of his cane, rainwater darkening the shoulders of a charcoal suit that cost more …" | | 1 | "His platinum hair was slicked back from a face that belonged on a cathedral wall — half-saint, half-gargoyle — and those mismatched eyes, one amber, one black, …" | | 2 | "For the first time in the year she'd known Lucien Moreau — fixer, information broker, man who could talk a demon into a discount and a saint into a card game — …" | | 3 | "She could smell the rain on him now over the cardamom, sharp and green and cold, and underneath it the darker note of whatever ran in his blood that wasn't quit…" | | 4 | "Lucien in the chair with the cat on his lap and the books towering around him, out of place and entirely present, watching her with those impossible mismatched …" |
| |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 1 | | matches | | 0 | "black eye seemed, the pupil swallowing whatever light reached it" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | 0 | "she continued (continue)" |
| | dialogueSentences | 74 | | tagDensity | 0.108 | | leniency | 0.216 | | rawRatio | 0.125 | | effectiveRatio | 0.027 | |