| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 89 | | tagDensity | 0.236 | | leniency | 0.472 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 91.77% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1822 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "carefully" | | 1 | "slowly" | | 2 | "lightly" |
| |
| 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) | |
| 69.81% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1822 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "flicker" | | 1 | "charm" | | 2 | "stark" | | 3 | "sense of" | | 4 | "grave" | | 5 | "could feel" | | 6 | "pulse" | | 7 | "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 | 1 | | narrationSentences | 140 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 140 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 208 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1821 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 36 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 68 | | wordCount | 1266 | | uniqueNames | 10 | | maxNameDensity | 1.9 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Rory" | | discoveredNames | | Lucien | 23 | | Moreau | 1 | | Eva | 6 | | Rory | 24 | | Ptolemy | 7 | | Golden | 1 | | Empress | 1 | | Brick | 1 | | Lane | 1 | | Silas | 3 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Rory" | | 4 | "Ptolemy" | | 5 | "Silas" |
| | places | | | globalScore | 0.552 | | windowScore | 0.333 | |
| 98.45% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 97 | | glossingSentenceCount | 2 | | matches | | 0 | "as though supervising a burglary" | | 1 | "sounded like Lucien" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1821 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 208 | | matches | | 0 | "answered that he’d" | | 1 | "enough that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 120 | | mean | 15.18 | | std | 15.35 | | cv | 1.011 | | sampleLengths | | 0 | 20 | | 1 | 45 | | 2 | 41 | | 3 | 3 | | 4 | 20 | | 5 | 4 | | 6 | 18 | | 7 | 5 | | 8 | 11 | | 9 | 6 | | 10 | 24 | | 11 | 7 | | 12 | 1 | | 13 | 70 | | 14 | 9 | | 15 | 7 | | 16 | 3 | | 17 | 17 | | 18 | 29 | | 19 | 16 | | 20 | 3 | | 21 | 6 | | 22 | 13 | | 23 | 10 | | 24 | 2 | | 25 | 62 | | 26 | 11 | | 27 | 10 | | 28 | 28 | | 29 | 5 | | 30 | 8 | | 31 | 3 | | 32 | 1 | | 33 | 7 | | 34 | 11 | | 35 | 56 | | 36 | 9 | | 37 | 6 | | 38 | 37 | | 39 | 4 | | 40 | 15 | | 41 | 7 | | 42 | 1 | | 43 | 2 | | 44 | 44 | | 45 | 7 | | 46 | 14 | | 47 | 5 | | 48 | 6 | | 49 | 16 |
| |
| 95.24% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 140 | | matches | | 0 | "been eleven" | | 1 | "been cramped" | | 2 | "were pinned" | | 3 | "been seen" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 241 | | matches | | 0 | "was already fading" | | 1 | "was holding" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 208 | | ratio | 0.005 | | matches | | 0 | "It didn’t make her any less aware of his hands, or of the kiss they’d shared the night before everything went wrong—his mouth warm against hers, his cane falling against her front door because neither of them had remembered it." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1271 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 39 | | adverbRatio | 0.03068450039339103 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.007081038552321007 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 208 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 208 | | mean | 8.75 | | std | 7.21 | | cv | 0.824 | | sampleLengths | | 0 | 20 | | 1 | 7 | | 2 | 38 | | 3 | 7 | | 4 | 7 | | 5 | 27 | | 6 | 3 | | 7 | 9 | | 8 | 6 | | 9 | 5 | | 10 | 4 | | 11 | 6 | | 12 | 7 | | 13 | 5 | | 14 | 5 | | 15 | 7 | | 16 | 4 | | 17 | 6 | | 18 | 11 | | 19 | 13 | | 20 | 7 | | 21 | 1 | | 22 | 19 | | 23 | 23 | | 24 | 19 | | 25 | 6 | | 26 | 3 | | 27 | 9 | | 28 | 7 | | 29 | 3 | | 30 | 6 | | 31 | 11 | | 32 | 15 | | 33 | 14 | | 34 | 9 | | 35 | 7 | | 36 | 3 | | 37 | 6 | | 38 | 5 | | 39 | 8 | | 40 | 3 | | 41 | 7 | | 42 | 2 | | 43 | 7 | | 44 | 11 | | 45 | 14 | | 46 | 8 | | 47 | 6 | | 48 | 16 | | 49 | 11 |
| |
| 44.71% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.2692307692307692 | | totalSentences | 208 | | uniqueOpeners | 56 | |
| 81.97% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 122 | | matches | | 0 | "Once, she might have mistaken" | | 1 | "Then she pushed the receipt" | | 2 | "Then she thought of his" |
| | ratio | 0.025 | |
| 29.84% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 58 | | totalSentences | 122 | | matches | | 0 | "His ivory-handled cane rested against" | | 1 | "He looked as though he’d" | | 2 | "His amber eye caught the" | | 3 | "She began to close the" | | 4 | "It had been eleven weeks" | | 5 | "It had looked ordinary until" | | 6 | "She’d scrubbed until her skin" | | 7 | "It hadn’t shifted." | | 8 | "He wound between Rory’s ankles," | | 9 | "It was a careful answer." | | 10 | "He crossed the threshold without" | | 11 | "She closed the door and" | | 12 | "He held the paper beneath" | | 13 | "His mouth tightened." | | 14 | "He looked at the mark" | | 15 | "She could still hear him" | | 16 | "He lowered the receipt." | | 17 | "Her small crescent scar, pale" | | 18 | "She turned off the tap." | | 19 | "He took that without protest." |
| | ratio | 0.475 | |
| 17.38% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 108 | | totalSentences | 122 | | matches | | 0 | "Rory opened the third deadbolt" | | 1 | "The curry house downstairs sent" | | 2 | "Lucien’s platinum hair was still" | | 3 | "His ivory-handled cane rested against" | | 4 | "He looked as though he’d" | | 5 | "His amber eye caught the" | | 6 | "The black one gave nothing" | | 7 | "She began to close the" | | 8 | "Lucien didn’t put his foot" | | 9 | "That was what stopped her." | | 10 | "Rory kept one hand on" | | 11 | "Rory hated the flicker of" | | 12 | "It had been eleven weeks" | | 13 | "It had looked ordinary until" | | 14 | "She’d scrubbed until her skin" | | 15 | "It hadn’t shifted." | | 16 | "Lucien’s gaze dropped to her" | | 17 | "Rory folded it against the" | | 18 | "He wound between Rory’s ankles," | | 19 | "It was a careful answer." |
| | ratio | 0.885 | |
| 81.97% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 122 | | matches | | 0 | "By the time she reached" | | 1 | "Even now, when she needed" |
| | ratio | 0.016 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 51 | | technicalSentenceCount | 3 | | matches | | 0 | "The curry house downstairs sent up its usual warm fog of fried onions and cardamom, and somewhere behind Rory, Ptolemy made the small, demanding sound he reserv…" | | 1 | "He looked as though he’d stepped out of an expensive car rather than climbed three flights of damp stairs, except for the blood on his right cuff." | | 2 | "The circle had gone, leaving only a faint pink impression that was already fading." |
| |
| 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 | 17 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 89 | | tagDensity | 0.191 | | leniency | 0.382 | | rawRatio | 0.059 | | effectiveRatio | 0.022 | |