| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 29 | | adverbTagCount | 2 | | adverbTags | | 0 | "His mouth slanted barely [barely]" | | 1 | "she said quietly [quietly]" |
| | dialogueSentences | 53 | | tagDensity | 0.547 | | leniency | 1 | | rawRatio | 0.069 | | effectiveRatio | 0.069 | |
| 87.44% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1592 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "quickly" | | 1 | "very" | | 2 | "gently" |
| |
| 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) | |
| 84.30% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1592 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "velvet" | | 1 | "flicked" | | 2 | "stomach" | | 3 | "pulse" | | 4 | "familiar" |
| |
| 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 | 80 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 80 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 104 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 92 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1580 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 950 | | uniqueNames | 12 | | maxNameDensity | 0.63 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 1 | | Cardiff | 1 | | Moreau | 1 | | Turkish | 1 | | Hanbury | 1 | | Street | 1 | | Frenchman | 1 | | Ptolemy | 3 | | Rory | 6 | | Soho | 1 | | French | 1 | | Avaros | 1 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Frenchman" | | 3 | "Ptolemy" | | 4 | "Rory" |
| | places | | 0 | "Cardiff" | | 1 | "Turkish" | | 2 | "Hanbury" | | 3 | "Street" | | 4 | "Soho" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | 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 | 1580 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 104 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 30.98 | | std | 30.26 | | cv | 0.977 | | sampleLengths | | 0 | 74 | | 1 | 14 | | 2 | 77 | | 3 | 4 | | 4 | 29 | | 5 | 16 | | 6 | 30 | | 7 | 69 | | 8 | 17 | | 9 | 14 | | 10 | 1 | | 11 | 89 | | 12 | 77 | | 13 | 4 | | 14 | 5 | | 15 | 5 | | 16 | 41 | | 17 | 18 | | 18 | 19 | | 19 | 93 | | 20 | 14 | | 21 | 5 | | 22 | 27 | | 23 | 45 | | 24 | 78 | | 25 | 12 | | 26 | 26 | | 27 | 10 | | 28 | 4 | | 29 | 4 | | 30 | 77 | | 31 | 33 | | 32 | 12 | | 33 | 8 | | 34 | 4 | | 35 | 114 | | 36 | 5 | | 37 | 97 | | 38 | 10 | | 39 | 6 | | 40 | 35 | | 41 | 20 | | 42 | 74 | | 43 | 9 | | 44 | 19 | | 45 | 11 | | 46 | 26 | | 47 | 52 | | 48 | 20 | | 49 | 3 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 80 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 167 | | matches | | 0 | "was venting" | | 1 | "wasn't collecting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 104 | | ratio | 0.067 | | matches | | 0 | "His hair was slicked back, platinum against the dark of the landing, and his eyes—one amber, one black as a well at midnight—found hers and did not move." | | 1 | "He hissed—low, mean, a sound Rory had never once heard out of him." | | 2 | "\"There's a courier I trust. He'll take it Wednesday and it'll be in Cardiff Thursday morning. I came to give you the address and the—\" he produced a folded card from his inside pocket \"—the reference number. That's all. I'll go.\"" | | 3 | "She crossed the room and pulled it out from where it had slipped—so it was true, then, the envelope stamped with the seal of her father's old chambers, and her heart going like a bird in a box." | | 4 | "She was aware of her own pulse in her wrists, and the small crescent scar on the left one caught the lamplight, pale and familiar, and of him watching her the way he did at the card tables in the back rooms of Soho—patient, cataloguing, waiting for the tell." | | 5 | "\"What would you have done? You would have gone home and packed a bag. You would have run, again, because it's the one thing you know how to do better than anyone I've ever met—and Rory—Rory—\" he stepped in, and she didn't step back, \"—I wanted you to stay in one place long enough that I could find you again. That was the whole of my thinking. It was a poor plan. I have had five months to improve on it and I have not.\"" | | 6 | "\"You were never the fool in that story.\" He lifted his hand, hesitated an inch from her cheek—asking, in that courtly way that was half manner and half terror—and when she didn't move away he set his knuckles against her jaw, just once." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 717 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 25 | | adverbRatio | 0.03486750348675035 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.011157601115760111 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 104 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 104 | | mean | 15.19 | | std | 16.22 | | cv | 1.068 | | sampleLengths | | 0 | 5 | | 1 | 50 | | 2 | 19 | | 3 | 14 | | 4 | 43 | | 5 | 6 | | 6 | 28 | | 7 | 4 | | 8 | 15 | | 9 | 7 | | 10 | 7 | | 11 | 9 | | 12 | 4 | | 13 | 3 | | 14 | 24 | | 15 | 6 | | 16 | 29 | | 17 | 13 | | 18 | 11 | | 19 | 7 | | 20 | 9 | | 21 | 17 | | 22 | 14 | | 23 | 1 | | 24 | 10 | | 25 | 38 | | 26 | 41 | | 27 | 5 | | 28 | 28 | | 29 | 27 | | 30 | 4 | | 31 | 13 | | 32 | 4 | | 33 | 5 | | 34 | 5 | | 35 | 12 | | 36 | 6 | | 37 | 23 | | 38 | 3 | | 39 | 15 | | 40 | 9 | | 41 | 10 | | 42 | 46 | | 43 | 47 | | 44 | 14 | | 45 | 5 | | 46 | 11 | | 47 | 16 | | 48 | 3 | | 49 | 38 |
| |
| 58.33% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.41346153846153844 | | totalSentences | 104 | | uniqueOpeners | 43 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 66 | | matches | | 0 | "Then the words dried up" | | 1 | "Of course he didn't take" | | 2 | "Somewhere in the next room" |
| | ratio | 0.045 | |
| 7.88% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 66 | | matches | | 0 | "She pulled the door open" | | 1 | "His cane hooked over his" | | 2 | "His hair was slicked back," | | 3 | "She had spent three months" | | 4 | "She had clearly done a" | | 5 | "It came out flat." | | 6 | "He hissed—low, mean, a sound" | | 7 | "He'd have to be human" | | 8 | "He shifted the bag to" | | 9 | "He set the bag down" | | 10 | "he produced a folded card" | | 11 | "She stared at the card." | | 12 | "She thought about the parcel," | | 13 | "His mouth slanted, barely a" | | 14 | "He stopped himself" | | 15 | "She watched him rein it" | | 16 | "she said, opening the door" | | 17 | "He bent, picked up the" | | 18 | "He set the bag on" | | 19 | "He nodded at a stack" |
| | ratio | 0.53 | |
| 66.06% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 66 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory had to brace her" | | 2 | "She pulled the door open" | | 3 | "Lucien Moreau stood in the" | | 4 | "His cane hooked over his" | | 5 | "His hair was slicked back," | | 6 | "The word in his mouth" | | 7 | "She had spent three months" | | 8 | "She had clearly done a" | | 9 | "It came out flat." | | 10 | "A pause, and something crossed" | | 11 | "He hissed—low, mean, a sound" | | 12 | "Lucien's gaze flicked down to" | | 13 | "He'd have to be human" | | 14 | "He shifted the bag to" | | 15 | "He set the bag down" | | 16 | "he produced a folded card" | | 17 | "She stared at the card." | | 18 | "The rain had thickened behind" | | 19 | "She thought about the parcel," |
| | ratio | 0.788 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 66 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 21 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 29 | | uselessAdditionCount | 1 | | matches | | 0 | "He paused, and the pause was an honest one, and it was worse than anything smooth" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 53 | | tagDensity | 0.321 | | leniency | 0.642 | | rawRatio | 0.059 | | effectiveRatio | 0.038 | |