| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 7 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 74.05% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1349 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "slightly" | | 1 | "very" | | 2 | "slowly" |
| |
| 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) | |
| 62.94% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1349 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "familiar" | | 1 | "warmth" | | 2 | "silence" | | 3 | "scanning" | | 4 | "pulse" | | 5 | "pulsed" |
| |
| 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 | 101 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 101 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 105 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1342 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 1324 | | uniqueNames | 11 | | maxNameDensity | 0.53 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Eva" | | discoveredNames | | October | 1 | | London | 1 | | Richmond | 1 | | Park | 1 | | Heartstone | 1 | | June | 1 | | Eva | 3 | | Kensal | 1 | | Rise | 1 | | Welsh | 1 | | Rory | 7 |
| | persons | | | places | | 0 | "London" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "June" | | 4 | "Kensal" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like packed earth and also like no" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1342 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 105 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 44.73 | | std | 37.32 | | cv | 0.834 | | sampleLengths | | 0 | 15 | | 1 | 71 | | 2 | 5 | | 3 | 88 | | 4 | 4 | | 5 | 56 | | 6 | 7 | | 7 | 118 | | 8 | 63 | | 9 | 87 | | 10 | 20 | | 11 | 12 | | 12 | 97 | | 13 | 5 | | 14 | 73 | | 15 | 33 | | 16 | 1 | | 17 | 17 | | 18 | 3 | | 19 | 76 | | 20 | 3 | | 21 | 79 | | 22 | 47 | | 23 | 13 | | 24 | 80 | | 25 | 82 | | 26 | 4 | | 27 | 108 | | 28 | 64 | | 29 | 11 |
| |
| 84.42% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 101 | | matches | | 0 | "was gone" | | 1 | "been crossed" | | 2 | "being bowed" | | 3 | "were gone" | | 4 | "was gone" | | 5 | "been, hollowed" |
| |
| 98.99% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 198 | | matches | | 0 | "was being" | | 1 | "was being" | | 2 | "was saying" |
| |
| 6.80% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 105 | | ratio | 0.048 | | matches | | 0 | "The night behind her had been ordinary enough for late October—damp, a little cold, the distant wash of London's light pollution turning the clouds a sickly amber." | | 1 | "The wildflowers underfoot—she could see them in the strange light, white and blue and a yellow so pale it looked bleached—were open." | | 2 | "The clearing—if it was a clearing—opened around her in a way that felt more suggested than seen." | | 3 | "She saw it happen in her peripheral vision—a slow, coordinated rotation, dozens of stems swiveling on their stalks to point in the same direction, away from her, toward the far side of the clearing." | | 4 | "It stood between two of the standing stones and it watched her with something that was not eyes—she was sure of that, sure in a way that went past thinking and into the body, into the animal part of her that had kept humans alive on this kind of ground for a very long time." |
| |
| 94.90% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1331 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 61 | | adverbRatio | 0.04583020285499624 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.007513148009015778 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 105 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 105 | | mean | 12.78 | | std | 12.74 | | cv | 0.997 | | sampleLengths | | 0 | 15 | | 1 | 27 | | 2 | 44 | | 3 | 5 | | 4 | 3 | | 5 | 5 | | 6 | 27 | | 7 | 22 | | 8 | 3 | | 9 | 7 | | 10 | 21 | | 11 | 3 | | 12 | 1 | | 13 | 5 | | 14 | 6 | | 15 | 18 | | 16 | 27 | | 17 | 5 | | 18 | 2 | | 19 | 8 | | 20 | 47 | | 21 | 29 | | 22 | 34 | | 23 | 5 | | 24 | 8 | | 25 | 44 | | 26 | 3 | | 27 | 3 | | 28 | 18 | | 29 | 17 | | 30 | 40 | | 31 | 4 | | 32 | 8 | | 33 | 4 | | 34 | 2 | | 35 | 7 | | 36 | 7 | | 37 | 3 | | 38 | 9 | | 39 | 4 | | 40 | 31 | | 41 | 35 | | 42 | 9 | | 43 | 18 | | 44 | 4 | | 45 | 1 | | 46 | 9 | | 47 | 7 | | 48 | 8 | | 49 | 24 |
| |
| 28.89% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 23 | | diversityRatio | 0.3047619047619048 | | totalSentences | 105 | | uniqueOpeners | 32 | |
| 73.26% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 91 | | matches | | 0 | "Just the absence of cold." | | 1 | "Even her own breathing sounded" |
| | ratio | 0.022 | |
| 83.74% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 91 | | matches | | 0 | "She stopped walking." | | 1 | "She turned back toward the" | | 2 | "she said to herself" | | 3 | "She had not meant to" | | 4 | "She could make out the" | | 5 | "She counted twice and got" | | 6 | "She tried her phone." | | 7 | "She had left the gate" | | 8 | "She was being stupid." | | 9 | "She knew she was being" | | 10 | "She crouched and touched one" | | 11 | "It was cool and very" | | 12 | "She stood up again." | | 13 | "She looked anyway, scanning the" | | 14 | "It had been there for" | | 15 | "It was hot now, almost" | | 16 | "She cleared her throat and" | | 17 | "She saw it happen in" | | 18 | "It was there again." | | 19 | "It was tall and narrow" |
| | ratio | 0.341 | |
| 86.37% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 91 | | matches | | 0 | "Rory pushed through the gap" | | 1 | "The night behind her had" | | 2 | "The trees of Richmond Park" | | 3 | "The air sat against her" | | 4 | "The wildflowers underfoot—she could see" | | 5 | "The smell that rose from" | | 6 | "She stopped walking." | | 7 | "The silence was too complete." | | 8 | "She turned back toward the" | | 9 | "she said to herself" | | 10 | "She had not meant to" | | 11 | "The plan had been a" | | 12 | "The bookseller's name had been" | | 13 | "Rory had agreed because she" | | 14 | "The wildflowers brushed her ankles" | | 15 | "The clearing—if it was a" | | 16 | "She could make out the" | | 17 | "She counted twice and got" | | 18 | "She tried her phone." | | 19 | "The time on the screen" |
| | ratio | 0.747 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 5 | | totalSentences | 91 | | matches | | 0 | "Now the cold was gone." | | 1 | "As if it were noon" | | 2 | "Now it was warm again." | | 3 | "To go now." | | 4 | "To go alone." |
| | ratio | 0.055 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 11 | | matches | | 0 | "The air sat against her skin like something that had been waiting, and the wind she had been walking into for the last twenty minutes was nowhere." | | 1 | "Even her own breathing sounded muffled, as though the air had grown heavier in the last few seconds." | | 2 | "The plan had been a daytime recce, a quick look at the stones Eva had mentioned, a photograph to send to the odd little bookseller in Kensal Rise who had been s…" | | 3 | "Rory had agreed because she was tired and the rent was late and the pendant had been warm against her skin the entire conversation, pulsing in time with a heart…" | | 4 | "Warmer than it had been in the restaurant kitchen, warmer than it had been in Eva's hallway that morning when she had pressed it into Rory's palm and told her, …" | | 5 | "The wildflowers brushed her ankles as she moved forward, because forward was the only direction that made sense." | | 6 | "The wildflowers gave off a faint glow she had not noticed at first, a soft bioluminescence that painted her shoes and the hems of her jeans in something that wa…" | | 7 | "It was hot now, almost too hot to hold, and the faint inner glow had brightened to a steady pulse that lit the hollow of her throat." | | 8 | "It stood between two of the standing stones and it watched her with something that was not eyes—she was sure of that, sure in a way that went past thinking and …" | | 9 | "Beneath her boots was something that felt like packed earth and also like nothing at all, and the pale light from nowhere pulsed once, twice, in time with the p…" | | 10 | "The shape that was not a shape stood almost within arm's reach, and the thing it watched her with was lower now, nearer the ground, and it was patient, and it w…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 7 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0 | | effectiveRatio | 0 | |