| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 21 | | tagDensity | 0.571 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.37% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1509 | | 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) | |
| 60.24% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1509 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "echoing" | | 1 | "resolve" | | 2 | "familiar" | | 3 | "pulse" | | 4 | "silk" | | 5 | "chill" | | 6 | "throbbed" | | 7 | "reminder" | | 8 | "intensity" | | 9 | "measured" | | 10 | "warmth" | | 11 | "weight" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 61 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 61 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 71 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1500 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 1062 | | uniqueNames | 13 | | maxNameDensity | 0.66 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Eva" | | discoveredNames | | Aurora | 3 | | Brick | 1 | | Lane | 1 | | Lucien | 7 | | Moreau | 1 | | Marseille | 1 | | Eva | 4 | | Ptolemy | 4 | | Evan | 1 | | Heat | 1 | | London | 1 | | Assam | 1 | | Rory | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Ptolemy" | | 5 | "Evan" | | 6 | "Rory" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Marseille" | | 3 | "London" | | 4 | "Assam" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 57 | | glossingSentenceCount | 1 | | matches | | 0 | "as if approving the breach in her defenses" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.667 | | wordCount | 1500 | | matches | | 0 | "not touching, but hovering near her wrist until she nodded once" |
| |
| 72.77% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 71 | | matches | | 0 | "throbbed that night" | | 1 | "chose that moment" |
| |
| 46.06% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 16 | | mean | 93.75 | | std | 29.18 | | cv | 0.311 | | sampleLengths | | 0 | 99 | | 1 | 78 | | 2 | 145 | | 3 | 52 | | 4 | 121 | | 5 | 136 | | 6 | 68 | | 7 | 95 | | 8 | 64 | | 9 | 130 | | 10 | 111 | | 11 | 101 | | 12 | 82 | | 13 | 98 | | 14 | 80 | | 15 | 40 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 61 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 164 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 71 | | ratio | 0.085 | | matches | | 0 | "The door swung inward on its hinges, and there he was—Lucien Moreau, leaning on that ivory-handled cane as if the entire city waited on his next move." | | 1 | "Those eyes—amber one moment, swallowing black the next—held hers without flinching." | | 2 | "The flat behind her was a chaos of paper—stacks of books teetering on the threadbare armchairs, scrolls unrolled across the scarred wooden table, Eva's research notes scrawled in hasty ink about bloodlines and thresholds." | | 3 | "Electricity crackled there, the same pull that had drawn her to him in the first place—his calm against her quick thinking, his layered silences against her out-of-the-box schemes for dodging the life her barrister father had mapped out." | | 4 | "The attraction had never faded, only buried under the hurt—the way his tailored suits hid the strength she'd felt when he pulled her close, the quiet intensity that made her, cool-headed Rory, abandon plans and run again." | | 5 | "The air thickened with words neither had spoken before—the nights after their encounters when she had replayed the feel of his slicked-back hair under her palms, the way his heterochromatic gaze had softened only for her." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 818 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.023227383863080684 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.0024449877750611247 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 71 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 71 | | mean | 21.13 | | std | 11.83 | | cv | 0.56 | | sampleLengths | | 0 | 21 | | 1 | 28 | | 2 | 23 | | 3 | 27 | | 4 | 26 | | 5 | 11 | | 6 | 21 | | 7 | 20 | | 8 | 11 | | 9 | 12 | | 10 | 53 | | 11 | 18 | | 12 | 34 | | 13 | 17 | | 14 | 5 | | 15 | 10 | | 16 | 26 | | 17 | 11 | | 18 | 24 | | 19 | 16 | | 20 | 16 | | 21 | 17 | | 22 | 5 | | 23 | 8 | | 24 | 35 | | 25 | 19 | | 26 | 33 | | 27 | 18 | | 28 | 30 | | 29 | 14 | | 30 | 22 | | 31 | 19 | | 32 | 8 | | 33 | 41 | | 34 | 16 | | 35 | 38 | | 36 | 16 | | 37 | 18 | | 38 | 7 | | 39 | 7 | | 40 | 37 | | 41 | 20 | | 42 | 7 | | 43 | 37 | | 44 | 13 | | 45 | 12 | | 46 | 61 | | 47 | 13 | | 48 | 20 | | 49 | 54 |
| |
| 53.52% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.3380281690140845 | | totalSentences | 71 | | uniqueOpeners | 24 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 61 | | matches | | 0 | "Then the confession, how his" | | 1 | "Instead she crossed her arms," |
| | ratio | 0.033 | |
| 36.39% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 61 | | matches | | 0 | "She hadn't expected the knock," | | 1 | "His voice carried the faint" | | 2 | "His platinum hair remained slicked" | | 3 | "Her bright blue eyes narrowed," | | 4 | "She couldn't, not with the" | | 5 | "She stood in the doorway," | | 6 | "She had fled here after" | | 7 | "He waited, one gloved hand" | | 8 | "She stepped aside, the decision" | | 9 | "she muttered, more to herself" | | 10 | "He set the cane against" | | 11 | "His heterochromatic gaze tracked her" | | 12 | "She remembered the night they" | | 13 | "Her scar had throbbed that" | | 14 | "she said, pouring the steaming" | | 15 | "She dropped into the nearest" | | 16 | "He sipped, the black eye" | | 17 | "Her grip tightened on her" | | 18 | "She stood abruptly, pacing the" | | 19 | "His voice dropped, the four" |
| | ratio | 0.459 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 57 | | totalSentences | 61 | | matches | | 0 | "The deadbolt bolts retracted one" | | 1 | "She hadn't expected the knock," | | 2 | "The door swung inward on" | | 3 | "His voice carried the faint" | | 4 | "Those eyes—amber one moment, swallowing" | | 5 | "His platinum hair remained slicked" | | 6 | "The scent of his cologne," | | 7 | "Her bright blue eyes narrowed," | | 8 | "She couldn't, not with the" | | 9 | "She stood in the doorway," | | 10 | "Eva's tabby, Ptolemy, wound between" | | 11 | "The flat behind her was" | | 12 | "She had fled here after" | | 13 | "Lucien didn't push past her." | | 14 | "He waited, one gloved hand" | | 15 | "A hint of a smile" | | 16 | "She stepped aside, the decision" | | 17 | "The door closed behind him" | | 18 | "Ptolemy trotted after Lucien, brushing" | | 19 | "Aurora crossed to the tiny" |
| | ratio | 0.934 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 61 | | matches | (empty) | | ratio | 0 | |
| 40.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 6 | | matches | | 0 | "The door swung inward on its hinges, and there he was—Lucien Moreau, leaning on that ivory-handled cane as if the entire city waited on his next move." | | 1 | "Ptolemy trotted after Lucien, brushing against his tailored trousers as if the half-demon were mere furniture." | | 2 | "Her scar had throbbed that night, a reminder of the childhood fall that had taught her nothing good came without breaking skin." | | 3 | "Electricity crackled there, the same pull that had drawn her to him in the first place—his calm against her quick thinking, his layered silences against her out…" | | 4 | "The attraction had never faded, only buried under the hurt—the way his tailored suits hid the strength she'd felt when he pulled her close, the quiet intensity …" | | 5 | "Ptolemy chose that moment to leap from the scrolls and rub against Lucien's leg, purring as if approving the breach in her defenses." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 3 | | matches | | 0 | "she muttered, more to herself" | | 1 | "She remembered, the taste of whiskey and something darker, unearthly" | | 2 | "she said, the words emerging before she could cage them" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 21 | | tagDensity | 0.143 | | leniency | 0.286 | | rawRatio | 0.333 | | effectiveRatio | 0.095 | |