| 91.89% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 2 | | adverbTags | | 0 | "she corrected automatically [automatically]" | | 1 | "Lucien said dryly [dryly]" |
| | dialogueSentences | 37 | | tagDensity | 0.486 | | leniency | 0.973 | | rawRatio | 0.111 | | effectiveRatio | 0.108 | |
| 83.37% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1503 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slowly" | | 1 | "lightly" | | 2 | "truly" | | 3 | "slightly" | | 4 | "very" |
| |
| 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) | |
| 33.47% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1503 | | totalAiIsms | 20 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "echoed" | | 1 | "stark" | | 2 | "intensity" | | 3 | "weight" | | 4 | "flicker" | | 5 | "unreadable" | | 6 | "intricate" | | 7 | "chaotic" | | 8 | "charged" | | 9 | "comforting" | | 10 | "normalcy" | | 11 | "pulse" | | 12 | "silence" | | 13 | "fractured" | | 14 | "tracing" | | 15 | "electric" | | 16 | "familiar" | | 17 | "warmth" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "hung in the air" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "hung in the air" | | 1 | "sent a jolt through" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 68 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 68 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 87 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 43 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1499 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 1 | | matches | | 0 | "Outside, London roared on, indifferent and vast, but in the cramped, book-filled flat on Brick Lane, the world had narro…" |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 1034 | | uniqueNames | 12 | | maxNameDensity | 0.97 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Golden | 1 | | Empress | 1 | | Moreau | 1 | | Ptolemy | 2 | | Cardiff | 1 | | London | 2 | | Marseille | 1 | | Lucien | 9 | | Brick | 2 | | Lane | 2 | | Friday | 1 | | Rory | 10 |
| | persons | | 0 | "Empress" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Rory" |
| | places | | 0 | "Golden" | | 1 | "Cardiff" | | 2 | "London" | | 3 | "Marseille" | | 4 | "Brick" | | 5 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 63.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 2 | | matches | | 0 | "as if testing its weight" | | 1 | "as if anchoring herself to the earth" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.667 | | wordCount | 1499 | | matches | | 0 | "not for Eva, but because I heard you were here" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 87 | | matches | (empty) | |
| 97.79% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 46.84 | | std | 23.06 | | cv | 0.492 | | sampleLengths | | 0 | 92 | | 1 | 85 | | 2 | 52 | | 3 | 59 | | 4 | 59 | | 5 | 52 | | 6 | 46 | | 7 | 76 | | 8 | 70 | | 9 | 42 | | 10 | 49 | | 11 | 44 | | 12 | 44 | | 13 | 29 | | 14 | 29 | | 15 | 28 | | 16 | 6 | | 17 | 48 | | 18 | 22 | | 19 | 48 | | 20 | 54 | | 21 | 38 | | 22 | 63 | | 23 | 7 | | 24 | 8 | | 25 | 53 | | 26 | 37 | | 27 | 53 | | 28 | 53 | | 29 | 25 | | 30 | 21 | | 31 | 107 |
| |
| 94.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 68 | | matches | | 0 | "was slicked" | | 1 | "got tangled" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 171 | | matches | (empty) | |
| 11.49% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 1 | | flaggedSentences | 4 | | totalSentences | 87 | | ratio | 0.046 | | matches | | 0 | "But it was his eyes that stopped her breath in her throat—the heterochromatic mismatch of amber and black that had once haunted her dreams and now pinned her to the spot with an intensity that felt physical." | | 1 | "He didn't step back to invite her in; he simply stared, his cane tapping a silent, impatient rhythm against the worn linoleum of the entryway." | | 2 | "Rory took a step forward, then stopped, acutely aware of the space between them—a chasm filled with three years of silence." | | 3 | "The complicated terms on which they had parted—the fear, the misunderstanding, the sacrifice—still existed, but they felt smaller now in the face of his presence." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1044 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 36 | | adverbRatio | 0.034482758620689655 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.014367816091954023 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 87 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 87 | | mean | 17.23 | | std | 9.4 | | cv | 0.545 | | sampleLengths | | 0 | 26 | | 1 | 29 | | 2 | 37 | | 3 | 14 | | 4 | 19 | | 5 | 15 | | 6 | 37 | | 7 | 3 | | 8 | 24 | | 9 | 25 | | 10 | 15 | | 11 | 34 | | 12 | 10 | | 13 | 26 | | 14 | 17 | | 15 | 16 | | 16 | 16 | | 17 | 26 | | 18 | 10 | | 19 | 7 | | 20 | 11 | | 21 | 28 | | 22 | 7 | | 23 | 32 | | 24 | 20 | | 25 | 12 | | 26 | 5 | | 27 | 31 | | 28 | 21 | | 29 | 18 | | 30 | 14 | | 31 | 13 | | 32 | 15 | | 33 | 8 | | 34 | 14 | | 35 | 6 | | 36 | 21 | | 37 | 32 | | 38 | 12 | | 39 | 37 | | 40 | 7 | | 41 | 13 | | 42 | 16 | | 43 | 18 | | 44 | 11 | | 45 | 16 | | 46 | 12 | | 47 | 6 | | 48 | 9 | | 49 | 18 |
| |
| 53.64% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.3563218390804598 | | totalSentences | 87 | | uniqueOpeners | 31 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 64 | | matches | (empty) | | ratio | 0 | |
| 82.50% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 64 | | matches | | 0 | "She had rehearsed a dozen" | | 1 | "His platinum hair was slicked" | | 2 | "He didn't step back to" | | 3 | "she corrected automatically, her voice" | | 4 | "She shifted the strap of" | | 5 | "She hesitated, her hand gripping" | | 6 | "She stepped across the threshold." | | 7 | "She kept her distance, positioning" | | 8 | "He moved to the center" | | 9 | "she snapped, the defensiveness rising" | | 10 | "He turned to face her" | | 11 | "she said, her voice softer" | | 12 | "he countered, his voice tightening" | | 13 | "She laughed, a short, brittle" | | 14 | "He took a step toward" | | 15 | "He reached out, his hand" | | 16 | "She remembered the feel of" | | 17 | "His fingers finally brushed her" | | 18 | "She leaned into his hand" | | 19 | "she said, pulling back slightly," |
| | ratio | 0.344 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 64 | | matches | | 0 | "The third deadbolt slid back" | | 1 | "Rory stood on the other" | | 2 | "She had rehearsed a dozen" | | 3 | "Lucien Moreau looked exactly as" | | 4 | "The tailored charcoal suit was" | | 5 | "His platinum hair was slicked" | | 6 | "The name fell from his" | | 7 | "He didn't step back to" | | 8 | "she corrected automatically, her voice" | | 9 | "She shifted the strap of" | | 10 | "Lucien replied, his gaze dropping" | | 11 | "A flicker of something unreadable" | | 12 | "Rory frowned, her cool-headed logic" | | 13 | "Eva wouldn't leave Ptolemy alone" | | 14 | "Lucien said, finally stepping aside" | | 15 | "The movement was fluid, lacking" | | 16 | "She hesitated, her hand gripping" | | 17 | "The history between them was" | | 18 | "Attraction had been the spark," | | 19 | "She stepped across the threshold." |
| | ratio | 0.922 | |
| 78.13% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 64 | | matches | | 0 | "Yet, the threat in his" |
| | ratio | 0.016 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 13 | | matches | | 0 | "The third deadbolt slid back with a heavy, metallic clunk that echoed in the narrow stairwell, followed by the swift ratcheting of the second and first." | | 1 | "She had rehearsed a dozen excuses during the walk from the Golden Empress, ranging from a mistaken address to a desperate need for salt, but none of them prepar…" | | 2 | "But it was his eyes that stopped her breath in her throat—the heterochromatic mismatch of amber and black that had once haunted her dreams and now pinned her to…" | | 3 | "The name fell from his lips in that smooth, accented baritone, rolling over the syllables of her formal name as if testing its weight." | | 4 | "She shifted the strap of her delivery bag, the smell of garlic and chili oil clinging to her clothes, a stark contrast to the faint scent of sandalwood and ozon…" | | 5 | "The history between them was a minefield of unsaid apologies and a final night in Cardiff that had ended with her running to London and him vanishing into the s…" | | 6 | "Eva's flat was a chaotic shrine to research, just as she remembered, though the air felt heavier now, charged with a static that made the hair on her arms stand…" | | 7 | "She remembered the feel of his skin, cool but alive, and the way he used to look at her as if she were the only source of light in a dark world." | | 8 | "The anger that had sustained her for so long began to dissipate, leaving behind a raw, aching vulnerability." | | 9 | "She leaned into his hand despite herself, her eyes fluttering closed for a brief second before snapping open." | | 10 | "But all she saw was a raw, desperate honesty that mirrored her own hidden longing." | | 11 | "Lucien's mouth curved in response, a genuine smile that transformed his severe features." | | 12 | "Rory's hands found the lapels of his charcoal suit, gripping the fabric as if anchoring herself to the earth." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 6 | | matches | | 0 | "she corrected automatically, her voice steady despite the sudden hammering of her heart" | | 1 | "she snapped, the defensiveness rising before she could tamp it down" | | 2 | "she said, her voice softer now" | | 3 | "he countered, his voice tightening" | | 4 | "Lucien asked, his voice low, urgent" | | 5 | "Rory murmured, a faint smile touching her lips" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 16 | | fancyCount | 8 | | fancyTags | | 0 | "she corrected automatically (correct)" | | 1 | "Rory observed (observe)" | | 2 | "Lucien corrected (correct)" | | 3 | "she snapped (snap)" | | 4 | "Rory challenged (challenge)" | | 5 | "She laughed (laugh)" | | 6 | "she whispered (whisper)" | | 7 | "Rory murmured (murmur)" |
| | dialogueSentences | 37 | | tagDensity | 0.432 | | leniency | 0.865 | | rawRatio | 0.5 | | effectiveRatio | 0.432 | |