| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.8 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.14% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1682 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "quickly" | | 1 | "very" | | 2 | "slowly" | | 3 | "suddenly" |
| |
| 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) | |
| 67.30% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1682 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "silence" | | 1 | "pulse" | | 2 | "throb" | | 3 | "flicker" | | 4 | "stomach" | | 5 | "scanned" | | 6 | "potential" | | 7 | "pulsed" | | 8 | "could feel" | | 9 | "perfect" |
| |
| 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 | 166 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 166 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 167 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 57 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 6 | | totalWords | 1688 | | ratio | 0.004 | | matches | | 0 | "Richmond grove. Now. Bring it." | | 1 | "was" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 1676 | | uniqueNames | 14 | | maxNameDensity | 0.6 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Hel" | | discoveredNames | | Richmond | 3 | | Park | 2 | | Golden | 1 | | Empress | 1 | | Roehampton | 1 | | Rory | 10 | | Isolde | 2 | | London | 1 | | November | 2 | | Heathrow | 1 | | Heartstone | 5 | | Hel | 5 | | Cardiff | 2 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Isolde" | | 2 | "Heartstone" | | 3 | "Evan" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "November" | | 4 | "Heathrow" | | 5 | "Hel" | | 6 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 96.24% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 93 | | glossingSentenceCount | 2 | | matches | | 0 | "quite the same sun as outside" | | 1 | "here there was apparently nothing" |
| |
| 81.52% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.185 | | wordCount | 1688 | | matches | | 0 | "not as a fear but as a fact, heavy in her stomach" | | 1 | "not in steps but in the absence of steps" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 167 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 52 | | mean | 32.46 | | std | 22.47 | | cv | 0.692 | | sampleLengths | | 0 | 10 | | 1 | 70 | | 2 | 5 | | 3 | 26 | | 4 | 35 | | 5 | 47 | | 6 | 68 | | 7 | 10 | | 8 | 55 | | 9 | 66 | | 10 | 3 | | 11 | 67 | | 12 | 4 | | 13 | 11 | | 14 | 22 | | 15 | 4 | | 16 | 66 | | 17 | 9 | | 18 | 10 | | 19 | 54 | | 20 | 5 | | 21 | 46 | | 22 | 41 | | 23 | 38 | | 24 | 39 | | 25 | 40 | | 26 | 16 | | 27 | 22 | | 28 | 12 | | 29 | 63 | | 30 | 18 | | 31 | 51 | | 32 | 10 | | 33 | 48 | | 34 | 12 | | 35 | 80 | | 36 | 15 | | 37 | 19 | | 38 | 66 | | 39 | 60 | | 40 | 29 | | 41 | 39 | | 42 | 20 | | 43 | 20 | | 44 | 48 | | 45 | 14 | | 46 | 29 | | 47 | 25 | | 48 | 73 | | 49 | 3 |
| |
| 92.58% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 166 | | matches | | 0 | "been told" | | 1 | "been open" | | 2 | "was gone" | | 3 | "been displaced" | | 4 | "been given" | | 5 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 11 | | totalVerbs | 265 | | matches | | 0 | "was messing" | | 1 | "were still blooming" | | 2 | "was pulsing" | | 3 | "was beating" | | 4 | "was just refusing" | | 5 | "were still settling" | | 6 | "was circling" | | 7 | "wasn't landing" | | 8 | "was looking" | | 9 | "was calling" | | 10 | "wasn't looking" |
| |
| 57.31% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 167 | | ratio | 0.03 | | matches | | 0 | "The distant hum of the A3, the planes coming into Heathrow, the rustle of the park itself — all of it went muffled, as if someone had pressed a hand over her ears." | | 1 | "And then — a sound that shouldn't be there." | | 2 | "She could hear it now, not in steps but in the absence of steps — a travelling pocket of quiet that moved through the unnatural quiet, a hush inside the hush." | | 3 | "Eva telling her to get out of Cardiff, her dad's barrister voice on the phone about wasted potential, the man named Evan who had once told her that her cleverness would get her killed — all of it funnelled to this moment where she stood alone in a place where an hour could be minutes or days outside." | | 4 | "She dropped the pendant into the flowers — it hissed where it landed, melting frost that hadn't been there — and ran." |
| |
| 84.78% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1682 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small, perfect, crimson-coloured burn," |
| | adverbCount | 85 | | adverbRatio | 0.050535077288941736 | | lyAdverbCount | 22 | | lyAdverbRatio | 0.013079667063020214 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 167 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 167 | | mean | 10.11 | | std | 9.43 | | cv | 0.933 | | sampleLengths | | 0 | 10 | | 1 | 14 | | 2 | 21 | | 3 | 23 | | 4 | 4 | | 5 | 2 | | 6 | 6 | | 7 | 2 | | 8 | 1 | | 9 | 2 | | 10 | 2 | | 11 | 2 | | 12 | 22 | | 13 | 4 | | 14 | 11 | | 15 | 20 | | 16 | 15 | | 17 | 18 | | 18 | 2 | | 19 | 12 | | 20 | 7 | | 21 | 17 | | 22 | 20 | | 23 | 5 | | 24 | 19 | | 25 | 7 | | 26 | 3 | | 27 | 4 | | 28 | 33 | | 29 | 4 | | 30 | 3 | | 31 | 11 | | 32 | 5 | | 33 | 3 | | 34 | 33 | | 35 | 25 | | 36 | 3 | | 37 | 26 | | 38 | 23 | | 39 | 18 | | 40 | 4 | | 41 | 8 | | 42 | 3 | | 43 | 3 | | 44 | 4 | | 45 | 15 | | 46 | 2 | | 47 | 2 | | 48 | 5 | | 49 | 4 |
| |
| 50.90% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.3592814371257485 | | totalSentences | 167 | | uniqueOpeners | 60 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 11 | | totalSentences | 142 | | matches | | 0 | "Then a text came through" | | 1 | "Then the cold hit." | | 2 | "Just the standing stones, their" | | 3 | "Only she couldn't." | | 4 | "More trees where there should" | | 5 | "Then a faint patterning, like" | | 6 | "Too many joints." | | 7 | "Just a ring of them," | | 8 | "Then again, on the other" | | 9 | "Bright blue eyes, her mother's" | | 10 | "Then, from somewhere beyond the" |
| | ratio | 0.077 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 42 | | totalSentences | 142 | | matches | | 0 | "She'd checked her phone." | | 1 | "She shouldn't have come." | | 2 | "She stepped between two of" | | 3 | "She could see them in" | | 4 | "It was pulsing." | | 5 | "She'd been told what that" | | 6 | "She stopped in the middle" | | 7 | "Her breath showed." | | 8 | "Her voice didn't carry." | | 9 | "It fell flat after two" | | 10 | "It was a process." | | 11 | "She turned fast." | | 12 | "Her pulse kicked once, hard," | | 13 | "She swallowed and forced her" | | 14 | "It was just refusing to" | | 15 | "She reached back and touched" | | 16 | "It was warm." | | 17 | "She looked down again quickly." | | 18 | "Her own voice sounded stupid" | | 19 | "She wasn't alone." |
| | ratio | 0.296 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 96 | | totalSentences | 142 | | matches | | 0 | "The air in Richmond Park" | | 1 | "Rory cut her bike's light" | | 2 | "The Golden Empress delivery bag" | | 3 | "The last drop had been" | | 4 | "She'd checked her phone." | | 5 | "She shouldn't have come." | | 6 | "That was the first thought," | | 7 | "The second thought, cooler and" | | 8 | "The oak standing stones rose" | | 9 | "Rory had only been here" | | 10 | "Wildflowers, even in November, white" | | 11 | "She stepped between two of" | | 12 | "The air changed." | | 13 | "Sound dropped out first." | | 14 | "The distant hum of the" | | 15 | "A clean, thin cold that" | | 16 | "The flowers were still blooming." | | 17 | "That was wrong." | | 18 | "She could see them in" | | 19 | "The light caught the black" |
| | ratio | 0.676 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 142 | | matches | | 0 | "Now there was no sun." | | 1 | "Now it was beating against" | | 2 | "To whatever it was." |
| | ratio | 0.021 | |
| 72.60% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 61 | | technicalSentenceCount | 6 | | matches | | 0 | "Wildflowers, even in November, white and yellow heads turning to a sun that wasn't quite the same sun as outside." | | 1 | "There was a moon that was too low and too full and cast no shadows in the right direction." | | 2 | "She could see them in the moonlight, buttercups and wild orchids and things she didn't have names for, their petals open wide to drink moon that shouldn't be ab…" | | 3 | "Eva telling her to get out of Cardiff, her dad's barrister voice on the phone about wasted potential, the man named Evan who had once told her that her cleverne…" | | 4 | "Then, from somewhere beyond the trees that were no longer trees, from far and deep, there was a sound like a door opening very slowly on rusted hinges." | | 5 | "She ran at the standing stones that were no longer there, at the gap that was no longer a gap, at the memory of where the boundary had been, shoulder-length bla…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, and her voice was steady, though her left wrist was aching where the old scar pulled" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 5 | | tagDensity | 0.6 | | leniency | 1 | | rawRatio | 0.333 | | effectiveRatio | 0.333 | |