| 26.09% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 4 | | adverbTags | | 0 | "he said finally [finally]" | | 1 | "he said finally [finally]" | | 2 | "she asked again [again]" | | 3 | "he said finally [finally]" |
| | dialogueSentences | 46 | | tagDensity | 0.435 | | leniency | 0.87 | | rawRatio | 0.2 | | effectiveRatio | 0.174 | |
| 72.92% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1477 | | totalAiIsmAdverbs | 8 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | adverb | "barely above a whisper" | | count | 1 |
|
| | highlights | | 0 | "really" | | 1 | "perfectly" | | 2 | "suddenly" | | 3 | "slightly" | | 4 | "barely above a whisper" |
| |
| 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) | |
| 0.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1477 | | totalAiIsms | 36 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "shattered" | | 1 | "glinting" | | 2 | "pulse" | | 3 | "aligned" | | 4 | "flickered" | | 5 | "unreadable" | | 6 | "rhythmic" | | 7 | "echoing" | | 8 | "weight" | | 9 | "flicked" | | 10 | "stomach" | | 11 | "could feel" | | 12 | "electric" | | 13 | "wavered" | | 14 | "tracing" | | 15 | "whisper" | | 16 | "trembled" | | 17 | "intensity" |
| |
| 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 | 0 | | narrationSentences | 102 | | matches | (empty) | |
| 44.82% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 5 | | hedgeCount | 2 | | narrationSentences | 102 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 128 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 37 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 5 | | markdownWords | 7 | | totalWords | 1467 | | ratio | 0.005 | | matches | | 0 | "The Great Wave" | | 1 | "thock-thock" | | 2 | "look" | | 3 | "you" | | 4 | "smell" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 30 | | unquotedAttributions | 0 | | matches | (empty) | |
| 84.11% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 1290 | | uniqueNames | 7 | | maxNameDensity | 1.32 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Great | 1 | | Carter | 1 | | Moreau | 1 | | Rory | 17 | | Lucien | 11 | | Eva | 1 | | Should | 6 |
| | persons | | 0 | "Carter" | | 1 | "Moreau" | | 2 | "Rory" | | 3 | "Lucien" | | 4 | "Eva" | | 5 | "Should" |
| | places | (empty) | | globalScore | 0.841 | | windowScore | 1 | |
| 44.37% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 71 | | glossingSentenceCount | 3 | | matches | | 0 | "something like smoke and iron, clinging to h" | | 1 | "quite a smile" | | 2 | "quite a smile" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1467 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 128 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 54 | | mean | 27.17 | | std | 19.99 | | cv | 0.736 | | sampleLengths | | 0 | 1 | | 1 | 56 | | 2 | 50 | | 3 | 17 | | 4 | 83 | | 5 | 25 | | 6 | 44 | | 7 | 17 | | 8 | 31 | | 9 | 55 | | 10 | 7 | | 11 | 65 | | 12 | 21 | | 13 | 9 | | 14 | 1 | | 15 | 31 | | 16 | 2 | | 17 | 5 | | 18 | 6 | | 19 | 19 | | 20 | 64 | | 21 | 20 | | 22 | 46 | | 23 | 5 | | 24 | 61 | | 25 | 10 | | 26 | 51 | | 27 | 15 | | 28 | 12 | | 29 | 38 | | 30 | 12 | | 31 | 6 | | 32 | 37 | | 33 | 22 | | 34 | 20 | | 35 | 32 | | 36 | 15 | | 37 | 54 | | 38 | 13 | | 39 | 61 | | 40 | 10 | | 41 | 51 | | 42 | 15 | | 43 | 12 | | 44 | 38 | | 45 | 12 | | 46 | 6 | | 47 | 37 | | 48 | 22 | | 49 | 20 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 102 | | matches | | |
| 84.06% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 230 | | matches | | 0 | "was memorising" | | 1 | "was trying" | | 2 | "was memorising" | | 3 | "was trying" |
| |
| 53.57% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 128 | | ratio | 0.031 | | matches | | 0 | "The door swung wider, and the air inside the flat—already thick with the scent of fried garlic and stale beer—shifted." | | 1 | "The flat—small, cramped, smelling of takeaway and old books—suddenly felt too small." | | 2 | "Instead, he let his gaze drift over her—really *look* at her—for the first time since he’d walked in." | | 3 | "But the words died in her throat as he reached out, his fingers brushing against the scar on her left wrist—the one from the childhood accident, the one she’d never told anyone about, not even Eva." |
| |
| 83.89% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1301 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 76 | | adverbRatio | 0.05841660261337433 | | lyAdverbCount | 16 | | lyAdverbRatio | 0.012298232129131437 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 128 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 128 | | mean | 11.45 | | std | 8.79 | | cv | 0.768 | | sampleLengths | | 0 | 30 | | 1 | 26 | | 2 | 4 | | 3 | 15 | | 4 | 31 | | 5 | 17 | | 6 | 20 | | 7 | 16 | | 8 | 2 | | 9 | 28 | | 10 | 17 | | 11 | 25 | | 12 | 29 | | 13 | 15 | | 14 | 11 | | 15 | 6 | | 16 | 11 | | 17 | 16 | | 18 | 4 | | 19 | 12 | | 20 | 18 | | 21 | 14 | | 22 | 11 | | 23 | 7 | | 24 | 5 | | 25 | 18 | | 26 | 25 | | 27 | 17 | | 28 | 14 | | 29 | 7 | | 30 | 8 | | 31 | 1 | | 32 | 1 | | 33 | 10 | | 34 | 3 | | 35 | 2 | | 36 | 16 | | 37 | 2 | | 38 | 3 | | 39 | 2 | | 40 | 6 | | 41 | 5 | | 42 | 8 | | 43 | 6 | | 44 | 3 | | 45 | 5 | | 46 | 6 | | 47 | 36 | | 48 | 14 | | 49 | 16 |
| |
| 46.09% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.2265625 | | totalSentences | 128 | | uniqueOpeners | 29 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 100 | | matches | | 0 | "Instead, he let his gaze" | | 1 | "Just stared at him, her" | | 2 | "Instead, he let his gaze" | | 3 | "Instead, he let his gaze" |
| | ratio | 0.04 | |
| 60.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 100 | | matches | | 0 | "She didn’t even look up" | | 1 | "Her fingers tightened around the" | | 2 | "she said, voice flat, but" | | 3 | "His tailored charcoal suit was" | | 4 | "he said, his voice smooth" | | 5 | "he shot back, stepping fully" | | 6 | "she asked, voice dangerously quiet" | | 7 | "His black eye darkened, just" | | 8 | "he said finally, tucking the" | | 9 | "She didn’t breathe." | | 10 | "he agreed, stepping closer" | | 11 | "She should have stepped back." | | 12 | "His touch was light, almost" | | 13 | "he murmured, his voice dropping" | | 14 | "She could feel the heat" | | 15 | "Her fingers twitched against the" | | 16 | "He didn’t answer right away." | | 17 | "he said finally, his voice" | | 18 | "She should have been angry." | | 19 | "she said, but her voice" |
| | ratio | 0.4 | |
| 45.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 83 | | totalSentences | 100 | | matches | | 0 | "The door creaked open before" | | 1 | "Glass shattered like a scream," | | 2 | "Rory Carter didn’t flinch." | | 3 | "She didn’t even look up" | | 4 | "Her fingers tightened around the" | | 5 | "she said, voice flat, but" | | 6 | "The door swung wider, and" | | 7 | "The man who stepped over" | | 8 | "His tailored charcoal suit was" | | 9 | "Lucien Moreau’s amber eye flickered" | | 10 | "he said, his voice smooth" | | 11 | "Rory exhaled through her nose," | | 12 | "he shot back, stepping fully" | | 13 | "The cane tapped against the" | | 14 | "The flat—small, cramped, smelling of" | | 15 | "The walls seemed to press" | | 16 | "Rory’s gaze flicked to the" | | 17 | "The way his lips quirked," | | 18 | "she asked, voice dangerously quiet" | | 19 | "Lucien didn’t answer right away." |
| | ratio | 0.83 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 100 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 12 | | matches | | 0 | "The door creaked open before the deadbolt could even click into place, swinging inward with a force that sent the framed poster of *The Great Wave* crashing to …" | | 1 | "His tailored charcoal suit was immaculate, the lapels perfectly aligned, but his platinum blond hair was tousled, as if he’d been running his fingers through it…" | | 2 | "Rory exhaled through her nose, a sound that was half-laugh, half-snarl." | | 3 | "The black shoulder-length hair, the bright blue eyes that had always seemed to see too much, the way her jaw was set, stubborn and unyielding." | | 4 | "The way her black t-shirt clung to her shoulders, the way her jeans hugged her hips, the way her breath came a little faster now, her chest rising and falling j…" | | 5 | "He reached out again, this time his fingers brushing against her cheek, his thumb tracing the line of her jaw." | | 6 | "Rory’s skin prickled where he touched her, her body arching into his touch without her even realising it." | | 7 | "Rory’s breath hitched, her body arching into his touch, her fingers tightening around the knife handle." | | 8 | "Rory’s breath came faster now, her chest rising and falling, her body reacting to him in ways she didn’t understand." | | 9 | "The way her black t-shirt clung to her shoulders, the way her jeans hugged her hips, the way her breath came a little faster now, her chest rising and falling j…" | | 10 | "He reached out again, this time his fingers brushing against her cheek, his thumb tracing the line of her jaw." | | 11 | "Rory’s skin prickled where he touched her, her body arching into his touch without her even realising it." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 13 | | matches | | 0 | "she asked, voice dangerously quiet" | | 1 | "he murmured, his voice dropping to something low and rough" | | 2 | "he said finally, his voice rough" | | 3 | "she said, but her voice wasn’t steady" | | 4 | "she said, her voice barely a whisper" | | 5 | "he agreed, his voice low and rough" | | 6 | "he murmured, his voice rough" | | 7 | "she asked again, her voice barely a whisper" | | 8 | "he said finally, his voice rough" | | 9 | "she said, but her voice wasn’t steady" | | 10 | "she said, her voice barely a whisper" | | 11 | "he agreed, his voice low and rough" | | 12 | "the figure choked, their voice trembling" |
| |
| 19.57% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 19 | | fancyCount | 6 | | fancyTags | | 0 | "he agreed (agree)" | | 1 | "he murmured (murmur)" | | 2 | "he agreed (agree)" | | 3 | "he murmured (murmur)" | | 4 | "he agreed (agree)" | | 5 | "the figure choked (choke)" |
| | dialogueSentences | 46 | | tagDensity | 0.413 | | leniency | 0.826 | | rawRatio | 0.316 | | effectiveRatio | 0.261 | |