| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 1 | | adverbTags | | 0 | "He stepped further [further]" |
| | dialogueSentences | 53 | | tagDensity | 0.245 | | leniency | 0.491 | | rawRatio | 0.077 | | effectiveRatio | 0.038 | |
| 91.89% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1233 | | totalAiIsmAdverbs | 2 | | 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) | |
| 63.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1233 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "unreadable" | | 1 | "stomach" | | 2 | "silence" | | 3 | "electric" | | 4 | "could feel" | | 5 | "charged" | | 6 | "scanned" | | 7 | "racing" | | 8 | "weight" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "weight of words/silence" | | count | 1 |
|
| | highlights | | 0 | "the weight of his words" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 92 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 92 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 130 | | 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 | 10 | | markdownWords | 14 | | totalWords | 1221 | | ratio | 0.011 | | matches | | 0 | "clink" | | 1 | "You can’t hide forever, Laila." | | 2 | "thunk" | | 3 | "my" | | 4 | "friendly" | | 5 | "knew" | | 6 | "Tomorrow." | | 7 | "Laila." | | 8 | "was." | | 9 | "did" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 97.15% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 946 | | uniqueNames | 6 | | maxNameDensity | 1.06 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Evan | 1 | | Moreau | 1 | | Rory | 10 | | Jenga | 1 | | Silence | 1 | | Lucien | 6 |
| | persons | | 0 | "Evan" | | 1 | "Moreau" | | 2 | "Rory" | | 3 | "Silence" | | 4 | "Lucien" |
| | places | (empty) | | globalScore | 0.971 | | windowScore | 1 | |
| 62.28% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 57 | | glossingSentenceCount | 2 | | matches | | 0 | "something like burnt sugar and old books" | | 1 | "smelled like ozone, like the moment before" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1221 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 130 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 21.42 | | std | 17.32 | | cv | 0.808 | | sampleLengths | | 0 | 62 | | 1 | 67 | | 2 | 11 | | 3 | 23 | | 4 | 65 | | 5 | 3 | | 6 | 56 | | 7 | 40 | | 8 | 20 | | 9 | 9 | | 10 | 42 | | 11 | 42 | | 12 | 33 | | 13 | 9 | | 14 | 6 | | 15 | 21 | | 16 | 7 | | 17 | 40 | | 18 | 2 | | 19 | 5 | | 20 | 32 | | 21 | 7 | | 22 | 34 | | 23 | 13 | | 24 | 19 | | 25 | 7 | | 26 | 23 | | 27 | 7 | | 28 | 13 | | 29 | 17 | | 30 | 32 | | 31 | 18 | | 32 | 20 | | 33 | 6 | | 34 | 19 | | 35 | 3 | | 36 | 4 | | 37 | 33 | | 38 | 17 | | 39 | 11 | | 40 | 10 | | 41 | 31 | | 42 | 28 | | 43 | 9 | | 44 | 14 | | 45 | 61 | | 46 | 1 | | 47 | 40 | | 48 | 3 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 92 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 167 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 130 | | ratio | 0.062 | | matches | | 0 | "No one visited at this hour—not unless they were lost, drunk, or trouble." | | 1 | "Not a fist this time—knuckles, precise." | | 2 | "The door swung open just enough to let the hallway’s stale air rush in, carrying the scent of rain and something darker—something like burnt sugar and old books." | | 3 | "He stepped inside, his shoulder brushing hers as he passed, close enough that she caught the faintest trace of his cologne—something expensive, something that made her stomach clench." | | 4 | "He turned, leaning slightly on his cane, and let his gaze drag over her—rumpled T-shirt, sleep-mussed hair, the way her fingers dug into her own biceps." | | 5 | "“At midnight? In *my* flat?” She gestured to the chaos around them—stacks of books teetering like Jenga towers, half-empty coffee cups, the glow of her laptop screen casting blue light over the chaos." | | 6 | "The name—her old name, the one she’d shed like a skin—made her flinch." | | 7 | "Missed the way his voice dropped when he was angry, the way his hands—" |
| |
| 91.11% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 957 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 48 | | adverbRatio | 0.050156739811912224 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.006269592476489028 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 130 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 130 | | mean | 9.39 | | std | 7.52 | | cv | 0.801 | | sampleLengths | | 0 | 23 | | 1 | 13 | | 2 | 13 | | 3 | 13 | | 4 | 16 | | 5 | 16 | | 6 | 2 | | 7 | 28 | | 8 | 5 | | 9 | 4 | | 10 | 6 | | 11 | 1 | | 12 | 9 | | 13 | 7 | | 14 | 7 | | 15 | 23 | | 16 | 16 | | 17 | 9 | | 18 | 17 | | 19 | 3 | | 20 | 5 | | 21 | 3 | | 22 | 20 | | 23 | 28 | | 24 | 6 | | 25 | 28 | | 26 | 6 | | 27 | 20 | | 28 | 4 | | 29 | 5 | | 30 | 26 | | 31 | 9 | | 32 | 7 | | 33 | 33 | | 34 | 9 | | 35 | 3 | | 36 | 26 | | 37 | 4 | | 38 | 4 | | 39 | 5 | | 40 | 6 | | 41 | 1 | | 42 | 2 | | 43 | 10 | | 44 | 5 | | 45 | 3 | | 46 | 5 | | 47 | 2 | | 48 | 3 | | 49 | 18 |
| |
| 56.41% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.36153846153846153 | | totalSentences | 130 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 85 | | matches | | 0 | "Then the second." | | 1 | "Instead, he moved to the" | | 2 | "Of course it was something" | | 3 | "Of course it was dangerous." | | 4 | "Then Lucien exhaled, sharp and" | | 5 | "Then at him." |
| | ratio | 0.071 | |
| 69.41% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 85 | | matches | | 0 | "She set the mug down" | | 1 | "She’d installed them herself after" | | 2 | "*You can’t hide forever, Laila.*" | | 3 | "She pressed her eye to" | | 4 | "His face was unreadable, but" | | 5 | "She should’ve known." | | 6 | "He stepped inside, his shoulder" | | 7 | "he said, his voice smooth," | | 8 | "He turned, leaning slightly on" | | 9 | "She gestured to the chaos" | | 10 | "His smirk deepened." | | 11 | "He stepped further into the" | | 12 | "His heterochromatic eyes were too" | | 13 | "She exhaled, rubbing her temples." | | 14 | "She dropped her hands" | | 15 | "His jaw tightened." | | 16 | "She stepped closer, close enough" | | 17 | "His voice dropped, rougher now" | | 18 | "She should’ve known." | | 19 | "He finally looked at her," |
| | ratio | 0.376 | |
| 71.76% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 66 | | totalSentences | 85 | | matches | | 0 | "The knock came just after" | | 1 | "Rory froze mid-sip, the lukewarm" | | 2 | "Ptolemy’s ears twitched, his tail" | | 3 | "She set the mug down" | | 4 | "The flat smelled of old" | | 5 | "She’d installed them herself after" | | 6 | "*You can’t hide forever, Laila.*" | | 7 | "The knock came again." | | 8 | "Rory exhaled through her nose" | | 9 | "The floorboards creaked under her" | | 10 | "She pressed her eye to" | | 11 | "Lucien Moreau stood in the" | | 12 | "His face was unreadable, but" | | 13 | "The amber eye caught the" | | 14 | "She should’ve known." | | 15 | "Rory unlatched the first bolt." | | 16 | "The third stuck, as it" | | 17 | "The door swung open just" | | 18 | "Lucien didn’t wait for an" | | 19 | "He stepped inside, his shoulder" |
| | ratio | 0.776 | |
| 58.82% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 85 | | matches | | | ratio | 0.012 | |
| 98.21% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 2 | | matches | | 0 | "He stepped inside, his shoulder brushing hers as he passed, close enough that she caught the faintest trace of his cologne—something expensive, something that m…" | | 1 | "And then he was gone, the door clicking shut behind him, leaving her alone with the hum of the fridge and the weight of his words pressing down on her like a pr…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 53 | | tagDensity | 0.019 | | leniency | 0.038 | | rawRatio | 0 | | effectiveRatio | 0 | |