| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 6 | | adverbTags | | 0 | "she said quietly [quietly]" | | 1 | "Rory said quietly [quietly]" | | 2 | "His voice cracked slightly [slightly]" | | 3 | "she repeated softly [softly]" | | 4 | "he said quietly [quietly]" | | 5 | "he said softly [softly]" |
| | dialogueSentences | 59 | | tagDensity | 0.373 | | leniency | 0.746 | | rawRatio | 0.273 | | effectiveRatio | 0.203 | |
| 82.40% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1705 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "carefully" | | 1 | "slightly" | | 2 | "softly" |
| |
| 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) | |
| 67.74% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1705 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "silence" | | 1 | "could feel" | | 2 | "intensity" | | 3 | "navigate" | | 4 | "familiar" | | 5 | "facade" | | 6 | "weight" | | 7 | "measured" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "weight of words/silence" | | count | 1 |
|
| | highlights | | 0 | "the weight of the moment" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 92 | | matches | | |
| 96.27% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 92 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 126 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 83 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1684 | | ratio | 0 | | matches | (empty) | |
| 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 | 48 | | wordCount | 1124 | | uniqueNames | 15 | | maxNameDensity | 0.89 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Eva" | | discoveredNames | | Brick | 2 | | Lane | 2 | | Ptolemy | 5 | | Eva | 8 | | Silence | 1 | | French | 1 | | Rory | 10 | | Moreau | 4 | | Mayfair | 2 | | Shoreditch | 1 | | Took | 1 | | Laila | 1 | | Understanding | 1 | | Close | 1 | | Lucien | 8 |
| | persons | | 0 | "Ptolemy" | | 1 | "Eva" | | 2 | "Rory" | | 3 | "Moreau" | | 4 | "Laila" | | 5 | "Understanding" | | 6 | "Lucien" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Silence" | | 3 | "Mayfair" | | 4 | "Shoreditch" | | 5 | "Close" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 81.24% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.188 | | wordCount | 1684 | | matches | | 0 | "not Rory, but Laila, the way he called her" | | 1 | "not close enough to touch, but close enough" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 126 | | matches | | 0 | "heard that voice" | | 1 | "care that he" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 61 | | mean | 27.61 | | std | 24.86 | | cv | 0.901 | | sampleLengths | | 0 | 36 | | 1 | 47 | | 2 | 46 | | 3 | 8 | | 4 | 34 | | 5 | 40 | | 6 | 3 | | 7 | 6 | | 8 | 23 | | 9 | 37 | | 10 | 53 | | 11 | 12 | | 12 | 57 | | 13 | 55 | | 14 | 30 | | 15 | 4 | | 16 | 2 | | 17 | 6 | | 18 | 13 | | 19 | 50 | | 20 | 7 | | 21 | 15 | | 22 | 22 | | 23 | 16 | | 24 | 17 | | 25 | 8 | | 26 | 7 | | 27 | 44 | | 28 | 86 | | 29 | 6 | | 30 | 2 | | 31 | 3 | | 32 | 12 | | 33 | 39 | | 34 | 41 | | 35 | 15 | | 36 | 32 | | 37 | 42 | | 38 | 19 | | 39 | 41 | | 40 | 26 | | 41 | 21 | | 42 | 40 | | 43 | 10 | | 44 | 99 | | 45 | 9 | | 46 | 107 | | 47 | 8 | | 48 | 89 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 92 | | matches | | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 209 | | matches | | 0 | "was looking" | | 1 | "was counting" | | 2 | "was leaning" | | 3 | "wasn't bothering" | | 4 | "was already threading" | | 5 | "weren't coming" | | 6 | "was losing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 2 | | flaggedSentences | 14 | | totalSentences | 126 | | ratio | 0.111 | | matches | | 0 | "Rory was in the kitchen making tea—proper tea, not the herbal muck Eva insisted would \"cleanse her chakras\"—when she heard it." | | 1 | "Her chest did something complicated—a skip, a sink, a twist all at once." | | 2 | "When he spoke again, his tone had shifted—the casual urbanity peeled away to something underneath, something that sounded almost like it cost him." | | 3 | "Lucien Moreau existed in carefully curated spaces—exclusive clubs in Mayfair, underground establishments in Shoreditch, anywhere that allowed him to maintain the immaculate distance he cultivated like a second skin." | | 4 | "His platinum blond hair was mussed—actually mussed, which suggested either significant trouble or a significant disregard for his appearance, neither of which boded well." | | 5 | "Or rather, it was old—he'd injured his left leg years ago, before they met—but he normally hid it with the kind of practiced elegance that made people forget he wasn't entirely steady." | | 6 | "His heterochromatic eyes—amber and black, the mixed heritage of his demonic father and human mother written across his face—focused on her with such intensity she felt it like a touch." | | 7 | "The scar on her left wrist—old, crescent-shaped, small—itched." | | 8 | "His hand went up—not grabbing, just a gesture of pause." | | 9 | "There was no apology in it, but there was something—acknowledgment, perhaps." | | 10 | "Instead, she felt exposed in a way that had nothing to do with safety and everything to do with the fact that she still couldn't look at him without remembering the way his skin felt under her hands, the way he'd murmured her name—not Rory, but Laila, the way he called her when they were alone—the way she'd tried to make space in her life for someone shaped like him and found only sharp edges everywhere she tried to fit him." | | 11 | "\"Yes. I know.\" He moved closer, not close enough to touch, but close enough that she could smell him—expensive cologne, something woody and sophisticated that didn't belong in a flat above a curry house." | | 12 | "His amber eye met hers, and she saw in it the whole complicated history between them—the first night in his Mayfair apartment, the way she'd pretended not to care that he was half-demon and half-broken in ways she still didn't fully understand; the fight about her future, about whether she could have one that included him; the way she'd tried to be the person he needed and discovered she was losing herself in the attempt." | | 13 | "But when she finally turned to look at him, she caught him looking at her like it was the first time all over again—like she was something rare, something he might lose if he blinked." |
| |
| 89.15% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1145 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 60 | | adverbRatio | 0.05240174672489083 | | lyAdverbCount | 22 | | lyAdverbRatio | 0.01921397379912664 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 126 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 126 | | mean | 13.37 | | std | 13.28 | | cv | 0.993 | | sampleLengths | | 0 | 20 | | 1 | 16 | | 2 | 21 | | 3 | 7 | | 4 | 7 | | 5 | 6 | | 6 | 6 | | 7 | 32 | | 8 | 14 | | 9 | 8 | | 10 | 1 | | 11 | 33 | | 12 | 7 | | 13 | 13 | | 14 | 8 | | 15 | 7 | | 16 | 5 | | 17 | 3 | | 18 | 6 | | 19 | 4 | | 20 | 8 | | 21 | 11 | | 22 | 4 | | 23 | 23 | | 24 | 10 | | 25 | 5 | | 26 | 5 | | 27 | 14 | | 28 | 29 | | 29 | 12 | | 30 | 10 | | 31 | 18 | | 32 | 4 | | 33 | 1 | | 34 | 24 | | 35 | 12 | | 36 | 3 | | 37 | 32 | | 38 | 8 | | 39 | 30 | | 40 | 4 | | 41 | 2 | | 42 | 6 | | 43 | 8 | | 44 | 5 | | 45 | 27 | | 46 | 3 | | 47 | 8 | | 48 | 7 | | 49 | 5 |
| |
| 65.34% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.4444444444444444 | | totalSentences | 126 | | uniqueOpeners | 56 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 81 | | matches | | 0 | "Then, in that lazy French" | | 1 | "Instead, she felt exposed in" | | 2 | "Instead of sitting, he moved" | | 3 | "Of course Eva hadn't passed" |
| | ratio | 0.049 | |
| 37.28% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 81 | | matches | | 0 | "She froze, kettle suspended over" | | 1 | "She set the kettle down" | | 2 | "she called through the door" | | 3 | "Her chest did something complicated—a" | | 4 | "She hadn't heard that voice" | | 5 | "She closed her eyes." | | 6 | "She opened the door six" | | 7 | "He looked thinner, maybe." | | 8 | "His platinum blond hair was" | | 9 | "He was leaning on the" | | 10 | "His heterochromatic eyes—amber and black," | | 11 | "she said quietly" | | 12 | "She stopped herself" | | 13 | "It always did when she" | | 14 | "She moved to close the" | | 15 | "His hand went up—not grabbing," | | 16 | "She didn't open the door" | | 17 | "His voice was soft" | | 18 | "She should have felt violated." | | 19 | "He tilted his head slightly" |
| | ratio | 0.457 | |
| 77.28% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 62 | | totalSentences | 81 | | matches | | 0 | "The knock came at half" | | 1 | "Eva's cat Ptolemy, sprawled across" | | 2 | "Rory was in the kitchen" | | 3 | "She froze, kettle suspended over" | | 4 | "Nobody visited Eva's flat at" | | 5 | "Nobody visited Eva's flat, full" | | 6 | "She set the kettle down" | | 7 | "she called through the door" | | 8 | "Rory's hand stilled on the" | | 9 | "Her chest did something complicated—a" | | 10 | "She hadn't heard that voice" | | 11 | "She closed her eyes." | | 12 | "That word nearly undid her." | | 13 | "Lucien Moreau didn't say please." | | 14 | "Lucien Moreau didn't come to" | | 15 | "Lucien Moreau existed in carefully" | | 16 | "Rory's fingers moved to the" | | 17 | "She opened the door six" | | 18 | "Lucien stood in the yellow" | | 19 | "He looked thinner, maybe." |
| | ratio | 0.765 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 81 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 4 | | matches | | 0 | "When he spoke again, his tone had shifted—the casual urbanity peeled away to something underneath, something that sounded almost like it cost him." | | 1 | "Instead, she felt exposed in a way that had nothing to do with safety and everything to do with the fact that she still couldn't look at him without remembering…" | | 2 | "She opened the door fully, then immediately turned away before she could change her mind, walking back into the flat where Ptolemy was already threading between…" | | 3 | "Eva, who'd watched Rory piece herself back together after their last terrible conversation." |
| |
| 79.55% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 2 | | matches | | 0 | "she said, not looking at him" | | 1 | "She poured, steam rising in delicate spirals" |
| |
| 99.15% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 3 | | fancyTags | | 0 | "he agreed (agree)" | | 1 | "she repeated softly (repeat)" | | 2 | "he confirmed (confirm)" |
| | dialogueSentences | 59 | | tagDensity | 0.186 | | leniency | 0.373 | | rawRatio | 0.273 | | effectiveRatio | 0.102 | |