| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 64 | | tagDensity | 0.344 | | leniency | 0.688 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 91.41% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1747 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slightly" | | 1 | "really" | | 2 | "slowly" |
| |
| 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) | |
| 85.69% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1747 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "weight" | | 1 | "stomach" | | 2 | "traced" | | 3 | "structure" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 81 | | matches | (empty) | |
| 72.31% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 81 | | filterMatches | | | hedgeMatches | | 0 | "tried to" | | 1 | "tended to" | | 2 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 123 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 76 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1742 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 26 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 1203 | | uniqueNames | 15 | | maxNameDensity | 0.33 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Aurora | 1 | | Golden | 1 | | Empress | 1 | | Lucien | 4 | | Moreau | 2 | | Rory | 1 | | Yu-Fei | 1 | | Welsh | 1 | | Eva | 1 | | Brick | 1 | | Lane | 1 | | Ptolemy | 1 | | Cardiff | 1 | | French | 1 | | Evan | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Rory" | | 4 | "Eva" | | 5 | "Ptolemy" | | 6 | "Evan" |
| | places | | 0 | "Golden" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Cardiff" | | 4 | "French" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 51 | | glossingSentenceCount | 1 | | matches | | 0 | "as if asking permission from the air" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.574 | | wordCount | 1742 | | matches | | 0 | "not to threaten, but to show her the way his hand had gone white around the handl" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 123 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 66 | | mean | 26.39 | | std | 27.8 | | cv | 1.053 | | sampleLengths | | 0 | 75 | | 1 | 86 | | 2 | 19 | | 3 | 4 | | 4 | 45 | | 5 | 4 | | 6 | 45 | | 7 | 5 | | 8 | 6 | | 9 | 24 | | 10 | 96 | | 11 | 72 | | 12 | 8 | | 13 | 36 | | 14 | 28 | | 15 | 6 | | 16 | 54 | | 17 | 1 | | 18 | 5 | | 19 | 70 | | 20 | 10 | | 21 | 36 | | 22 | 18 | | 23 | 11 | | 24 | 8 | | 25 | 6 | | 26 | 41 | | 27 | 5 | | 28 | 4 | | 29 | 29 | | 30 | 2 | | 31 | 6 | | 32 | 69 | | 33 | 83 | | 34 | 5 | | 35 | 2 | | 36 | 9 | | 37 | 113 | | 38 | 12 | | 39 | 7 | | 40 | 67 | | 41 | 9 | | 42 | 14 | | 43 | 3 | | 44 | 35 | | 45 | 79 | | 46 | 3 | | 47 | 10 | | 48 | 39 | | 49 | 16 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 81 | | matches | | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 190 | | matches | | 0 | "were arguing" | | 1 | "were checking" | | 2 | "were lying" | | 3 | "was memorizing" | | 4 | "were trying" | | 5 | "was standing" | | 6 | "was watching" |
| |
| 73.17% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 123 | | ratio | 0.024 | | matches | | 0 | "The light from her hallway fixture caught his face, the odd split of his eyes—one amber, one black—brighter than they had any right to be in the gray hour after midnight." | | 1 | "The books on her shelf, the half-finished mug of tea, the photograph of her mother in the Cardiff library—all of it seemed to fold toward the space between them." | | 2 | "But the cold from the hallway was pressing at her ankles, and the bruise on his face was too real, and the way he was standing there—wounded, waiting, unable to finish a sentence without her—was too much like the thing she had kept in a locked drawer." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 738 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.025745257452574527 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0040650406504065045 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 123 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 123 | | mean | 14.16 | | std | 13.41 | | cv | 0.947 | | sampleLengths | | 0 | 26 | | 1 | 8 | | 2 | 41 | | 3 | 14 | | 4 | 31 | | 5 | 41 | | 6 | 19 | | 7 | 4 | | 8 | 4 | | 9 | 41 | | 10 | 4 | | 11 | 7 | | 12 | 23 | | 13 | 15 | | 14 | 5 | | 15 | 6 | | 16 | 11 | | 17 | 13 | | 18 | 4 | | 19 | 24 | | 20 | 39 | | 21 | 19 | | 22 | 10 | | 23 | 55 | | 24 | 4 | | 25 | 13 | | 26 | 8 | | 27 | 25 | | 28 | 11 | | 29 | 4 | | 30 | 24 | | 31 | 6 | | 32 | 5 | | 33 | 23 | | 34 | 5 | | 35 | 21 | | 36 | 1 | | 37 | 4 | | 38 | 1 | | 39 | 51 | | 40 | 19 | | 41 | 7 | | 42 | 3 | | 43 | 18 | | 44 | 18 | | 45 | 12 | | 46 | 6 | | 47 | 11 | | 48 | 8 | | 49 | 3 |
| |
| 42.28% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3170731707317073 | | totalSentences | 123 | | uniqueOpeners | 39 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 14.29% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 70 | | matches | | 0 | "It was not the courier" | | 1 | "It was Lucien Moreau, standing" | | 2 | "He leaned on his ivory-handled" | | 3 | "His gaze moved from the" | | 4 | "She heard them as they" | | 5 | "She kept her voice flat" | | 6 | "She looked past him." | | 7 | "Her flat was small, but" | | 8 | "He lifted the cane slightly," | | 9 | "It was the kind of" | | 10 | "His jaw tightened, and he" | | 11 | "She didn’t soften" | | 12 | "He looked at her then," | | 13 | "She pressed her lips together" | | 14 | "she asked, because her voice" | | 15 | "Her stomach dropped." | | 16 | "She laughed, but it had" | | 17 | "He took a step closer" | | 18 | "His voice dropped, rough at" | | 19 | "She had not forgotten." |
| | ratio | 0.514 | |
| 17.14% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 62 | | totalSentences | 70 | | matches | | 0 | "The door opened on the" | | 1 | "It was not the courier" | | 2 | "It was Lucien Moreau, standing" | | 3 | "He leaned on his ivory-handled" | | 4 | "The light from her hallway" | | 5 | "His gaze moved from the" | | 6 | "The name came out low," | | 7 | "The words were stupid." | | 8 | "She heard them as they" | | 9 | "She kept her voice flat" | | 10 | "That was the Rory voice," | | 11 | "Something moved in his expression," | | 12 | "She looked past him." | | 13 | "The hallway was empty except" | | 14 | "Her flat was small, but" | | 15 | "This was not that." | | 16 | "This was her own door," | | 17 | "He lifted the cane slightly," | | 18 | "That was the worst line." | | 19 | "It was the kind of" |
| | ratio | 0.886 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 27.03% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 6 | | matches | | 0 | "It was Lucien Moreau, standing in the narrow hallway of her building with rain plastering his platinum hair to his forehead and his charcoal suit rumpled at the…" | | 1 | "His gaze moved from the door to her apron, her loose black hair, the small cut of her bare forearm, and then, with a care that was worse than anger, to the cres…" | | 2 | "He looked at her then, really looked, the way he had in the back of the hire car after the warehouse job, when the rain had been running in sheets down the wind…" | | 3 | "When she turned back, he was watching her as if she had done something dangerous." | | 4 | "He closed the distance slowly, one hand rising, then stopping, as if asking permission from the air." | | 5 | "He lifted his free hand to her face, not touching, just hovering, as if he had learned the weight of her after months of absence." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 3 | | fancyTags | | 0 | "She pressed (press)" | | 1 | "he agreed (agree)" | | 2 | "she whispered (whisper)" |
| | dialogueSentences | 64 | | tagDensity | 0.188 | | leniency | 0.375 | | rawRatio | 0.25 | | effectiveRatio | 0.094 | |