| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said finally [finally]" |
| | dialogueSentences | 42 | | tagDensity | 0.452 | | leniency | 0.905 | | rawRatio | 0.053 | | effectiveRatio | 0.048 | |
| 86.30% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1460 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | |
| 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) | |
| 93.15% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1460 | | totalAiIsms | 2 | | found | | | highlights | | |
| 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 | 1 | | narrationSentences | 69 | | matches | | |
| 80.75% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 69 | | filterMatches | | | hedgeMatches | | 0 | "managed to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 92 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 77 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1473 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 953 | | uniqueNames | 16 | | maxNameDensity | 0.94 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Tuesday | 2 | | Rory | 6 | | Eva | 7 | | Ivory | 1 | | Room | 1 | | Lucien | 9 | | Moreau | 3 | | Marseille | 1 | | Brick | 1 | | Lane | 1 | | Ready | 1 | | Ptolemy | 4 | | Simple | 1 | | Unarmored | 1 | | Aurora | 1 | | Carter | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Lucien" | | 3 | "Moreau" | | 4 | "Ptolemy" | | 5 | "Aurora" | | 6 | "Carter" |
| | places | | 0 | "Ivory" | | 1 | "Room" | | 2 | "Marseille" | | 3 | "Brick" | | 4 | "Lane" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | 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 | 1473 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 92 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 43 | | mean | 34.26 | | std | 30.93 | | cv | 0.903 | | sampleLengths | | 0 | 78 | | 1 | 9 | | 2 | 10 | | 3 | 65 | | 4 | 3 | | 5 | 13 | | 6 | 93 | | 7 | 23 | | 8 | 28 | | 9 | 17 | | 10 | 7 | | 11 | 70 | | 12 | 1 | | 13 | 30 | | 14 | 4 | | 15 | 1 | | 16 | 51 | | 17 | 23 | | 18 | 1 | | 19 | 86 | | 20 | 65 | | 21 | 14 | | 22 | 56 | | 23 | 7 | | 24 | 10 | | 25 | 51 | | 26 | 43 | | 27 | 74 | | 28 | 4 | | 29 | 4 | | 30 | 12 | | 31 | 42 | | 32 | 42 | | 33 | 39 | | 34 | 130 | | 35 | 83 | | 36 | 16 | | 37 | 8 | | 38 | 23 | | 39 | 64 | | 40 | 49 | | 41 | 14 | | 42 | 10 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 69 | | matches | (empty) | |
| 38.38% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 165 | | matches | | 0 | "was standing" | | 1 | "wasn't leaning" | | 2 | "was holding" | | 3 | "was doing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 92 | | ratio | 0.087 | | matches | | 0 | "Eva also had a sense of occasion and would never have knocked like that — three sharp raps, evenly spaced, patient as a metronome." | | 1 | "She considered it the way you consider jumping off a diving board — leaning over the edge, feeling the drop, deciding." | | 2 | "That was the first absurd thing she noticed — Lucien Moreau, who pressed his charcoal suits like they were treaty documents, stood dripping on the doormat with his collar darkened to black and rain beading on the sharp line of his jaw." | | 3 | "\"I said don't.\" Her voice cracked on the word, which was unforgivable, and she watched him flinch — actually flinch, a tightening around his mouth — and took a vicious little pleasure in it." | | 4 | "\"An elegant distinction.\" He stepped over the threshold, and the flat got smaller the way it always did when Lucien entered a room — not because he was large, but because he took up exactly as much space as he decided to." | | 5 | "He stood there dripping on the mat, and she realized he was doing the thing she'd watched him do a dozen times in negotiation rooms across the city — gathering himself, ordering his words, because Lucien Moreau never wasted a sentence." | | 6 | "\"Six weeks ago I'd have agreed with you.\" Lucien set the cane against the wall — actually set it down, which he never did, which meant he wanted his hands free, which meant some animal part of her brain woke up and started paying very close attention." | | 7 | "He reached for his cane, and she caught his sleeve — soaked wool, cold under her fingers — and said, \"The deadbolts are on the inside for a reason. Tonight you stay on this side of the door. We're going to talk about Evan, and then we're going to talk about the other thing, the thing you walked away from. Both. All of it.\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 670 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 18 | | adverbRatio | 0.026865671641791045 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005970149253731343 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 92 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 92 | | mean | 16.01 | | std | 15.71 | | cv | 0.981 | | sampleLengths | | 0 | 18 | | 1 | 4 | | 2 | 24 | | 3 | 32 | | 4 | 9 | | 5 | 6 | | 6 | 4 | | 7 | 29 | | 8 | 20 | | 9 | 1 | | 10 | 4 | | 11 | 11 | | 12 | 3 | | 13 | 13 | | 14 | 2 | | 15 | 53 | | 16 | 2 | | 17 | 2 | | 18 | 34 | | 19 | 23 | | 20 | 7 | | 21 | 21 | | 22 | 6 | | 23 | 2 | | 24 | 9 | | 25 | 7 | | 26 | 3 | | 27 | 42 | | 28 | 12 | | 29 | 13 | | 30 | 1 | | 31 | 12 | | 32 | 5 | | 33 | 13 | | 34 | 4 | | 35 | 1 | | 36 | 12 | | 37 | 27 | | 38 | 5 | | 39 | 7 | | 40 | 23 | | 41 | 1 | | 42 | 34 | | 43 | 12 | | 44 | 24 | | 45 | 16 | | 46 | 42 | | 47 | 22 | | 48 | 1 | | 49 | 14 |
| |
| 58.70% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.42391304347826086 | | totalSentences | 92 | | uniqueOpeners | 39 | |
| 58.48% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 57 | | matches | | 0 | "Then she slid the first" |
| | ratio | 0.018 | |
| 44.56% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 57 | | matches | | 0 | "she murmured to him" | | 1 | "She set the carton down" | | 2 | "She checked the peephole out" | | 3 | "He'd adjusted the ivory handle" | | 4 | "She considered it the way" | | 5 | "He was soaked." | | 6 | "He was holding it the" | | 7 | "She kept her hand on" | | 8 | "He absorbed that with a" | | 9 | "Her voice cracked on the" | | 10 | "she said finally, because she" | | 11 | "He stepped over the threshold," | | 12 | "He glanced at the books," | | 13 | "He didn't say it." | | 14 | "He stood there dripping on" | | 15 | "She'd once found that impressive." | | 16 | "he said at last" | | 17 | "He rose slowly." | | 18 | "Her voice came out steadier" | | 19 | "She was close to him" |
| | ratio | 0.439 | |
| 47.72% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 47 | | totalSentences | 57 | | matches | | 0 | "The knock came at half" | | 1 | "Eva had a key." | | 2 | "Eva also had a sense" | | 3 | "Rory stood in the kitchenette" | | 4 | "Ptolemy lifted his head from" | | 5 | "she murmured to him" | | 6 | "She set the carton down" | | 7 | "A shape at one hand" | | 8 | "She checked the peephole out" | | 9 | "He'd adjusted the ivory handle" | | 10 | "Rory considered, briefly, not opening" | | 11 | "She considered it the way" | | 12 | "The third, because Eva's paranoia" | | 13 | "The door opened, and there" | | 14 | "He was soaked." | | 15 | "That was the first absurd" | | 16 | "The cane was in his" | | 17 | "He was holding it the" | | 18 | "She kept her hand on" | | 19 | "He absorbed that with a" |
| | ratio | 0.825 | |
| 87.72% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 57 | | matches | | 0 | "Because of you, she didn't" |
| | ratio | 0.018 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 1 | | matches | | 0 | "That was the first absurd thing she noticed — Lucien Moreau, who pressed his charcoal suits like they were treaty documents, stood dripping on the doormat with …" |
| |
| 98.68% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 1 | | matches | | 0 | "She kept, ready to close it" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 42 | | tagDensity | 0.19 | | leniency | 0.381 | | rawRatio | 0.125 | | effectiveRatio | 0.048 | |