| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said aloud [aloud]" |
| | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0.5 | | effectiveRatio | 0.5 | |
| 82.84% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2040 | | totalAiIsmAdverbs | 7 | | found | | 0 | | | 1 | | | 2 | | | 3 | | adverb | "deliberately" | | count | 1 |
| | 4 | | | 5 | |
| | highlights | | 0 | "slightly" | | 1 | "slowly" | | 2 | "very" | | 3 | "deliberately" | | 4 | "quickly" | | 5 | "really" |
| |
| 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) | |
| 65.69% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2040 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "pulse" | | 1 | "rhythmic" | | 2 | "warmth" | | 3 | "chill" | | 4 | "racing" | | 5 | "silence" | | 6 | "throbbed" | | 7 | "familiar" | | 8 | "lilt" | | 9 | "footsteps" | | 10 | "gleaming" |
| |
| 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 | 180 | | matches | (empty) | |
| 95.24% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 6 | | narrationSentences | 180 | | filterMatches | (empty) | | hedgeMatches | | 0 | "began to" | | 1 | "seemed to" | | 2 | "appeared to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 181 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 39 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 6 | | markdownWords | 60 | | totalWords | 2030 | | ratio | 0.03 | | matches | | 0 | "Keep it close. It will show you the door when the time comes." | | 1 | "No wind. Nocturnal animals absent. Temperature drop inconsistent with open park." | | 2 | "Rory" | | 3 | "I’m standing in a magic flower patch and the plants are watching me?" | | 4 | "You’ll never leave me, Rory. Not really." | | 5 | "You are not alone. You were never alone from the moment you crossed the stones." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 2014 | | uniqueNames | 15 | | maxNameDensity | 0.79 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Carter | 1 | | Richmond | 2 | | Park | 2 | | Singapore | 1 | | Yu-Fei | 1 | | Cheung | 1 | | Rory | 16 | | Silas | 2 | | November | 2 | | Evan | 4 | | Home | 1 | | London | 1 | | Eva | 2 | | Welsh | 1 | | Cardiff | 1 |
| | persons | | 0 | "Carter" | | 1 | "Yu-Fei" | | 2 | "Cheung" | | 3 | "Rory" | | 4 | "Silas" | | 5 | "Evan" | | 6 | "Eva" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Singapore" | | 3 | "November" | | 4 | "London" | | 5 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 52.34% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 128 | | glossingSentenceCount | 5 | | matches | | 0 | "seemed impossibly distant as though the grove had stretched the miles between here and London into something vast and elastic" | | 1 | "felt like a lie" | | 2 | "appeared ahead but the gap between them had narrowed, the opening now barely wide enough for a child" | | 3 | "as though trying to wrap around her skin" | | 4 | "seemed so beautiful" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 2030 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 181 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 46 | | mean | 44.13 | | std | 32.78 | | cv | 0.743 | | sampleLengths | | 0 | 166 | | 1 | 108 | | 2 | 59 | | 3 | 86 | | 4 | 17 | | 5 | 77 | | 6 | 61 | | 7 | 37 | | 8 | 69 | | 9 | 4 | | 10 | 83 | | 11 | 21 | | 12 | 48 | | 13 | 63 | | 14 | 82 | | 15 | 35 | | 16 | 63 | | 17 | 5 | | 18 | 54 | | 19 | 36 | | 20 | 53 | | 21 | 4 | | 22 | 44 | | 23 | 60 | | 24 | 7 | | 25 | 67 | | 26 | 48 | | 27 | 64 | | 28 | 44 | | 29 | 47 | | 30 | 53 | | 31 | 18 | | 32 | 64 | | 33 | 9 | | 34 | 6 | | 35 | 55 | | 36 | 19 | | 37 | 18 | | 38 | 11 | | 39 | 60 | | 40 | 5 | | 41 | 12 | | 42 | 12 | | 43 | 67 | | 44 | 7 | | 45 | 2 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 180 | | matches | | |
| 95.18% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 318 | | matches | | 0 | "was not laughing" | | 1 | "were still moving" | | 2 | "was almost scalding" | | 3 | "were expanding" | | 4 | "was already learning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 3 | | flaggedSentences | 13 | | totalSentences | 181 | | ratio | 0.072 | | matches | | 0 | "Between them the air tasted different—thicker, sweet with the perfume of flowers that had no business blooming in November." | | 1 | "She welcomed the heat; the rest of her body felt cold in a way that had nothing to do with the November air." | | 2 | "A sound reached her—soft, almost tender." | | 3 | "She thought she heard her name—*Rory*—drawn out on a long, affectionate sigh the way Evan used to say it right before his temper snapped." | | 4 | "The proportions were wrong—too upright, too patient." | | 5 | "She could still see the stones—dark pillars against a darker sky—but the distance between her and them had doubled, perhaps tripled." | | 6 | "Blood should have welled there; none did." | | 7 | "For the first time she noticed something inside the gem—movement, like a tiny flame twisting behind the facets." | | 8 | "A new sound joined the chorus—footsteps." | | 9 | "Its head was wrong—too long, the features blurred as though seen through water." | | 10 | "She no longer felt its heat; her entire body had gone cold." | | 11 | "Not the wind, not an illusion—the flowers themselves rippled in a slow, tidal wave, petals folding and unfolding as they flowed toward her." | | 12 | "When she finally pushed herself up, she noticed the wildflower petal stuck to the back of her hand—deep crimson, faintly warm, its edges curling as though trying to wrap around her skin." |
| |
| 88.54% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 2033 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 94 | | adverbRatio | 0.046237088047220855 | | lyAdverbCount | 25 | | lyAdverbRatio | 0.012297097884899164 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 181 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 181 | | mean | 11.22 | | std | 7.59 | | cv | 0.677 | | sampleLengths | | 0 | 29 | | 1 | 39 | | 2 | 9 | | 3 | 32 | | 4 | 14 | | 5 | 21 | | 6 | 17 | | 7 | 5 | | 8 | 11 | | 9 | 25 | | 10 | 22 | | 11 | 5 | | 12 | 1 | | 13 | 31 | | 14 | 8 | | 15 | 5 | | 16 | 9 | | 17 | 28 | | 18 | 19 | | 19 | 3 | | 20 | 6 | | 21 | 9 | | 22 | 4 | | 23 | 18 | | 24 | 14 | | 25 | 4 | | 26 | 6 | | 27 | 25 | | 28 | 5 | | 29 | 12 | | 30 | 5 | | 31 | 19 | | 32 | 19 | | 33 | 23 | | 34 | 11 | | 35 | 6 | | 36 | 6 | | 37 | 5 | | 38 | 4 | | 39 | 5 | | 40 | 15 | | 41 | 8 | | 42 | 12 | | 43 | 9 | | 44 | 2 | | 45 | 3 | | 46 | 12 | | 47 | 8 | | 48 | 3 | | 49 | 14 |
| |
| 46.13% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.2983425414364641 | | totalSentences | 181 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 8 | | totalSentences | 169 | | matches | | 0 | "Even the wind died." | | 1 | "Instead they stacked like stones" | | 2 | "Then the whispering began." | | 3 | "Always only flowers." | | 4 | "Just pain, bright and impossible." | | 5 | "Then it stepped sideways and" | | 6 | "Bright blue eyes." | | 7 | "Somewhere behind her, deeper in" |
| | ratio | 0.047 | |
| 80.36% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 59 | | totalSentences | 169 | | matches | | 0 | "She had come because it" | | 1 | "It will show you the" | | 2 | "She was not laughing now." | | 3 | "Her torch beam sliced a" | | 4 | "She kept one hand on" | | 5 | "She found the standing stones" | | 6 | "They rose out of the" | | 7 | "Her torch beam seemed to" | | 8 | "She crouched, touched one." | | 9 | "She straightened and moved deeper." | | 10 | "She welcomed the heat; the" | | 11 | "Her breath fogged, yet the" | | 12 | "She held her breath, listening." | | 13 | "She swept the beam back" | | 14 | "She kept walking." | | 15 | "She lifted it, letting the" | | 16 | "It came from everywhere and" | | 17 | "She thought she heard her" | | 18 | "She spun, torch flaring." | | 19 | "she said aloud, forcing steadiness" |
| | ratio | 0.349 | |
| 60.59% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 135 | | totalSentences | 169 | | matches | | 0 | "Rory Carter slipped between the" | | 1 | "The pendant lay cold against" | | 2 | "She had come because it" | | 3 | "An unknown benefactor had pressed" | | 4 | "It will show you the" | | 5 | "She was not laughing now." | | 6 | "The city’s orange glow receded" | | 7 | "Her torch beam sliced a" | | 8 | "She kept one hand on" | | 9 | "Childhood accidents should not ache" | | 10 | "The wrongness had already begun." | | 11 | "She found the standing stones" | | 12 | "They rose out of the" | | 13 | "Rory stepped through." | | 14 | "The change was immediate and" | | 15 | "The distant murmur of traffic" | | 16 | "Her torch beam seemed to" | | 17 | "Wildflowers brushed her jeans, their" | | 18 | "She crouched, touched one." | | 19 | "The stem was warm, almost" |
| | ratio | 0.799 | |
| 29.59% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 169 | | matches | | | ratio | 0.006 | |
| 30.50% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 89 | | technicalSentenceCount | 14 | | matches | | 0 | "The pendant lay cold against her skin at first, but as she cut across the open grass toward the tree line, its deep crimson heart began to pulse with a slow, rh…" | | 1 | "They rose out of the earth in a loose circle, gnarled oak trunks fused with lichen-crusted megaliths, as though the trees themselves had grown around the older …" | | 2 | "Between them the air tasted different—thicker, sweet with the perfume of flowers that had no business blooming in November." | | 3 | "When she pulled her fingers away, the flower turned to follow the movement, a slow, deliberate pivot that sent a chill racing up her arm." | | 4 | "The silence that answered felt deliberate, like something had paused mid-motion the instant she turned." | | 5 | "It came from everywhere and nowhere, a susurration that might have been wind through dry grass except there was no wind and the grass was not dry." | | 6 | "The thought of it now seemed impossibly distant, as though the grove had stretched the miles between here and London into something vast and elastic." | | 7 | "The flowers beneath her heel released a sweet, cloying scent that made her head swim." | | 8 | "The standing stones appeared to recede with every stride, as though the grove were expanding around her like a living lung." | | 9 | "They matched her pace exactly, always just off to the left, behind the screen of trees that should not have existed inside the small clearing." | | 10 | "Tall, narrow, wearing a shape that mimicked her own black delivery jacket and the silver flash of the chain around its neck." | | 11 | "When she finally pushed herself up, she noticed the wildflower petal stuck to the back of her hand—deep crimson, faintly warm, its edges curling as though tryin…" | | 12 | "She ran for the gates, the city lights, the cold comfort of streetlamps that had never seemed so beautiful." | | 13 | "That something wearing her shape was already learning how to walk in her skin, practicing her voice in the dark between one heartbeat and the next." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0.5 | | effectiveRatio | 0.5 | |