| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 1 | | adverbTags | | 0 | "His voice dropped just [just]" |
| | dialogueSentences | 39 | | tagDensity | 0.282 | | leniency | 0.564 | | rawRatio | 0.091 | | effectiveRatio | 0.051 | |
| 83.15% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 890 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | |
| 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) | |
| 38.20% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 890 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "pulse" | | 1 | "flicked" | | 2 | "weight" | | 3 | "tension" | | 4 | "charged" | | 5 | "flickered" | | 6 | "silence" | | 7 | "warmth" | | 8 | "footsteps" |
| |
| 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 | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 69 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 96 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 35 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 884 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 67.13% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 724 | | uniqueNames | 5 | | maxNameDensity | 1.66 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 12 | | Brick | 1 | | Lane | 1 | | Eva | 2 | | Lucien | 4 |
| | persons | | | places | | | globalScore | 0.671 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 46 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 884 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 96 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 40 | | mean | 22.1 | | std | 21.91 | | cv | 0.991 | | sampleLengths | | 0 | 60 | | 1 | 91 | | 2 | 9 | | 3 | 6 | | 4 | 14 | | 5 | 8 | | 6 | 31 | | 7 | 19 | | 8 | 11 | | 9 | 89 | | 10 | 9 | | 11 | 14 | | 12 | 33 | | 13 | 14 | | 14 | 23 | | 15 | 5 | | 16 | 10 | | 17 | 6 | | 18 | 14 | | 19 | 51 | | 20 | 10 | | 21 | 23 | | 22 | 8 | | 23 | 7 | | 24 | 40 | | 25 | 13 | | 26 | 4 | | 27 | 18 | | 28 | 39 | | 29 | 12 | | 30 | 8 | | 31 | 46 | | 32 | 3 | | 33 | 10 | | 34 | 5 | | 35 | 7 | | 36 | 50 | | 37 | 6 | | 38 | 51 | | 39 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 69 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 144 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 1 | | flaggedSentences | 8 | | totalSentences | 96 | | ratio | 0.083 | | matches | | 0 | "The flat smelled different—less like stale coffee and more like something sharp and metallic, like the edge of a blade left too long in the rain." | | 1 | "The cane in his hand wasn’t resting; it leaned slightly, as if he’d been about to tap it against the floor." | | 2 | "The flat was a maze of books and scrolls, the air thick with the scent of old paper and something earthier—Eva’s herbs, maybe, or the faintest trace of smoke from the curry house below." | | 3 | "But the way he stood there, all polished edges and dangerous stillness, made her remember the last time she’d seen him—how he’d looked at her like she was something precious, something worth saving." | | 4 | "Rory studied him—the way his jaw tightened, the way his black eye flickered with something she couldn’t name." | | 5 | "And more than that—she needed to know why he’d left her like that." | | 6 | "She’d thought she’d forgotten the way his voice sounded when he said her name, the way his hands felt when they—" | | 7 | "Only then did she allow herself to remember the last time she’d seen him—how he’d looked at her like she was the only thing in the world that mattered." |
| |
| 94.25% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 730 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 34 | | adverbRatio | 0.04657534246575343 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.00821917808219178 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 96 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 96 | | mean | 9.21 | | std | 7.57 | | cv | 0.822 | | sampleLengths | | 0 | 20 | | 1 | 14 | | 2 | 26 | | 3 | 25 | | 4 | 21 | | 5 | 26 | | 6 | 19 | | 7 | 9 | | 8 | 3 | | 9 | 3 | | 10 | 9 | | 11 | 5 | | 12 | 2 | | 13 | 6 | | 14 | 22 | | 15 | 9 | | 16 | 14 | | 17 | 3 | | 18 | 2 | | 19 | 10 | | 20 | 1 | | 21 | 17 | | 22 | 34 | | 23 | 15 | | 24 | 3 | | 25 | 4 | | 26 | 16 | | 27 | 6 | | 28 | 3 | | 29 | 12 | | 30 | 2 | | 31 | 25 | | 32 | 8 | | 33 | 6 | | 34 | 3 | | 35 | 5 | | 36 | 16 | | 37 | 7 | | 38 | 5 | | 39 | 3 | | 40 | 7 | | 41 | 3 | | 42 | 3 | | 43 | 4 | | 44 | 10 | | 45 | 6 | | 46 | 5 | | 47 | 2 | | 48 | 33 | | 49 | 5 |
| |
| 47.57% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3229166666666667 | | totalSentences | 96 | | uniqueOpeners | 31 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 63 | | matches | | 0 | "Just watched, tail flicking like" | | 1 | "Then he turned, cane tapping" | | 2 | "Only then did she let" | | 3 | "Only then did she allow" |
| | ratio | 0.063 | |
| 54.92% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 63 | | matches | | 0 | "She froze mid-step, her fingers" | | 1 | "His suit jacket was unbuttoned," | | 2 | "he said, voice smooth as" | | 3 | "His gaze flicked to the" | | 4 | "She stepped inside, the door" | | 5 | "He didn’t hiss." | | 6 | "He didn’t even glare." | | 7 | "His voice dropped, just low" | | 8 | "He tapped the cane against" | | 9 | "His gaze darkened." | | 10 | "She exhaled sharply." | | 11 | "His lips quirked" | | 12 | "She could walk out now." | | 13 | "she asked, voice steadier than" | | 14 | "He stepped forward, the cane" | | 15 | "His smile was slow, deliberate." | | 16 | "She knew that look." | | 17 | "She’d seen it before, in" | | 18 | "His gaze dropped to her" | | 19 | "She could refuse." |
| | ratio | 0.413 | |
| 47.30% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 63 | | matches | | 0 | "The door creaked open before" | | 1 | "She froze mid-step, her fingers" | | 2 | "The flat smelled different—less like" | | 3 | "Lucien stood just inside, backlit" | | 4 | "The cane in his hand" | | 5 | "His suit jacket was unbuttoned," | | 6 | "The amber eye caught the" | | 7 | "he said, voice smooth as" | | 8 | "Rory’s pulse jumped." | | 9 | "A ghost of a smile" | | 10 | "His gaze flicked to the" | | 11 | "The words hung between them," | | 12 | "Rory’s fingers twitched." | | 13 | "Lucien exhaled through his nose," | | 14 | "She stepped inside, the door" | | 15 | "The flat was a maze" | | 16 | "Ptolemy, the tabby cat, lifted" | | 17 | "He didn’t hiss." | | 18 | "He didn’t even glare." | | 19 | "Lucien didn’t move from the" |
| | ratio | 0.825 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 63 | | matches | (empty) | | ratio | 0 | |
| 85.71% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 2 | | matches | | 0 | "She stepped inside, the door swinging shut behind her with a finality that made her skin prickle." | | 1 | "Rory rolled her shoulders, trying to ease the tension knotting her neck." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 4 | | matches | | 0 | "he said, voice smooth as aged whiskey" | | 1 | "she asked, voice steadier than she felt" | | 2 | "He stepped, the cane sliding between them like a silent barrier" | | 3 | "she said, voice rough" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 39 | | tagDensity | 0.103 | | leniency | 0.205 | | rawRatio | 0 | | effectiveRatio | 0 | |