| 33.33% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 6 | | adverbTagCount | 1 | | adverbTags | | | dialogueSentences | 12 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.167 | | effectiveRatio | 0.167 | |
| 95.94% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1232 | | totalAiIsmAdverbs | 1 | | 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) | |
| 63.47% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1232 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "pulse" | | 1 | "perfect" | | 2 | "silence" | | 3 | "weight" | | 4 | "throbbed" | | 5 | "pulsed" | | 6 | "could feel" |
| |
| 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 | 100 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 100 | | filterMatches | | | 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 | 78 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 1244 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 1194 | | uniqueNames | 12 | | maxNameDensity | 0.34 | | worstName | "Aurora" | | maxWindowNameDensity | 1 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 4 | | Heartstone | 2 | | Richmond | 1 | | Park | 1 | | November | 2 | | Cardiff-bred | 1 | | Eva | 3 | | Drawn | 1 | | Evan | 1 | | London | 1 | | Cardiff | 2 | | Sunday | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Heartstone" | | 2 | "Eva" | | 3 | "Drawn" | | 4 | "Evan" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "November" | | 3 | "Cardiff-bred" | | 4 | "London" | | 5 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like every other stretch, dense da" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1244 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 105 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 33.62 | | std | 25.18 | | cv | 0.749 | | sampleLengths | | 0 | 39 | | 1 | 70 | | 2 | 16 | | 3 | 10 | | 4 | 70 | | 5 | 4 | | 6 | 53 | | 7 | 14 | | 8 | 8 | | 9 | 52 | | 10 | 6 | | 11 | 77 | | 12 | 30 | | 13 | 45 | | 14 | 6 | | 15 | 4 | | 16 | 10 | | 17 | 64 | | 18 | 32 | | 19 | 5 | | 20 | 24 | | 21 | 35 | | 22 | 6 | | 23 | 45 | | 24 | 73 | | 25 | 9 | | 26 | 40 | | 27 | 7 | | 28 | 52 | | 29 | 9 | | 30 | 11 | | 31 | 42 | | 32 | 67 | | 33 | 48 | | 34 | 66 | | 35 | 13 | | 36 | 82 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 100 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 183 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 105 | | ratio | 0.086 | | matches | | 0 | "She knew it was the clearing from the way the trees stopped, all at once, like a held breath — a perfect circle of grass ringed by oaks, and inside it, wildflowers." | | 1 | "The park held its ordinary night noises somewhere beyond the trees — a distant road, a fox, wind — but here, inside the ring, the silence had weight to it." | | 2 | "She'd almost missed it — a strip where the blades lay flattened in a spiral, coiling inward to a bare patch of earth about the size of a dinner plate." | | 3 | "Her heel struck a root that she did not remember being there, and she caught herself against a stone — warm, like the bark, warm as a living wrist — and pulled her hand away with her heart slamming." | | 4 | "Not collapsing — breathing." | | 5 | "A single, liquid trill, sweet as spring morning — at midnight, in November, in a place with no sky." | | 6 | "She grabbed it through her shirt and it thrummed against her palm — faster now, urgent, the rhythm of a heart that had just woken up." | | 7 | "The light bent away from it, her torch beam curving like water around a stone, and she saw only that it was taller than any person had a right to be, and that it wore something on its head that caught the moonless dark — a crown, or antlers, or branches growing from its skull." | | 8 | "She felt the pull of it in her soles, in her bones, and the flowers leaned, and the voice — her mother's, Eva's, her own — began to hum, and the tune was one she knew, one her mother had sung in the kitchen in Cardiff on wet Sunday afternoons, note for note, word for word, and Aurora stood between the breathing earth and the open door with the Heartstone burning against her chest, and did not move." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1186 | | adjectiveStacks | 1 | | stackExamples | | 0 | "slow hundred-headed swivel," |
| | adverbCount | 45 | | adverbRatio | 0.03794266441821248 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.005902192242833052 | |
| 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 | 11.85 | | std | 13.19 | | cv | 1.113 | | sampleLengths | | 0 | 39 | | 1 | 5 | | 2 | 12 | | 3 | 37 | | 4 | 10 | | 5 | 1 | | 6 | 1 | | 7 | 4 | | 8 | 4 | | 9 | 12 | | 10 | 5 | | 11 | 5 | | 12 | 6 | | 13 | 32 | | 14 | 2 | | 15 | 18 | | 16 | 5 | | 17 | 1 | | 18 | 6 | | 19 | 4 | | 20 | 2 | | 21 | 15 | | 22 | 1 | | 23 | 30 | | 24 | 5 | | 25 | 2 | | 26 | 12 | | 27 | 8 | | 28 | 5 | | 29 | 8 | | 30 | 1 | | 31 | 1 | | 32 | 31 | | 33 | 2 | | 34 | 4 | | 35 | 5 | | 36 | 1 | | 37 | 11 | | 38 | 30 | | 39 | 7 | | 40 | 29 | | 41 | 7 | | 42 | 23 | | 43 | 3 | | 44 | 3 | | 45 | 39 | | 46 | 3 | | 47 | 3 | | 48 | 4 | | 49 | 10 |
| |
| 67.30% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4380952380952381 | | totalSentences | 105 | | uniqueOpeners | 46 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 80 | | matches | | 0 | "Properly hot, the kind of" | | 1 | "Then back again." | | 2 | "Briskly at first, then faster," | | 3 | "Then, from somewhere in the" | | 4 | "Then it stopped, mid-note, cut" |
| | ratio | 0.063 | |
| 85.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 80 | | matches | | 0 | "She'd followed the pendant here." | | 1 | "Her voice came out thin." | | 2 | "She knew it was the" | | 3 | "She crouched and touched one." | | 4 | "It pressed on her eardrums." | | 5 | "She walked it anyway, slow," | | 6 | "She counted again because the" | | 7 | "She counted a third time." | | 8 | "She'd almost missed it —" | | 9 | "Her heel struck a root" | | 10 | "She turned to leave." | | 11 | "She stood facing unbroken trunks," | | 12 | "She walked the boundary." | | 13 | "she said, louder now, because" | | 14 | "She should run." | | 15 | "She could feel the attention" | | 16 | "Her voice cracked on the" | | 17 | "It came from everywhere at" | | 18 | "It used her name." | | 19 | "Her whole body went cold" |
| | ratio | 0.338 | |
| 85.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 80 | | matches | | 0 | "The oak standing stones rose" | | 1 | "She'd followed the pendant here." | | 2 | "That was the reason, if" | | 3 | "The Heartstone had burned against" | | 4 | "Her voice came out thin." | | 5 | "The dark swallowed it whole." | | 6 | "The clearing opened ahead of" | | 7 | "She knew it was the" | | 8 | "Hundreds of them, pale and" | | 9 | "She crouched and touched one." | | 10 | "Something rustled behind her." | | 11 | "Torchlight swept the ferns, the" | | 12 | "The park held its ordinary" | | 13 | "It pressed on her eardrums." | | 14 | "The pendant throbbed harder, and" | | 15 | "The clearing offered no answer." | | 16 | "She walked it anyway, slow," | | 17 | "She counted again because the" | | 18 | "That's what people did." | | 19 | "She counted a third time." |
| | ratio | 0.75 | |
| 62.50% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 80 | | matches | | 0 | "Now the little crimson stone" |
| | ratio | 0.013 | |
| 7.72% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 7 | | matches | | 0 | "The Heartstone had burned against her sternum the whole ride through Richmond Park, hotter with every step off the path, until she'd left the gravel altogether …" | | 1 | "Properly hot, the kind of heat that made her hiss and pinch the chain away from her skin, and in the same instant the bare patch of earth exhaled." | | 2 | "Her heel struck a root that she did not remember being there, and she caught herself against a stone — warm, like the bark, warm as a living wrist — and pulled …" | | 3 | "Briskly at first, then faster, torch swinging, and every stretch of the ring looked like every other stretch, dense dark wood with no way through, as if the gro…" | | 4 | "*Rory.* Drawn out, soft and fond, in a voice that was almost her mother's and almost Eva's and almost her own, layered wrong, like a recording played underwater…" | | 5 | "Some deep, animal part of her, the part that had survived Evan and survived London and learned to read rooms before entering them, understood that the invitatio…" | | 6 | "The light bent away from it, her torch beam curving like water around a stone, and she saw only that it was taller than any person had a right to be, and that i…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 6 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 2 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "she breathed (breathe)" |
| | dialogueSentences | 12 | | tagDensity | 0.417 | | leniency | 0.833 | | rawRatio | 0.4 | | effectiveRatio | 0.333 | |