| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said again [again]" |
| | dialogueSentences | 61 | | tagDensity | 0.344 | | leniency | 0.689 | | rawRatio | 0.048 | | effectiveRatio | 0.033 | |
| 86.34% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1464 | | 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) | |
| 82.92% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1464 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "weight" | | 1 | "treacherous" | | 2 | "pulse" | | 3 | "could feel" |
| |
| 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 | 62 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 62 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 101 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 71 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1476 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 875 | | uniqueNames | 12 | | maxNameDensity | 1.26 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 3 | | Lucien | 9 | | Moreau | 1 | | Rory | 11 | | Ptolemy | 2 | | Realised | 1 | | Cardiff | 1 | | University | 1 | | Brick | 1 | | Lane | 1 | | One | 1 | | Camden | 1 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Rory" | | 4 | "Ptolemy" | | 5 | "One" |
| | places | | 0 | "Cardiff" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Camden" |
| | globalScore | 0.871 | | windowScore | 0.833 | |
| 89.02% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 1 | | matches | | 0 | "seemed unemployed he put them in his pockets" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1476 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 101 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 63 | | mean | 23.43 | | std | 29.1 | | cv | 1.242 | | sampleLengths | | 0 | 44 | | 1 | 22 | | 2 | 4 | | 3 | 65 | | 4 | 9 | | 5 | 37 | | 6 | 1 | | 7 | 1 | | 8 | 2 | | 9 | 45 | | 10 | 14 | | 11 | 8 | | 12 | 60 | | 13 | 7 | | 14 | 50 | | 15 | 92 | | 16 | 4 | | 17 | 47 | | 18 | 2 | | 19 | 4 | | 20 | 7 | | 21 | 41 | | 22 | 34 | | 23 | 6 | | 24 | 1 | | 25 | 5 | | 26 | 1 | | 27 | 85 | | 28 | 42 | | 29 | 7 | | 30 | 3 | | 31 | 1 | | 32 | 2 | | 33 | 145 | | 34 | 21 | | 35 | 4 | | 36 | 1 | | 37 | 5 | | 38 | 82 | | 39 | 10 | | 40 | 1 | | 41 | 3 | | 42 | 1 | | 43 | 5 | | 44 | 16 | | 45 | 73 | | 46 | 19 | | 47 | 2 | | 48 | 11 | | 49 | 21 |
| |
| 99.60% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 62 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 143 | | matches | | 0 | "was wearing" | | 1 | "was going" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 2 | | flaggedSentences | 7 | | totalSentences | 101 | | ratio | 0.069 | | matches | | 0 | "Rory worked it with her thumb, hip against the door, one bare foot braced on the skirting board, and thought — as she did every night — that Eva's paranoia was going to get someone killed in a fire." | | 1 | "Not fast, not threatening — just set, ivory handle nesting into the gap between door and frame with the ease of a man who had done this before and expected it to work." | | 2 | "Rory caught him with her foot and steered him back into the flat, and in the half-second of distraction Lucien was inside — not pushing past her, nothing so crude, just occupying the space she'd surrendered as though it had been offered." | | 3 | "It was already a shoebox — one bedroom, a kitchenette that could be crossed in two strides, every horizontal surface drifted over with Eva's research: photocopies of church records, a scroll unspooled across the sofa arm with a mug holding one end down, sticky notes fanned across the wall like scales on a fish." | | 4 | "One eye caught the streetlight and glowed amber; the other stayed a flat, drinking black." | | 5 | "Without it his hands seemed unemployed; he put them in his pockets." | | 6 | "Rory pulled her hand back before she did something stupid with it, and went to put the kettle on, and did not look at him, and knew — with the cool, clear, out-of-the-box efficiency that had got her through worse rooms than this one — that she'd already decided to forgive him, and that she was going to make him work for it anyway." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 873 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.033218785796105384 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.008018327605956471 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 101 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 101 | | mean | 14.61 | | std | 16.26 | | cv | 1.113 | | sampleLengths | | 0 | 5 | | 1 | 39 | | 2 | 10 | | 3 | 12 | | 4 | 4 | | 5 | 46 | | 6 | 9 | | 7 | 10 | | 8 | 9 | | 9 | 4 | | 10 | 33 | | 11 | 1 | | 12 | 1 | | 13 | 2 | | 14 | 11 | | 15 | 3 | | 16 | 8 | | 17 | 23 | | 18 | 7 | | 19 | 7 | | 20 | 8 | | 21 | 18 | | 22 | 42 | | 23 | 7 | | 24 | 43 | | 25 | 7 | | 26 | 8 | | 27 | 54 | | 28 | 16 | | 29 | 14 | | 30 | 4 | | 31 | 9 | | 32 | 24 | | 33 | 14 | | 34 | 2 | | 35 | 4 | | 36 | 7 | | 37 | 13 | | 38 | 28 | | 39 | 5 | | 40 | 24 | | 41 | 5 | | 42 | 6 | | 43 | 1 | | 44 | 5 | | 45 | 1 | | 46 | 12 | | 47 | 30 | | 48 | 9 | | 49 | 34 |
| |
| 62.05% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.39603960396039606 | | totalSentences | 101 | | uniqueOpeners | 40 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 50 | | matches | | 0 | "Then her brain caught up" | | 1 | "Then he crossed to the" | | 2 | "Then he took one hand" | | 3 | "Of course he could feel" |
| | ratio | 0.08 | |
| 52.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 50 | | matches | | 0 | "She'd expected the delivery driver" | | 1 | "She got Lucien Moreau." | | 2 | "He stood in the stairwell's" | | 3 | "It went warm instead, traitorously," | | 4 | "she said, and started to" | | 5 | "She leaned her weight on" | | 6 | "It didn't move." | | 7 | "He set his hat on" | | 8 | "It was already a shoebox" | | 9 | "He looked at the mess" | | 10 | "She folded her arms" | | 11 | "He had a beautiful mouth," | | 12 | "She hadn't meant to say" | | 13 | "It had been sitting behind" | | 14 | "He was still for a" | | 15 | "He set the cane against" | | 16 | "She didn't remember deciding to." | | 17 | "She stopped an arm's length" | | 18 | "His voice had dropped" | | 19 | "His mouth curved, faint, rueful," |
| | ratio | 0.42 | |
| 80.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 38 | | totalSentences | 50 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory worked it with her" | | 2 | "She'd expected the delivery driver" | | 3 | "She got Lucien Moreau." | | 4 | "He stood in the stairwell's" | | 5 | "It went warm instead, traitorously," | | 6 | "she said, and started to" | | 7 | "The cane came up." | | 8 | "She leaned her weight on" | | 9 | "It didn't move." | | 10 | "Rory caught him with her" | | 11 | "He set his hat on" | | 12 | "The flat felt smaller with" | | 13 | "It was already a shoebox" | | 14 | "Lucien stood in the middle" | | 15 | "He looked at the mess" | | 16 | "She folded her arms" | | 17 | "Rory laughed, and it came" | | 18 | "Lucien's mouth did something complicated." | | 19 | "He had a beautiful mouth," |
| | ratio | 0.76 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 50 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 8 | | matches | | 0 | "He stood in the stairwell's brown light with his hat in one hand and his cane in the other, rain beaded on the shoulders of a charcoal suit that had no business…" | | 1 | "Not fast, not threatening — just set, ivory handle nesting into the gap between door and frame with the ease of a man who had done this before and expected it t…" | | 2 | "Rory caught him with her foot and steered him back into the flat, and in the half-second of distraction Lucien was inside — not pushing past her, nothing so cru…" | | 3 | "It was already a shoebox — one bedroom, a kitchenette that could be crossed in two strides, every horizontal surface drifted over with Eva's research: photocopi…" | | 4 | "He had a beautiful mouth, which was one of a long list of things about him that Rory had decided to be furious about." | | 5 | "She stopped an arm's length from him, close enough to smell rain on wool and the faint smoke-and-bergamot thing that clung to him, and she thought about the fir…" | | 6 | "Then he took one hand out of his pocket and, very carefully, as though it might go off, turned her left wrist over and put his thumb on the small pale curve of …" | | 7 | "Rory pulled her hand back before she did something stupid with it, and went to put the kettle on, and did not look at him, and knew — with the cool, clear, out-…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 61 | | tagDensity | 0.197 | | leniency | 0.393 | | rawRatio | 0.083 | | effectiveRatio | 0.033 | |