| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 29 | | tagDensity | 0.276 | | leniency | 0.552 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 88.03% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1253 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "sharply" | | 1 | "lazily" | | 2 | "slightly" |
| |
| 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) | |
| 32.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1253 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "warmth" | | 1 | "weight" | | 2 | "pulsed" | | 3 | "stomach" | | 4 | "flickered" | | 5 | "simmering" | | 6 | "throb" | | 7 | "pulse" | | 8 | "tapestry" | | 9 | "rhythmic" | | 10 | "tracing" | | 11 | "marble" | | 12 | "depths" | | 13 | "palpable" | | 14 | "shattered" |
| |
| 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 | 94 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 94 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 114 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 22 | | markdownWords | 26 | | totalWords | 1233 | | ratio | 0.021 | | matches | | 0 | "alive" | | 1 | "consumption" | | 2 | "overripe" | | 3 | "\"…more… never enough… always hungry…\"" | | 4 | "pulsing" | | 5 | "specialty" | | 6 | "wrong" | | 7 | "through" | | 8 | "into" | | 9 | "folded" | | 10 | "skin" | | 11 | "bribing" | | 12 | "trading" | | 13 | "changing" | | 14 | "Shit." | | 15 | "Demanding." | | 16 | "moved." | | 17 | "unfolded" | | 18 | "twisting" | | 19 | "key" | | 20 | "melted" | | 21 | "good." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.20% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1074 | | uniqueNames | 6 | | maxNameDensity | 1.68 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 18 | | London | 1 | | Nyx | 7 | | Isolde | 10 | | Fae | 2 | | One | 4 |
| | persons | | 0 | "Rory" | | 1 | "Nyx" | | 2 | "Isolde" | | 3 | "Fae" |
| | places | | | globalScore | 0.662 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 69 | | glossingSentenceCount | 5 | | matches | | 0 | "as if breathing" | | 1 | "looked like human ribcages" | | 2 | "quite reflect right—her image in each was slightly off, her hair too long in one, her eyes too dark in another, her smile too wide in a third" | | 3 | "looked like—" | | 4 | "looked like—" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 3.244 | | wordCount | 1233 | | matches | | 0 | "not from cold, but from the sheer weight of the atmosphere pressing back" | | 1 | "not in hunger, but in recognition" | | 2 | "not in wind, but in voices" | | 3 | "Not the Fae blade at her belt, but something older, its edge jagged like broken teeth, the hilt" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 114 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 30.07 | | std | 22.94 | | cv | 0.763 | | sampleLengths | | 0 | 72 | | 1 | 28 | | 2 | 44 | | 3 | 44 | | 4 | 73 | | 5 | 19 | | 6 | 8 | | 7 | 63 | | 8 | 48 | | 9 | 23 | | 10 | 34 | | 11 | 7 | | 12 | 65 | | 13 | 88 | | 14 | 3 | | 15 | 12 | | 16 | 53 | | 17 | 20 | | 18 | 51 | | 19 | 14 | | 20 | 35 | | 21 | 38 | | 22 | 6 | | 23 | 77 | | 24 | 5 | | 25 | 15 | | 26 | 16 | | 27 | 16 | | 28 | 43 | | 29 | 13 | | 30 | 45 | | 31 | 16 | | 32 | 7 | | 33 | 25 | | 34 | 2 | | 35 | 6 | | 36 | 27 | | 37 | 9 | | 38 | 37 | | 39 | 11 | | 40 | 15 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 94 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 196 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 114 | | ratio | 0.14 | | matches | | 0 | "One moment, the damp London air clung to her skin, the next—warmth, thick as honey, wrapped around her." | | 1 | "She exhaled sharply, watching her breath curl into the air—not from cold, but from the sheer weight of the atmosphere pressing back." | | 2 | "The ground beneath her boots wasn’t earth—it was something *alive*, a spongy black moss that pulsed faintly underfoot, as if breathing." | | 3 | "Rory’s stomach twisted—not in hunger, but in recognition." | | 4 | "Their leaves weren’t green but a sickly gold, veined with crimson, and they whispered as the group passed—not in wind, but in voices." | | 5 | "The stairs—if they could be called that—were more like tongues of stone, slick with something that might’ve been condensation or might’ve been saliva." | | 6 | "The third—" | | 7 | "Their hands—too many fingers, too many joints—plucked at a harp made of what looked like human ribcages." | | 8 | "The back wall of the hall wasn’t a wall at all, but a curtain of living flesh—muscle and sinew woven into a tapestry that breathed in slow, rhythmic pulses." | | 9 | "She stepped through—and the world *folded*." | | 10 | "The room was circular, the walls lined with mirrors that didn’t quite reflect right—her image in each was slightly off, her hair too long in one, her eyes too dark in another, her smile too wide in a third." | | 11 | "Not the Fae blade at her belt, but something older, its edge jagged like broken teeth, the hilt wrapped in what looked like—" | | 12 | "In their depths, Rory saw movement—figures stepping closer, their faces blurred but their hunger palpable." | | 13 | "And then—" | | 14 | "It *unfolded*, the blade splitting into dozens of smaller teeth, the hilt elongating, the skin wrapping it *twisting* into something that looked like—" | | 15 | "\"—a *key*,\" Rory realised, just as the mirrors shattered." |
| |
| 98.86% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1041 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.04130643611911623 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.004803073967339097 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 114 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 114 | | mean | 10.82 | | std | 7.24 | | cv | 0.67 | | sampleLengths | | 0 | 15 | | 1 | 18 | | 2 | 17 | | 3 | 22 | | 4 | 11 | | 5 | 13 | | 6 | 4 | | 7 | 5 | | 8 | 21 | | 9 | 7 | | 10 | 9 | | 11 | 2 | | 12 | 18 | | 13 | 17 | | 14 | 9 | | 15 | 7 | | 16 | 20 | | 17 | 8 | | 18 | 5 | | 19 | 16 | | 20 | 17 | | 21 | 14 | | 22 | 5 | | 23 | 5 | | 24 | 3 | | 25 | 15 | | 26 | 23 | | 27 | 25 | | 28 | 8 | | 29 | 18 | | 30 | 9 | | 31 | 7 | | 32 | 6 | | 33 | 7 | | 34 | 16 | | 35 | 2 | | 36 | 12 | | 37 | 14 | | 38 | 6 | | 39 | 3 | | 40 | 4 | | 41 | 9 | | 42 | 23 | | 43 | 17 | | 44 | 16 | | 45 | 25 | | 46 | 18 | | 47 | 16 | | 48 | 27 | | 49 | 2 |
| |
| 56.14% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3684210526315789 | | totalSentences | 114 | | uniqueOpeners | 42 | |
| 39.22% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 85 | | matches | | 0 | "Then her knees hit cold" |
| | ratio | 0.012 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 85 | | matches | | 0 | "She exhaled sharply, watching her" | | 1 | "they murmured, voice layered with" | | 2 | "She crouched, brushing her fingers" | | 3 | "She didn’t walk so much" | | 4 | "It was *overripe*, bursting at" | | 5 | "She snatched her hand back." | | 6 | "Their leaves weren’t green but" | | 7 | "She touched it through her" | | 8 | "She turned away." | | 9 | "Their hands—too many fingers, too" | | 10 | "It was also *wrong*, the" | | 11 | "She stepped through—and the world" | | 12 | "She flinched as the reflection’s" | | 13 | "Her skin beneath the half-Fae’s" | | 14 | "It *unfolded*, the blade splitting" | | 15 | "They *melted*, dripping down the" | | 16 | "It was a throat." |
| | ratio | 0.2 | |
| 30.59% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 85 | | matches | | 0 | "The pendant burned against Rory’s" | | 1 | "The scent hit first: crushed" | | 2 | "She exhaled sharply, watching her" | | 3 | "Nyx materialised beside her, their" | | 4 | "they murmured, voice layered with" | | 5 | "Rory didn’t need the warning." | | 6 | "The ground beneath her boots" | | 7 | "She crouched, brushing her fingers" | | 8 | "The strands recoiled, then stretched" | | 9 | "Isolde glided past them, her" | | 10 | "She didn’t walk so much" | | 11 | "Vineyards stretched upward, grapes swelling" | | 12 | "Rory’s stomach twisted—not in hunger," | | 13 | "The fruit wasn’t just ripe." | | 14 | "It was *overripe*, bursting at" | | 15 | "Flies the size of her" | | 16 | "Nyx said, just as Rory’s" | | 17 | "She snatched her hand back." | | 18 | "The grapes wept." | | 19 | "The path narrowed between two" |
| | ratio | 0.859 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 85 | | matches | (empty) | | ratio | 0 | |
| 26.58% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 7 | | matches | | 0 | "The ground beneath her boots wasn’t earth—it was something *alive*, a spongy black moss that pulsed faintly underfoot, as if breathing." | | 1 | "Vineyards stretched upward, grapes swelling like obscene jewels, their skins split to reveal flesh that dripped nectar onto the path." | | 2 | "At the top, the hall yawned before them, a cavernous space lit by thousands of floating orbs that might’ve been lanterns or might’ve been eyes." | | 3 | "Another bore nothing but bones, picked clean and polished to a high shine, arranged in careful patterns that made Rory’s eyes ache if she looked too long." | | 4 | "Then her knees hit cold marble, her palms slapping against a floor so polished she could see her own face staring back, eyes wide." | | 5 | "The room was circular, the walls lined with mirrors that didn’t quite reflect right—her image in each was slightly off, her hair too long in one, her eyes too d…" | | 6 | "It *unfolded*, the blade splitting into dozens of smaller teeth, the hilt elongating, the skin wrapping it *twisting* into something that looked like—" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 3 | | matches | | 0 | "they murmured, voice layered with the hum of distant laughter" | | 1 | "Isolde turned, the blade drinking it in" | | 2 | "Rory snapped, but the words died as she looked down" |
| |
| 12.07% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 4 | | fancyTags | | 0 | "they murmured (murmur)" | | 1 | "Rory caught (catch)" | | 2 | "she breathed (breathe)" | | 3 | "Rory snapped (snap)" |
| | dialogueSentences | 29 | | tagDensity | 0.207 | | leniency | 0.414 | | rawRatio | 0.667 | | effectiveRatio | 0.276 | |