| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 26 | | adverbTagCount | 3 | | adverbTags | | 0 | "She stepped back [back]" | | 1 | "She stepped aside [aside]" | | 2 | "His mouth quirked upward [upward]" |
| | dialogueSentences | 72 | | tagDensity | 0.361 | | leniency | 0.722 | | rawRatio | 0.115 | | effectiveRatio | 0.083 | |
| 81.52% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1623 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "loosely" | | 1 | "quickly" | | 2 | "very" | | 3 | "suddenly" | | 4 | "softly" |
| |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 53.79% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1623 | | totalAiIsms | 15 | | found | | 0 | | word | "down her spine" | | count | 1 |
| | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | |
| | highlights | | 0 | "down her spine" | | 1 | "pulse" | | 2 | "intensity" | | 3 | "traced" | | 4 | "flickered" | | 5 | "reminder" | | 6 | "silence" | | 7 | "unspoken" | | 8 | "affection" | | 9 | "whisper" | | 10 | "tracing" | | 11 | "could feel" | | 12 | "warmth" |
| |
| 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 | 1 | | narrationSentences | 82 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 82 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 125 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1610 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 1017 | | uniqueNames | 14 | | maxNameDensity | 0.79 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Eva" | | discoveredNames | | Eva | 7 | | Lucien | 8 | | Moreau | 1 | | Brick | 1 | | Lane | 1 | | Heat | 1 | | Shared | 1 | | French | 1 | | Part | 1 | | Ptolemy | 4 | | Cardiff | 1 | | Evan | 1 | | Despite | 1 | | Rory | 4 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Heat" | | 4 | "Ptolemy" | | 5 | "Evan" | | 6 | "Rory" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 32.81% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | glossingSentenceCount | 3 | | matches | | 0 | "quite read" | | 1 | "not quite crossing the threshold but close enough that she caught his scent—expensive cologne and something darker underneath, something that reminded her of smoke and foreign spices" | | 2 | "at had felt so obviously true in the darknes" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.621 | | wordCount | 1610 | | matches | | 0 | "not quite crossing the threshold but close enough" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 125 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 58 | | mean | 27.76 | | std | 16.92 | | cv | 0.61 | | sampleLengths | | 0 | 20 | | 1 | 60 | | 2 | 2 | | 3 | 28 | | 4 | 28 | | 5 | 17 | | 6 | 18 | | 7 | 59 | | 8 | 41 | | 9 | 30 | | 10 | 10 | | 11 | 20 | | 12 | 61 | | 13 | 25 | | 14 | 24 | | 15 | 15 | | 16 | 58 | | 17 | 5 | | 18 | 45 | | 19 | 37 | | 20 | 48 | | 21 | 38 | | 22 | 18 | | 23 | 25 | | 24 | 33 | | 25 | 7 | | 26 | 36 | | 27 | 47 | | 28 | 6 | | 29 | 32 | | 30 | 18 | | 31 | 49 | | 32 | 13 | | 33 | 23 | | 34 | 30 | | 35 | 11 | | 36 | 37 | | 37 | 1 | | 38 | 50 | | 39 | 38 | | 40 | 21 | | 41 | 57 | | 42 | 10 | | 43 | 39 | | 44 | 3 | | 45 | 21 | | 46 | 22 | | 47 | 10 | | 48 | 37 | | 49 | 64 |
| |
| 92.43% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 82 | | matches | | 0 | "was closed" | | 1 | "was gone" | | 2 | "being watched" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 177 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 125 | | ratio | 0.056 | | matches | | 0 | "The deadbolts clicked in sequence—one, two, three—and Eva's voice called through the door, \"Rory, did you forget your key again?\"" | | 1 | "\"There's nothing to discuss.\" She moved to close the door, but he stepped forward, not quite crossing the threshold but close enough that she caught his scent—expensive cologne and something darker underneath, something that reminded her of smoke and foreign spices." | | 2 | "Something flickered across his features—surprise, maybe, or hurt." | | 3 | "Part of her—the part that still woke up some nights thinking about his hands in her hair—wanted to hear what he had to say." | | 4 | "\"She's working on her doctorate.\" Rory closed the door but didn't lock it—a small act of defiance, a reminder that this was temporary." | | 5 | "But Evan had always been persistent, and now that she thought about it, there had been signs—the feeling of being watched, the hang-up calls at the restaurant." | | 6 | "Something shifted in his expression—hope, maybe, or relief." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1030 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.036893203883495145 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.008737864077669903 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 125 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 125 | | mean | 12.88 | | std | 9.58 | | cv | 0.744 | | sampleLengths | | 0 | 20 | | 1 | 14 | | 2 | 28 | | 3 | 18 | | 4 | 2 | | 5 | 12 | | 6 | 11 | | 7 | 5 | | 8 | 24 | | 9 | 4 | | 10 | 9 | | 11 | 8 | | 12 | 10 | | 13 | 8 | | 14 | 20 | | 15 | 6 | | 16 | 33 | | 17 | 41 | | 18 | 13 | | 19 | 17 | | 20 | 4 | | 21 | 6 | | 22 | 16 | | 23 | 4 | | 24 | 1 | | 25 | 45 | | 26 | 15 | | 27 | 15 | | 28 | 10 | | 29 | 8 | | 30 | 11 | | 31 | 5 | | 32 | 8 | | 33 | 7 | | 34 | 19 | | 35 | 6 | | 36 | 33 | | 37 | 3 | | 38 | 2 | | 39 | 14 | | 40 | 24 | | 41 | 7 | | 42 | 17 | | 43 | 8 | | 44 | 12 | | 45 | 2 | | 46 | 24 | | 47 | 10 | | 48 | 12 | | 49 | 15 |
| |
| 73.60% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.456 | | totalSentences | 125 | | uniqueOpeners | 57 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 78 | | matches | (empty) | | ratio | 0 | |
| 9.74% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 78 | | matches | | 0 | "It was Lucien Moreau, his" | | 1 | "He held his ivory-handled cane" | | 2 | "Her name on his lips" | | 3 | "She gripped the doorframe, her" | | 4 | "He gestured past her into" | | 5 | "His mismatched eyes held hers" | | 6 | "She hadn't seen him since" | | 7 | "She moved to close the" | | 8 | "His voice was controlled, but" | | 9 | "He tilted his head, studying" | | 10 | "She lifted her chin, meeting" | | 11 | "She'd been lying there in" | | 12 | "She'd listened to him speak" | | 13 | "She stepped back into the" | | 14 | "He was quiet for a" | | 15 | "It's what had gotten her" | | 16 | "She stepped aside, and he" | | 17 | "He turned to face her," | | 18 | "Her heart skipped." | | 19 | "His expression was grim" |
| | ratio | 0.526 | |
| 24.10% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 78 | | matches | | 0 | "The deadbolts clicked in sequence—one," | | 1 | "It was Lucien Moreau, his" | | 2 | "He held his ivory-handled cane" | | 3 | "Her name on his lips" | | 4 | "She gripped the doorframe, her" | | 5 | "He gestured past her into" | | 6 | "The word came out sharper" | | 7 | "His mismatched eyes held hers" | | 8 | "The curry house below them" | | 9 | "Rory's pulse hammered against her" | | 10 | "She hadn't seen him since" | | 11 | "She moved to close the" | | 12 | "His voice was controlled, but" | | 13 | "Heat flooded her cheeks." | | 14 | "He tilted his head, studying" | | 15 | "She lifted her chin, meeting" | | 16 | "Something flickered across his features—surprise," | | 17 | "The words tasted bitter" | | 18 | "She'd been lying there in" | | 19 | "A client, calling about another" |
| | ratio | 0.872 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 78 | | matches | | 0 | "As if it had been" | | 1 | "As if she hadn't been" |
| | ratio | 0.026 | |
| 95.24% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 2 | | matches | | 0 | "As if it had been mutual, as if she hadn't been the only one caught off guard by the way he'd looked at her in the moonlight, the way his fingers had traced the…" | | 1 | "She pressed her hand to her mouth, remembering the hurt and humiliation that had driven her from his bed, the assumption that had felt so obviously true in the …" |
| |
| 67.31% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 26 | | uselessAdditionCount | 3 | | matches | | 0 | "He moved, his cane tapping softly against the hardwood floor" | | 1 | "Rory said, but her heart wasn't in it anymore" | | 2 | "He leaned, his eyes fluttering closed" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 2 | | fancyTags | | 0 | "She'd (would)" | | 1 | "he whispered (whisper)" |
| | dialogueSentences | 72 | | tagDensity | 0.069 | | leniency | 0.139 | | rawRatio | 0.4 | | effectiveRatio | 0.056 | |