| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1459 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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.30% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1459 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "warmth" | | 1 | "perfect" | | 2 | "velvet" | | 3 | "scanning" | | 4 | "echo" | | 5 | "silence" | | 6 | "weight" | | 7 | "pulsed" | | 8 | "throb" |
| |
| 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 | 140 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 140 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 143 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 37 | | totalWords | 1471 | | ratio | 0.025 | | matches | | 0 | "Richmond Park. The stones. Thursday at midnight. Come alone. I can't explain here — just come." | | 1 | "never again, do you hear me, never again." | | 2 | "you knew. You knew what was here. You sent me to it anyway." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 1454 | | uniqueNames | 13 | | maxNameDensity | 0.55 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Eva" | | discoveredNames | | Heartstone | 2 | | Park | 3 | | Thursday | 2 | | London | 1 | | England | 1 | | Sent | 1 | | Rory | 8 | | Eva | 8 | | Camden | 1 | | Evan | 2 | | Welsh | 1 | | Irish | 1 | | Richmond | 3 |
| | persons | | 0 | "Heartstone" | | 1 | "Rory" | | 2 | "Eva" | | 3 | "Evan" |
| | places | | 0 | "Park" | | 1 | "London" | | 2 | "England" | | 3 | "Richmond" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 42.86% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 3 | | matches | | 0 | "sounded like the sea" | | 1 | "Something between the two — a soft, wet compres" | | 2 | "quite meet" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.68 | | wordCount | 1471 | | matches | | 0 | "not from above but from the flowers themselves" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 143 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 35.02 | | std | 24.52 | | cv | 0.7 | | sampleLengths | | 0 | 10 | | 1 | 58 | | 2 | 69 | | 3 | 8 | | 4 | 3 | | 5 | 73 | | 6 | 21 | | 7 | 50 | | 8 | 11 | | 9 | 48 | | 10 | 1 | | 11 | 35 | | 12 | 12 | | 13 | 6 | | 14 | 33 | | 15 | 19 | | 16 | 42 | | 17 | 71 | | 18 | 3 | | 19 | 69 | | 20 | 26 | | 21 | 19 | | 22 | 56 | | 23 | 72 | | 24 | 8 | | 25 | 39 | | 26 | 39 | | 27 | 42 | | 28 | 2 | | 29 | 77 | | 30 | 3 | | 31 | 38 | | 32 | 54 | | 33 | 43 | | 34 | 76 | | 35 | 6 | | 36 | 56 | | 37 | 17 | | 38 | 63 | | 39 | 52 | | 40 | 10 | | 41 | 31 |
| |
| 97.74% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 140 | | matches | | 0 | "was gone" | | 1 | "was joined" | | 2 | "being watched" |
| |
| 26.09% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 230 | | matches | | 0 | "were tasting" | | 1 | "was breathing" | | 2 | "was hammering" | | 3 | "wasn't looking" | | 4 | "was getting" | | 5 | "was carrying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 143 | | ratio | 0.077 | | matches | | 0 | "Aurora counted them as she passed — seven oaks, ancient and gnarled, their bark slick with something darker than dew." | | 1 | "Moonlight poured across the clearing in a pale wash, silvering the wildflowers that carpeted the ground — cornflowers and foxgloves and things she did not recognise, their petals too symmetrical, too perfect, as though someone had painted them onto the earth." | | 2 | "I can't explain here — just come.* Sent from a number Rory didn't recognise, eleven days after Eva had vanished from her Camden flat without warning, without packing, without so much as a toothbrush left behind." | | 3 | "The grove swallowed it — no echo, no birds startled from branches, no rustle of undergrowth." | | 4 | "Something between the two — a soft, wet compression, like lips parting in mud." | | 5 | "Her eyes had adjusted now, and the grove was brighter than it should have been — the moonlight too generous, too even, as though the light came not from above but from the flowers themselves." | | 6 | "Not moved — there was no sound of shifting earth, no grinding of root against rock." | | 7 | "The gem's crimson glow brightened — not much, just enough to stain the inside of her jacket a faint arterial red." | | 8 | "The grove hadn't changed — still the carpet of impossible blooms, still the flat stone, still the silver light — but the quality of the stillness had shifted." | | 9 | "The glow bright enough now to throw shadows — her shadow stretching long across the flowers, and beside it, overlapping it, a second shadow that did not match her shape." | | 10 | "She pressed her back against the stone and watched the shadow stretch toward her across the wildflowers, slow as syrup, and she thought of Eva, and she thought of the text, and she thought — *you knew." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1444 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 49 | | adverbRatio | 0.03393351800554017 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.004155124653739612 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 143 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 143 | | mean | 10.29 | | std | 10.81 | | cv | 1.051 | | sampleLengths | | 0 | 10 | | 1 | 20 | | 2 | 16 | | 3 | 2 | | 4 | 2 | | 5 | 18 | | 6 | 9 | | 7 | 26 | | 8 | 4 | | 9 | 2 | | 10 | 28 | | 11 | 8 | | 12 | 3 | | 13 | 9 | | 14 | 41 | | 15 | 8 | | 16 | 9 | | 17 | 6 | | 18 | 4 | | 19 | 2 | | 20 | 15 | | 21 | 5 | | 22 | 2 | | 23 | 2 | | 24 | 3 | | 25 | 2 | | 26 | 36 | | 27 | 6 | | 28 | 5 | | 29 | 24 | | 30 | 11 | | 31 | 13 | | 32 | 1 | | 33 | 4 | | 34 | 16 | | 35 | 6 | | 36 | 1 | | 37 | 8 | | 38 | 12 | | 39 | 2 | | 40 | 1 | | 41 | 3 | | 42 | 2 | | 43 | 28 | | 44 | 2 | | 45 | 1 | | 46 | 5 | | 47 | 4 | | 48 | 2 | | 49 | 3 |
| |
| 49.18% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.34965034965034963 | | totalSentences | 143 | | uniqueOpeners | 50 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 116 | | matches | | 0 | "Too quiet for a Thursday" | | 1 | "Just the crunch of her" | | 2 | "Too many for anywhere in" | | 3 | "Then a third." | | 4 | "Too long in the arms." | | 5 | "Too narrow at the waist." |
| | ratio | 0.052 | |
| 99.31% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 116 | | matches | | 0 | "She pressed her palm over" | | 1 | "She had seen nothing." | | 2 | "She stepped through." | | 3 | "I can't explain here —" | | 4 | "She crossed the clearing toward" | | 5 | "She stopped three paces short" | | 6 | "Her voice fell flat." | | 7 | "It pressed against her eardrums" | | 8 | "It was warmer now." | | 9 | "She told herself that mattered." | | 10 | "It came from the flowers" | | 11 | "She stepped back." | | 12 | "Her heel caught on something" | | 13 | "It had not been there" | | 14 | "She was certain of that." | | 15 | "She rubbed it without thinking" | | 16 | "Her eyes had adjusted now," | | 17 | "She said it to herself," | | 18 | "She was alone in a" | | 19 | "It was longer now, curved" |
| | ratio | 0.302 | |
| 80.69% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 88 | | totalSentences | 116 | | matches | | 0 | "The standing stones rose from" | | 1 | "Aurora counted them as she" | | 2 | "The Heartstone pendant rested against" | | 3 | "She pressed her palm over" | | 4 | "Richmond Park had been quiet" | | 5 | "She had seen nothing." | | 6 | "She stepped through." | | 7 | "The grove opened before her" | | 8 | "Moonlight poured across the clearing" | | 9 | "The air tasted of honey" | | 10 | "Rory checked her phone." | | 11 | "The screen's blue glow felt" | | 12 | "Eva's message had been specific." | | 13 | "Thursday at midnight." | | 14 | "I can't explain here —" | | 15 | "The police had called it" | | 16 | "Rory had called them idiots." | | 17 | "She crossed the clearing toward" | | 18 | "The moss on its surface" | | 19 | "She stopped three paces short" |
| | ratio | 0.759 | |
| 86.21% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 116 | | matches | | 0 | "Now, between the stones, even" | | 1 | "To her left." |
| | ratio | 0.017 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 46 | | technicalSentenceCount | 12 | | matches | | 0 | "Moonlight poured across the clearing in a pale wash, silvering the wildflowers that carpeted the ground — cornflowers and foxgloves and things she did not recog…" | | 1 | "Nothing but flowers and moonlight and the dark shapes of the standing stones, their bark catching the silver in ways that made the grooves look almost like face…" | | 2 | "It came from the flowers themselves, from somewhere beneath them, as though the ground were tasting the air." | | 3 | "Her eyes had adjusted now, and the grove was brighter than it should have been — the moonlight too generous, too even, as though the light came not from above b…" | | 4 | "She was alone in a place that existed between worlds at midnight because her missing friend had sent her a text from an unknown number, and if that wasn't the s…" | | 5 | "Eva, who had pulled her out of Evan's flat with a split lip and a packed bag and said *never again, do you hear me, never again.* Eva, who knew things about pla…" | | 6 | "A throb of heat that sank into her breastbone and radiated outward through her ribs." | | 7 | "The chain caught the moonlight and the Heartstone hung there, thumb-sized, its inner glow brightening and dimming in a rhythm that was almost a heartbeat." | | 8 | "And this time it was joined by another, and another, a chorus of soft partings from every direction, from beneath the flowers, from inside the stones, from the …" | | 9 | "She was being watched by something that had been here before she arrived, that had perhaps been waiting, and that was now doing the one thing she could not defe…" | | 10 | "The glow bright enough now to throw shadows — her shadow stretching long across the flowers, and beside it, overlapping it, a second shadow that did not match h…" | | 11 | "And from somewhere beyond the standing stones, from the darkness that had replaced her exit, a voice she almost recognised said her name." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |