| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 40 | | tagDensity | 0.475 | | leniency | 0.95 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.70% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1399 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "barely above a whisper" | | count | 1 |
| | 2 | | | 3 | |
| | highlights | | 0 | "quickly" | | 1 | "barely above a whisper" | | 2 | "really" | | 3 | "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) | |
| 39.24% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1399 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "tracing" | | 1 | "glint" | | 2 | "flicker" | | 3 | "shattered" | | 4 | "stark" | | 5 | "chill" | | 6 | "stomach" | | 7 | "flicked" | | 8 | "whisper" | | 9 | "warmth" | | 10 | "unreadable" | | 11 | "eyebrow" | | 12 | "echoing" | | 13 | "flickered" |
| |
| 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 | 68 | | matches | (empty) | |
| 79.83% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 68 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | 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 | 1393 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 1045 | | uniqueNames | 5 | | maxNameDensity | 1.15 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Eva" | | discoveredNames | | Marseille | 1 | | London | 1 | | Eva | 6 | | Lucien | 12 | | Aurora | 8 |
| | persons | | | places | | | globalScore | 0.926 | | windowScore | 0.833 | |
| 0.75% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 4 | | matches | | 0 | "timbre that seemed to vibrate the floorboards" | | 1 | "something akin to fury" | | 2 | "sounded like a warning" | | 3 | "sandalwood that seemed to cling to him" |
| |
| 56.42% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.436 | | wordCount | 1393 | | matches | | 0 | "not to touch her, but to brush a stray lock of black hair from her forehead" | | 1 | "not feel like threats but like companions waiting to see what would come next" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 90 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 36.66 | | std | 21.3 | | cv | 0.581 | | sampleLengths | | 0 | 13 | | 1 | 20 | | 2 | 19 | | 3 | 30 | | 4 | 36 | | 5 | 47 | | 6 | 39 | | 7 | 37 | | 8 | 37 | | 9 | 12 | | 10 | 22 | | 11 | 18 | | 12 | 36 | | 13 | 29 | | 14 | 23 | | 15 | 24 | | 16 | 55 | | 17 | 62 | | 18 | 52 | | 19 | 51 | | 20 | 26 | | 21 | 49 | | 22 | 49 | | 23 | 17 | | 24 | 32 | | 25 | 87 | | 26 | 30 | | 27 | 13 | | 28 | 32 | | 29 | 118 | | 30 | 24 | | 31 | 27 | | 32 | 23 | | 33 | 42 | | 34 | 25 | | 35 | 28 | | 36 | 32 | | 37 | 77 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 68 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 182 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 90 | | ratio | 0.067 | | matches | | 0 | "A flicker of irritation sparked behind her blue stare, but it was quickly smothered by something older—a memory of his hand brushing hers in a dim alley, the promise of safety that had shattered when he vanished without explanation." | | 1 | "The memory surfaced—his fingers tracing the line of her jaw, the whispered warning about the Avaros’ reach, the way his breath had smelled of sandalwood and something darker." | | 2 | "She remembered the night she’d gotten it—a fall from a bike, Eva’s panic, the way Lucien had appeared out of nowhere with a clean cloth and a steady voice that had steadied her shaking hands." | | 3 | "“They’ll use you as leverage. They’ll make you watch while they tear apart everything you’ve built.” He stepped closer, his cane tapping once against the floorboards—a rhythm that sounded like a warning." | | 4 | "“It’s Eva.” He moved to the door, pulled it open, and Eva stood there, dripping wet, her eyes wide as she took in the scene—Lucien half‑turned, Aurora pressed against the wall, the faint glint of steel visible for a heartbeat before the cane returned to its innocuous guise." | | 5 | "She turned to face the small table, where a single candle flickered, its flame throwing shadows that danced across the walls—shadows that, for the first time in weeks, did not feel like threats but like companions waiting to see what would come next." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 494 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 10 | | adverbRatio | 0.020242914979757085 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.004048582995951417 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 15.48 | | std | 8.18 | | cv | 0.529 | | sampleLengths | | 0 | 13 | | 1 | 20 | | 2 | 19 | | 3 | 18 | | 4 | 12 | | 5 | 13 | | 6 | 16 | | 7 | 7 | | 8 | 9 | | 9 | 31 | | 10 | 7 | | 11 | 39 | | 12 | 16 | | 13 | 12 | | 14 | 9 | | 15 | 14 | | 16 | 11 | | 17 | 12 | | 18 | 10 | | 19 | 2 | | 20 | 17 | | 21 | 5 | | 22 | 15 | | 23 | 3 | | 24 | 21 | | 25 | 15 | | 26 | 14 | | 27 | 15 | | 28 | 6 | | 29 | 17 | | 30 | 18 | | 31 | 6 | | 32 | 19 | | 33 | 24 | | 34 | 12 | | 35 | 28 | | 36 | 15 | | 37 | 19 | | 38 | 20 | | 39 | 17 | | 40 | 15 | | 41 | 16 | | 42 | 35 | | 43 | 17 | | 44 | 9 | | 45 | 12 | | 46 | 32 | | 47 | 5 | | 48 | 13 | | 49 | 16 |
| |
| 50.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.32222222222222224 | | totalSentences | 90 | | uniqueOpeners | 29 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 68 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 38 | | totalSentences | 68 | | matches | | 0 | "she said, voice low, eyes" | | 1 | "He stepped inside, shutting the" | | 2 | "He lifted the ivory‑handled cane," | | 3 | "He glanced at the mat," | | 4 | "she said, moving to the" | | 5 | "His cane rested against the" | | 6 | "She froze, cloth half‑wringed, droplets" | | 7 | "He paused, letting the words" | | 8 | "Her breath hitched, the scent" | | 9 | "His voice dropped, a low" | | 10 | "She turned, wiping her hands" | | 11 | "He stopped inches from her," | | 12 | "She had laughed it off," | | 13 | "she said, voice softer now," | | 14 | "He lifted his hand, not" | | 15 | "His fingertips lingered a fraction" | | 16 | "Her eyes flicked to the" | | 17 | "She remembered the night she’d" | | 18 | "she murmured, pulling her arm" | | 19 | "He stepped closer, his cane" |
| | ratio | 0.559 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 68 | | matches | | 0 | "Lucien shoved the door wide," | | 1 | "Aurora’s grip on the kettle" | | 2 | "she said, voice low, eyes" | | 3 | "He stepped inside, shutting the" | | 4 | "Water pooled at his boots," | | 5 | "Lucien replied, his accent a" | | 6 | "He lifted the ivory‑handled cane," | | 7 | "Aurora set the kettle down," | | 8 | "He glanced at the mat," | | 9 | "A flicker of irritation sparked" | | 10 | "she said, moving to the" | | 11 | "The cloth hissed under the" | | 12 | "Lucien leaned against the doorway," | | 13 | "His cane rested against the" | | 14 | "She froze, cloth half‑wringed, droplets" | | 15 | "He paused, letting the words" | | 16 | "Her breath hitched, the scent" | | 17 | "His voice dropped, a low" | | 18 | "She turned, wiping her hands" | | 19 | "A muscle ticked in his" |
| | ratio | 0.985 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 68 | | matches | (empty) | | ratio | 0 | |
| 23.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 7 | | matches | | 0 | "He stepped inside, shutting the door with a soft click that seemed too loud in the cramped flat." | | 1 | "A flicker of irritation sparked behind her blue stare, but it was quickly smothered by something older—a memory of his hand brushing hers in a dim alley, the pr…" | | 2 | "His fingertips lingered a fraction too long, the contact sending a jolt that made her stomach flip." | | 3 | "Lucien inclined his head, a gesture of apology that felt more like a promise." | | 4 | "Aurora swallowed, the rain’s scent mixing with the faint aroma of sandalwood that seemed to cling to him." | | 5 | "Lucien gave a half‑smile, the kind that hinted at gratitude and something deeper." | | 6 | "She turned to face the small table, where a single candle flickered, its flame throwing shadows that danced across the walls—shadows that, for the first time in…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 5 | | matches | | 0 | "Lucien replied, his accent a smooth blend of Marseille and London" | | 1 | "she asked, her voice barely above a whisper" | | 2 | "he ordered, tone low enough that only she could hear" | | 3 | "he said, relief threading through his voice" | | 4 | "she said, voice steady despite the tumult inside her" |
| |
| 75.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 3 | | fancyTags | | 0 | "she murmured (murmur)" | | 1 | "he ordered (order)" | | 2 | "Eva demanded (demand)" |
| | dialogueSentences | 40 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0.3 | | effectiveRatio | 0.15 | |