| 46.15% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 6 | | adverbTags | | 0 | "Rory said flatly [flatly]" | | 1 | "he said quietly [quietly]" | | 2 | "he said finally [finally]" | | 3 | "He looked away [away]" | | 4 | "Lucien said finally [finally]" | | 5 | "she said instead [instead]" |
| | dialogueSentences | 78 | | tagDensity | 0.308 | | leniency | 0.615 | | rawRatio | 0.25 | | effectiveRatio | 0.154 | |
| 94.02% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1671 | | totalAiIsmAdverbs | 2 | | 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) | |
| 73.07% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1671 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "echoed" | | 1 | "tension" | | 2 | "unsettled" | | 3 | "echo" | | 4 | "charm" | | 5 | "silence" | | 6 | "familiar" | | 7 | "reminder" |
| |
| 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 | 100 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 100 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 153 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1661 | | 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 | 36 | | wordCount | 1024 | | uniqueNames | 11 | | maxNameDensity | 1.17 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Sunday | 1 | | Moreau | 1 | | English | 1 | | Marseille | 1 | | London | 1 | | Rory | 12 | | Lucien | 10 | | Ptolemy | 4 | | Eva | 3 | | Hearing | 1 | | Took | 1 |
| | persons | | 0 | "Moreau" | | 1 | "Rory" | | 2 | "Lucien" | | 3 | "Ptolemy" | | 4 | "Eva" | | 5 | "Took" |
| | places | | | globalScore | 0.914 | | windowScore | 0.833 | |
| 0.75% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 4 | | matches | | 0 | "looked like something out of a magazine s" | | 1 | "felt like being stripped bare" | | 2 | "felt like watching a door close" | | 3 | "felt like something being pulled from h" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1661 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 153 | | matches | | 0 | "chose that moment" | | 1 | "hated that some" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 86 | | mean | 19.31 | | std | 16.3 | | cv | 0.844 | | sampleLengths | | 0 | 30 | | 1 | 26 | | 2 | 8 | | 3 | 30 | | 4 | 5 | | 5 | 44 | | 6 | 1 | | 7 | 43 | | 8 | 1 | | 9 | 10 | | 10 | 5 | | 11 | 4 | | 12 | 50 | | 13 | 43 | | 14 | 1 | | 15 | 24 | | 16 | 42 | | 17 | 12 | | 18 | 18 | | 19 | 29 | | 20 | 4 | | 21 | 1 | | 22 | 27 | | 23 | 41 | | 24 | 29 | | 25 | 3 | | 26 | 59 | | 27 | 5 | | 28 | 7 | | 29 | 33 | | 30 | 42 | | 31 | 16 | | 32 | 61 | | 33 | 3 | | 34 | 3 | | 35 | 42 | | 36 | 4 | | 37 | 7 | | 38 | 27 | | 39 | 34 | | 40 | 6 | | 41 | 29 | | 42 | 22 | | 43 | 13 | | 44 | 37 | | 45 | 4 | | 46 | 16 | | 47 | 10 | | 48 | 34 | | 49 | 27 |
| |
| 98.25% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 100 | | matches | | 0 | "being pulled" | | 1 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 191 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 153 | | ratio | 0.065 | | matches | | 0 | "No one else knew about this flat—no one who meant her any good, anyway." | | 1 | "Her name in his mouth—always that slight friction on the R, the vowels stretched just enough to remind her he'd learned English in Marseille before he'd ever set foot in London." | | 2 | "\"Non.\" He tilted his head, studying her with those impossible eyes—one warm amber, one black as ink." | | 3 | "The tabby had never met a stranger he didn't like—a trait Rory found exasperating and endearing in equal measure." | | 4 | "She should tell him to go to hell—she knew enough about his kind's realm now to mean it literally." | | 5 | "Lucien moved past her into the flat, and she caught the scent of him beneath the rain—sandalwood and something darker, something that made her want to lean closer and pull away all at once." | | 6 | "Instead, the corner of his mouth twitched—the faintest hint of the smile she used to coax from him in quieter moments." | | 7 | "It hurt the way a healed bone ached in cold weather—a reminder of damage done, imperfectly repaired." | | 8 | "She had arguments prepared—good ones, logical ones, about independence and safety and the simple pleasure of uncomplicated days." | | 9 | "For a moment, something raw crossed his face—wanting, she thought, or maybe just exhaustion from carrying it alone." |
| |
| 94.50% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1037 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 48 | | adverbRatio | 0.04628736740597879 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.01253616200578592 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 153 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 153 | | mean | 10.86 | | std | 8.4 | | cv | 0.774 | | sampleLengths | | 0 | 11 | | 1 | 19 | | 2 | 2 | | 3 | 10 | | 4 | 14 | | 5 | 8 | | 6 | 11 | | 7 | 19 | | 8 | 5 | | 9 | 28 | | 10 | 16 | | 11 | 1 | | 12 | 31 | | 13 | 12 | | 14 | 1 | | 15 | 4 | | 16 | 6 | | 17 | 5 | | 18 | 4 | | 19 | 17 | | 20 | 10 | | 21 | 13 | | 22 | 5 | | 23 | 5 | | 24 | 11 | | 25 | 19 | | 26 | 13 | | 27 | 1 | | 28 | 24 | | 29 | 8 | | 30 | 19 | | 31 | 15 | | 32 | 5 | | 33 | 7 | | 34 | 12 | | 35 | 6 | | 36 | 7 | | 37 | 5 | | 38 | 17 | | 39 | 4 | | 40 | 1 | | 41 | 9 | | 42 | 18 | | 43 | 5 | | 44 | 19 | | 45 | 17 | | 46 | 15 | | 47 | 7 | | 48 | 7 | | 49 | 3 |
| |
| 56.43% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.3660130718954248 | | totalSentences | 153 | | uniqueOpeners | 56 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 92 | | matches | | 0 | "Just her name again, but" | | 1 | "Somewhere in the building, a" | | 2 | "Instead, the corner of his" | | 3 | "Then he inclined his head," | | 4 | "Then it smoothed away beneath" |
| | ratio | 0.054 | |
| 59.13% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 92 | | matches | | 0 | "She flipped the deadbolt with" | | 1 | "He looked like something out" | | 2 | "Her name in his mouth—always" | | 3 | "She gripped the doorframe." | | 4 | "He tilted his head, studying" | | 5 | "He crouched, ignoring the water" | | 6 | "He rose, adjusting the grip" | | 7 | "He was asking for something," | | 8 | "She should close the door." | | 9 | "She should tell him to" | | 10 | "He surveyed the chaos of" | | 11 | "he said quietly" | | 12 | "He turned to face her" | | 13 | "She crossed her arms over" | | 14 | "She stepped closer, anger giving" | | 15 | "His voice dropped, rough at" | | 16 | "He stopped, the cane creaking" | | 17 | "She caught herself" | | 18 | "His mismatched eyes held hers," | | 19 | "he said finally" |
| | ratio | 0.402 | |
| 52.39% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 92 | | matches | | 0 | "The third deadbolt stuck, as" | | 1 | "Rory wrestled with it, her" | | 2 | "Eva wasn't due back from" | | 3 | "The knock came again, more" | | 4 | "Rory's hand drifted to the" | | 5 | "She flipped the deadbolt with" | | 6 | "Lucien Moreau stood in the" | | 7 | "He looked like something out" | | 8 | "Her name in his mouth—always" | | 9 | "She gripped the doorframe." | | 10 | "He tilted his head, studying" | | 11 | "The heterochromia had unsettled her" | | 12 | "The black one reflected nothing." | | 13 | "Ptolemy chose that moment to" | | 14 | "The tabby had never met" | | 15 | "Rory said, though whether she" | | 16 | "Lucien glanced down, something softening" | | 17 | "He crouched, ignoring the water" | | 18 | "The cat butted against his" | | 19 | "Rory said flatly" |
| | ratio | 0.815 | |
| 54.35% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 92 | | matches | | 0 | "Now the cat padded past" |
| | ratio | 0.011 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 1 | | matches | | 0 | "Lucien moved past her into the flat, and she caught the scent of him beneath the rain—sandalwood and something darker, something that made her want to lean clos…" |
| |
| 83.33% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 2 | | matches | | 0 | "He stopped, the cane creaking in his grip" | | 1 | "She rubbed, her thumb finding the scar automatically" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 3 | | fancyTags | | 0 | "he murmured (murmur)" | | 1 | "he agreed (agree)" | | 2 | "She pressed (press)" |
| | dialogueSentences | 78 | | tagDensity | 0.128 | | leniency | 0.256 | | rawRatio | 0.3 | | effectiveRatio | 0.077 | |