| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 1 | | adverbTags | | 0 | "Nyx said quietly [quietly]" |
| | dialogueSentences | 33 | | tagDensity | 0.576 | | leniency | 1 | | rawRatio | 0.053 | | effectiveRatio | 0.053 | |
| 92.76% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1382 | | 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) | |
| 24.02% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1382 | | totalAiIsms | 21 | | found | | | highlights | | 0 | "velvet" | | 1 | "fractured" | | 2 | "crystal" | | 3 | "pulse" | | 4 | "warmth" | | 5 | "flickered" | | 6 | "stomach" | | 7 | "throb" | | 8 | "familiar" | | 9 | "shimmered" | | 10 | "rhythmic" | | 11 | "whisper" | | 12 | "unreadable" | | 13 | "structure" | | 14 | "weight" | | 15 | "pulsed" | | 16 | "grave" |
| |
| 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 | 92 | | matches | (empty) | |
| 96.27% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 92 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 107 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 16 | | markdownWords | 21 | | totalWords | 1365 | | ratio | 0.015 | | matches | | 0 | "this" | | 1 | "moved" | | 2 | "pulled" | | 3 | "wanted" | | 4 | "alive" | | 5 | "inviting" | | 6 | "smiled" | | 7 | "wrong" | | 8 | "pulse" | | 9 | "hungry" | | 10 | "changed" | | 11 | "always" | | 12 | "For when the shadows grow teeth" | | 13 | "tasting" | | 14 | "curious" | | 15 | "finally" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 59.79% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 66 | | wordCount | 1164 | | uniqueNames | 15 | | maxNameDensity | 1.8 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Heartstone | 6 | | Rory | 21 | | London | 1 | | November | 1 | | Eva | 12 | | Thames | 1 | | Brixton | 1 | | Swallowed | 1 | | Nyx | 13 | | Fae | 1 | | Isolde | 2 | | Evan | 2 | | Cardiff | 2 | | Carter | 1 | | Veil | 1 |
| | persons | | 0 | "Heartstone" | | 1 | "Rory" | | 2 | "Eva" | | 3 | "Nyx" | | 4 | "Isolde" | | 5 | "Evan" | | 6 | "Carter" |
| | places | | 0 | "London" | | 1 | "Thames" | | 2 | "Brixton" | | 3 | "Cardiff" |
| | globalScore | 0.598 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 57 | | glossingSentenceCount | 1 | | matches | | 0 | "toque that seemed to grow from its skull like a mushroom" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.733 | | wordCount | 1365 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 107 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 35 | | std | 21.11 | | cv | 0.603 | | sampleLengths | | 0 | 47 | | 1 | 26 | | 2 | 23 | | 3 | 63 | | 4 | 33 | | 5 | 43 | | 6 | 63 | | 7 | 45 | | 8 | 18 | | 9 | 12 | | 10 | 37 | | 11 | 60 | | 12 | 14 | | 13 | 40 | | 14 | 9 | | 15 | 63 | | 16 | 21 | | 17 | 33 | | 18 | 4 | | 19 | 34 | | 20 | 47 | | 21 | 4 | | 22 | 78 | | 23 | 8 | | 24 | 32 | | 25 | 70 | | 26 | 3 | | 27 | 39 | | 28 | 56 | | 29 | 12 | | 30 | 49 | | 31 | 12 | | 32 | 44 | | 33 | 22 | | 34 | 26 | | 35 | 48 | | 36 | 74 | | 37 | 5 | | 38 | 48 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 92 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 203 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 107 | | ratio | 0.15 | | matches | | 0 | "She'd felt it before—this particular heat, this particular pull—but never like this." | | 1 | "The grapes clustered thick as fists, each one the deep purple of bruises, and they *moved*—slow ripening, slow swelling, as if time itself had thickened here and dragged its feet." | | 2 | "\"I've heard the Wardens speak of it. Dymas. The realm of excess.\" They reached out, fingers passing through a low-hanging branch, and the leaves chimed—a sound like crystal breaking, like laughter cut short." | | 3 | "The path beneath their feet wasn't a path at all—packed earth that gave slightly, like soil over something soft and yielding." | | 4 | "Trees heavy with fruit that didn't match any species Rory knew—some split open to reveal flesh the colour of cream and blood, others dripped with nectar that steamed in the amber air." | | 5 | "Rory saw it first—a shape in chef's whites, tall and thin, face obscured by a toque that seemed to grow from its skull like a mushroom." | | 6 | "It carried a platter, and on the platter—" | | 7 | "It bowed, platter extended, and the scent of whatever it carried washed over them—garlic and butter and something else, something *wrong*, like meat cooked from an animal that had never lived." | | 8 | "The orchard gave way to gardens that defied geometry—hedges that spiraled inward forever, fountains that ran upward, flowers that opened and closed in patterns that hurt to watch." | | 9 | "Hundreds of figures seated at tables that stretched into amber distance, each laden with food that steamed and shimmered and *changed*—a roast that became a pie that became a soup that became something with too many legs, crawling off the plate to be replaced by something else." | | 10 | "Their mouths worked constantly, jaws unhinging, swallowing, *always* swallowing, and the sound of it—wet and rhythmic and endless—filled the air like a second heartbeat." | | 11 | "A structure rose from the gardens—a palace of living wood, branches woven and grown into walls and towers, fruit hanging from every surface like lanterns." | | 12 | "The Heartstone burned so hot she gasped, doubled over, and when she looked up again the figure had gone—but the amber sky had darkened, just slightly, as if something vast had turned its face toward them." | | 13 | "And then—" | | 14 | "The door waited, patient as a held breath, and beyond it—she didn't know." | | 15 | "And Nyx—Nyx laughed, a sound like breaking glass, and dissolved into shadow, slipping through the gap behind them, neither fully in nor fully out, belonging to the spaces between, as they had for nearly four hundred years, as they would until the Veil finally, *finally* took them back." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 331 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 9 | | adverbRatio | 0.027190332326283987 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 107 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 107 | | mean | 12.76 | | std | 10.88 | | cv | 0.853 | | sampleLengths | | 0 | 15 | | 1 | 12 | | 2 | 20 | | 3 | 5 | | 4 | 10 | | 5 | 11 | | 6 | 17 | | 7 | 6 | | 8 | 11 | | 9 | 22 | | 10 | 30 | | 11 | 19 | | 12 | 14 | | 13 | 3 | | 14 | 7 | | 15 | 33 | | 16 | 3 | | 17 | 11 | | 18 | 24 | | 19 | 7 | | 20 | 18 | | 21 | 8 | | 22 | 27 | | 23 | 10 | | 24 | 9 | | 25 | 9 | | 26 | 8 | | 27 | 4 | | 28 | 2 | | 29 | 21 | | 30 | 10 | | 31 | 2 | | 32 | 2 | | 33 | 6 | | 34 | 32 | | 35 | 10 | | 36 | 6 | | 37 | 6 | | 38 | 5 | | 39 | 8 | | 40 | 1 | | 41 | 6 | | 42 | 26 | | 43 | 8 | | 44 | 4 | | 45 | 1 | | 46 | 4 | | 47 | 3 | | 48 | 29 | | 49 | 31 |
| |
| 68.54% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.4392523364485981 | | totalSentences | 107 | | uniqueOpeners | 47 | |
| 88.89% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 75 | | matches | | 0 | "Too far to see features." | | 1 | "Always, Eva followed." |
| | ratio | 0.027 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 75 | | matches | | 0 | "She'd felt it before—this particular" | | 1 | "She gripped Rory's arm, nails" | | 2 | "They stood at the edge" | | 3 | "Their violet eyes caught the" | | 4 | "They reached out, fingers passing" | | 5 | "She'd received it three days" | | 6 | "She'd nearly thrown it in" | | 7 | "She was twenty-six, a graphic" | | 8 | "It carried a platter, and" | | 9 | "It bowed, platter extended, and" | | 10 | "Her boot sank into the" | | 11 | "They moved deeper." | | 12 | "Their mouths worked constantly, jaws" | | 13 | "It swung open on a" | | 14 | "She thought of the pendant's" | | 15 | "She stepped forward." | | 16 | "She didn't want to know." |
| | ratio | 0.227 | |
| 53.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 75 | | matches | | 0 | "The Heartstone pendant burned against" | | 1 | "She'd felt it before—this particular" | | 2 | "She gripped Rory's arm, nails" | | 3 | "Rory peeled Eva's fingers loose" | | 4 | "They stood at the edge" | | 5 | "Rows of black-stemmed vines stretched" | | 6 | "The grapes clustered thick as" | | 7 | "Nyx drifted beside them, solid" | | 8 | "Their violet eyes caught the" | | 9 | "The word tasted of ash" | | 10 | "They reached out, fingers passing" | | 11 | "Rory stepped forward." | | 12 | "The Heartstone flared, crimson pulse" | | 13 | "She'd received it three days" | | 14 | "She'd nearly thrown it in" | | 15 | "Eva's voice cracked" | | 16 | "She was twenty-six, a graphic" | | 17 | "Nyx's form flickered, half-transparent, half-solid" | | 18 | "Rory laughed, sharp and unfunny" | | 19 | "The path beneath their feet" |
| | ratio | 0.813 | |
| 66.67% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 75 | | matches | | 0 | "Now she clutched it through" |
| | ratio | 0.013 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 11 | | matches | | 0 | "The grapes clustered thick as fists, each one the deep purple of bruises, and they *moved*—slow ripening, slow swelling, as if time itself had thickened here an…" | | 1 | "Nyx drifted beside them, solid enough to cast a shadow that stretched wrong, too long, pooling like spilled ink." | | 2 | "She was twenty-six, a graphic designer with a flat in Brixton and a terror of the supernatural that had never stopped her from following Rory into trouble." | | 3 | "The path beneath their feet wasn't a path at all—packed earth that gave slightly, like soil over something soft and yielding." | | 4 | "No eyes in its head, just smooth skin where features should be, and it *smiled* with a mouth that opened too wide, revealing rows of teeth like corn kernels." | | 5 | "It bowed, platter extended, and the scent of whatever it carried washed over them—garlic and butter and something else, something *wrong*, like meat cooked from…" | | 6 | "Hundreds of figures seated at tables that stretched into amber distance, each laden with food that steamed and shimmered and *changed*—a roast that became a pie…" | | 7 | "The Heartstone burned so hot she gasped, doubled over, and when she looked up again the figure had gone—but the amber sky had darkened, just slightly, as if som…" | | 8 | "It swung open on a breath of air that smelled of grave-mold and ripe peaches." | | 9 | "Nyx's violet eyes glowed faintly in the amber dark, reflecting something that wasn't there." | | 10 | "She thought of the pendant's warmth, the blade's cold, the shadow at her feet that whispered her name in a voice like wind through dead leaves." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 59.09% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 3 | | fancyTags | | 0 | "Nyx breathed (breathe)" | | 1 | "Rory laughed (laugh)" | | 2 | "Rory whispered (whisper)" |
| | dialogueSentences | 33 | | tagDensity | 0.242 | | leniency | 0.485 | | rawRatio | 0.375 | | effectiveRatio | 0.182 | |