| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 2 | | adverbTags | | 0 | "He stepped back [back]" | | 1 | "He glanced back [back]" |
| | dialogueSentences | 85 | | tagDensity | 0.165 | | leniency | 0.329 | | rawRatio | 0.143 | | effectiveRatio | 0.047 | |
| 97.13% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1741 | | totalAiIsmAdverbs | 1 | | 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) | |
| 79.90% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1741 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "silence" | | 1 | "determined" | | 2 | "sentinel" | | 3 | "trembled" | | 4 | "throbbed" | | 5 | "flickered" |
| |
| 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 | 111 | | matches | (empty) | |
| 91.38% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 111 | | filterMatches | | | hedgeMatches | | 0 | "started to" | | 1 | "seemed to" | | 2 | "managed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 178 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 12 | | totalWords | 1741 | | ratio | 0.007 | | matches | | 0 | "Malphora rises. The debt comes due." | | 1 | "Malphora rises. The debt comes due." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1079 | | uniqueNames | 12 | | maxNameDensity | 0.74 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 8 | | Moreau | 3 | | Platinum | 1 | | Mayfair | 1 | | French | 1 | | English | 1 | | Gold | 1 | | Eva | 1 | | Chelsea | 1 | | Rory | 6 | | Malphora | 3 | | Ptolemy | 4 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Gold" | | 3 | "Eva" | | 4 | "Chelsea" | | 5 | "Rory" | | 6 | "Malphora" | | 7 | "Ptolemy" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 1 | | matches | | 0 | "seemed far too knowing, and Rory stood there with the envelope in her shaking hand and the word Malphora burning through her brain like acid" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1741 | | matches | (empty) | |
| 54.31% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 6 | | totalSentences | 178 | | matches | | 0 | "hated that she" | | 1 | "Hated that he do that, that" | | 2 | "chose that moment" | | 3 | "remember, that her" | | 4 | "screaming that her" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 98 | | mean | 17.77 | | std | 18 | | cv | 1.013 | | sampleLengths | | 0 | 15 | | 1 | 53 | | 2 | 4 | | 3 | 19 | | 4 | 3 | | 5 | 6 | | 6 | 62 | | 7 | 1 | | 8 | 4 | | 9 | 4 | | 10 | 1 | | 11 | 3 | | 12 | 36 | | 13 | 1 | | 14 | 10 | | 15 | 26 | | 16 | 6 | | 17 | 2 | | 18 | 54 | | 19 | 10 | | 20 | 3 | | 21 | 7 | | 22 | 36 | | 23 | 7 | | 24 | 4 | | 25 | 1 | | 26 | 44 | | 27 | 5 | | 28 | 57 | | 29 | 6 | | 30 | 8 | | 31 | 3 | | 32 | 45 | | 33 | 35 | | 34 | 5 | | 35 | 2 | | 36 | 36 | | 37 | 40 | | 38 | 3 | | 39 | 32 | | 40 | 2 | | 41 | 4 | | 42 | 7 | | 43 | 44 | | 44 | 7 | | 45 | 8 | | 46 | 35 | | 47 | 57 | | 48 | 13 | | 49 | 39 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 111 | | matches | (empty) | |
| 30.80% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 197 | | matches | | 0 | "was doing" | | 1 | "was daring" | | 2 | "was ending" | | 3 | "was staring" | | 4 | "was screaming" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 178 | | ratio | 0 | | matches | (empty) | |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1086 | | adjectiveStacks | 1 | | stackExamples | | 0 | "old crescent-shaped mark" |
| | adverbCount | 31 | | adverbRatio | 0.0285451197053407 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.006445672191528545 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 178 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 178 | | mean | 9.78 | | std | 9.77 | | cv | 0.999 | | sampleLengths | | 0 | 15 | | 1 | 2 | | 2 | 51 | | 3 | 4 | | 4 | 8 | | 5 | 6 | | 6 | 5 | | 7 | 3 | | 8 | 6 | | 9 | 3 | | 10 | 3 | | 11 | 25 | | 12 | 15 | | 13 | 16 | | 14 | 1 | | 15 | 4 | | 16 | 4 | | 17 | 1 | | 18 | 3 | | 19 | 10 | | 20 | 4 | | 21 | 21 | | 22 | 1 | | 23 | 1 | | 24 | 10 | | 25 | 10 | | 26 | 13 | | 27 | 3 | | 28 | 6 | | 29 | 2 | | 30 | 5 | | 31 | 33 | | 32 | 16 | | 33 | 10 | | 34 | 3 | | 35 | 7 | | 36 | 6 | | 37 | 6 | | 38 | 24 | | 39 | 7 | | 40 | 4 | | 41 | 1 | | 42 | 39 | | 43 | 5 | | 44 | 5 | | 45 | 17 | | 46 | 40 | | 47 | 6 | | 48 | 8 | | 49 | 3 |
| |
| 50.94% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.3595505617977528 | | totalSentences | 178 | | uniqueOpeners | 64 | |
| 67.34% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 99 | | matches | | 0 | "Just the word, flat and" | | 1 | "Instead, she broke the seal." |
| | ratio | 0.02 | |
| 42.22% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 44 | | totalSentences | 99 | | matches | | 0 | "His ivory-handled cane tapped against" | | 1 | "She started to close the" | | 2 | "His cane stopped it." | | 3 | "His head tilted" | | 4 | "She could smell his cologne," | | 5 | "It belonged in Mayfair offices" | | 6 | "It belonged on him, and" | | 7 | "He reached into his jacket" | | 8 | "He stepped closer" | | 9 | "She could see the flecks" | | 10 | "She refused to give him" | | 11 | "Her name in his mouth" | | 12 | "She hated that." | | 13 | "She'd learned to read those," | | 14 | "His voice hardened" | | 15 | "She shoved the door, forcing" | | 16 | "She'd rehearsed this conversation a" | | 17 | "She'd imagined screaming, crying, throwing" | | 18 | "She'd imagined him apologising, grovelling," | | 19 | "She'd imagined walking away victorious." |
| | ratio | 0.444 | |
| 5.45% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 90 | | totalSentences | 99 | | matches | | 0 | "The door swung inward and" | | 1 | "Rory gripped the door frame" | | 2 | "The wood bit into her" | | 3 | "Lucien's mouth curved." | | 4 | "That same smile." | | 5 | "The one that made her" | | 6 | "His ivory-handled cane tapped against" | | 7 | "Ptolemy wound between his ankles," | | 8 | "She started to close the" | | 9 | "His cane stopped it." | | 10 | "His head tilted" | | 11 | "Platinum blond hair caught the" | | 12 | "The words hung between them." | | 13 | "She could smell his cologne," | | 14 | "It belonged in Mayfair offices" | | 15 | "It belonged on him, and" | | 16 | "The admission landed like a" | | 17 | "Rory's hand tightened on the" | | 18 | "Ptolemy butted his head against" | | 19 | "He reached into his jacket" |
| | ratio | 0.909 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 99 | | matches | (empty) | | ratio | 0 | |
| 16.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 6 | | matches | | 0 | "She could smell his cologne, something dark and woody that had no business existing in her shabby hallway above a pub that served flat beer to people who didn't…" | | 1 | "Quality stationery, the kind that belonged in old-fashioned correspondence, not in the hands of a half-demon fixer who probably had blood on his hands that woul…" | | 2 | "And beneath it all, a line of text that made her blood turn to ice." | | 3 | "Or something else entirely, something that looked dangerously close to the expression he'd worn the night before everything went wrong, the night he'd kissed he…" | | 4 | "The cat sat in the open doorway, watching her with eyes that seemed far too knowing, and Rory stood there with the envelope in her shaking hand and the word Mal…" | | 5 | "She only knew she was staring at the wall, at the crack that ran from ceiling to floor, and that somewhere in the back of her mind a voice was screaming that he…" |
| |
| 89.29% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 1 | | matches | | 0 | "He stepped back, cane tapping the floor" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |