| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 0 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 87.92% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1656 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "very" | | 1 | "gently" | | 2 | "softly" |
| |
| 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) | |
| 72.83% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1656 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "pulsed" | | 1 | "warmth" | | 2 | "silence" | | 3 | "pulse" | | 4 | "navigate" | | 5 | "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 | 1 | | narrationSentences | 124 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 124 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 124 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 105 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1676 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 1 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 18 | | wordCount | 1656 | | uniqueNames | 10 | | maxNameDensity | 0.24 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Richmond" | | discoveredNames | | Richmond | 2 | | Park | 1 | | Rory | 4 | | Hel | 3 | | October | 3 | | Fae | 1 | | Cardiff | 1 | | Plough | 1 | | Cassiopeia | 1 | | Heartstone | 1 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Hel" | | 3 | "October" | | 4 | "Fae" |
| | globalScore | 1 | | windowScore | 1 | |
| 83.33% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 75 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like a tree" | | 1 | "not quite the same pitch" |
| |
| 80.67% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.193 | | wordCount | 1676 | | matches | | 0 | "not colder, but older" | | 1 | "not the cold of metal in October, but a dead cold, the cold of a stone at the bottom of a well" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 124 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 34.92 | | std | 30.42 | | cv | 0.871 | | sampleLengths | | 0 | 32 | | 1 | 7 | | 2 | 103 | | 3 | 18 | | 4 | 75 | | 5 | 22 | | 6 | 5 | | 7 | 53 | | 8 | 30 | | 9 | 4 | | 10 | 54 | | 11 | 64 | | 12 | 46 | | 13 | 5 | | 14 | 64 | | 15 | 15 | | 16 | 30 | | 17 | 7 | | 18 | 59 | | 19 | 24 | | 20 | 10 | | 21 | 39 | | 22 | 5 | | 23 | 1 | | 24 | 63 | | 25 | 38 | | 26 | 8 | | 27 | 90 | | 28 | 4 | | 29 | 7 | | 30 | 73 | | 31 | 5 | | 32 | 49 | | 33 | 10 | | 34 | 3 | | 35 | 76 | | 36 | 3 | | 37 | 49 | | 38 | 51 | | 39 | 53 | | 40 | 3 | | 41 | 12 | | 42 | 9 | | 43 | 75 | | 44 | 5 | | 45 | 47 | | 46 | 46 | | 47 | 125 |
| |
| 93.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 124 | | matches | | 0 | "was locked" | | 1 | "been wedged" | | 2 | "being touched" | | 3 | "was gone" | | 4 | "been, stood" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 253 | | matches | | 0 | "was holding" | | 1 | "were simply blooming" | | 2 | "was going" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 124 | | ratio | 0.105 | | matches | | 0 | "It hung under her jumper on its silver chain, and for three nights it had pulsed against her sternum like a second, smaller heart — warm, steady, insistent — until she'd gotten out of bed at two in the morning and stood in her flat above Silas' bar with the thing cupped in her palm, watching the crimson stone glow through the gaps in her fingers." | | 1 | "Within a few minutes she could see well enough — the gravel grey, the trunks blacker, the sky a bruised violet through the branches." | | 2 | "And not the ordinary nothing of a park at night, which is still full of small architecture — leaves ticking, worms in the soil, the far-off hum of the city — but a total, packed silence, the way a room goes silent when everyone in it has turned to look at you." | | 3 | "That was why she recognised it — the ring of oaks standing upright in the grass, grey and enormous, far older than the park around them." | | 4 | "The eighth stepping stone — she counted them without meaning to, the way you count stairs in the dark — was the boundary." | | 5 | "She was sure of it, the way you're sure of a thing seen in the corner of an eye — the impression of a shape, tall and narrow, gone the instant she looked directly at it." | | 6 | "She counted them anyway — eight, all eight, each one where it should be, each one giving back the honest solid thud of something that did not care whether she lived or died." | | 7 | "Not the stars themselves — she was a Cardiff girl who'd once known the Plough and Cassiopeia and not much more, and she'd never been able to navigate." | | 8 | "It went round the clearing once — she could hear it, her own laugh, finding the eight oaks in turn, circling — and it came back to her from behind, from the dark beyond the stones, half a beat late, and quieter, and not quite the same pitch." | | 9 | "She stood with her back to the middle of the ring and her face to the west, and she listened to the last of her own laugh fade into the grass, and she thought — very clearly, in her father's voice — panic is just information arriving too fast." | | 10 | "The pendant cooled a little, and then cooled further, and then went cold — not the cold of metal in October, but a dead cold, the cold of a stone at the bottom of a well." | | 11 | "It was grey and enormous and it had root flare on all sides and it had been growing there, plainly, for several hundred years — and eight, she had counted eight — she walked the ring counting, six, seven, eight, and then the ninth, and the ninth stood exactly where the dark mouth in the trees had stood, exactly where the way out had been, its bark rough and cold and honest beneath her palm." | | 12 | "Behind her, out of the ring, out of the dark that had no path and no boundary, something exhaled a long slow breath, and the flowers in the clearing turned — every white bell, every bluebell, every foxglove, all of them at once — to face her." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 83 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 1 | | adverbRatio | 0.012048192771084338 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 124 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 124 | | mean | 13.52 | | std | 16.41 | | cv | 1.214 | | sampleLengths | | 0 | 32 | | 1 | 7 | | 2 | 66 | | 3 | 6 | | 4 | 13 | | 5 | 18 | | 6 | 10 | | 7 | 8 | | 8 | 14 | | 9 | 17 | | 10 | 24 | | 11 | 20 | | 12 | 6 | | 13 | 4 | | 14 | 12 | | 15 | 3 | | 16 | 2 | | 17 | 1 | | 18 | 52 | | 19 | 3 | | 20 | 7 | | 21 | 20 | | 22 | 4 | | 23 | 6 | | 24 | 26 | | 25 | 11 | | 26 | 5 | | 27 | 6 | | 28 | 13 | | 29 | 8 | | 30 | 1 | | 31 | 2 | | 32 | 14 | | 33 | 6 | | 34 | 3 | | 35 | 17 | | 36 | 8 | | 37 | 11 | | 38 | 27 | | 39 | 5 | | 40 | 23 | | 41 | 32 | | 42 | 6 | | 43 | 3 | | 44 | 12 | | 45 | 1 | | 46 | 1 | | 47 | 1 | | 48 | 8 | | 49 | 2 |
| |
| 33.06% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 21 | | diversityRatio | 0.3008130081300813 | | totalSentences | 123 | | uniqueOpeners | 37 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 108 | | matches | (empty) | | ratio | 0 | |
| 57.04% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 44 | | totalSentences | 108 | | matches | | 0 | "She had come because of" | | 1 | "It hung under her jumper" | | 2 | "It had never done that" | | 3 | "She'd worn it for months," | | 4 | "She walked it with her" | | 5 | "It died at her lips," | | 6 | "She stopped walking." | | 7 | "She'd seen pictures of the" | | 8 | "They had no business being" | | 9 | "They weren't fake." | | 10 | "They were simply blooming, in" | | 11 | "She pulled it out over" | | 12 | "She stepped into the ring." | | 13 | "She felt it as she" | | 14 | "Her skin lifted along her" | | 15 | "Her ears popped." | | 16 | "She turned a full circle," | | 17 | "She was sure of it," | | 18 | "Her heart was going hard." | | 19 | "She made herself breathe." |
| | ratio | 0.407 | |
| 57.22% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 108 | | matches | | 0 | "The gate to Richmond Park" | | 1 | "She had come because of" | | 2 | "It hung under her jumper" | | 3 | "It had never done that" | | 4 | "She'd worn it for months," | | 5 | "The only thing that stirred" | | 6 | "The path in was broad" | | 7 | "She walked it with her" | | 8 | "A fox screamed somewhere off" | | 9 | "That was the first wrong" | | 10 | "The laugh didn't carry." | | 11 | "It died at her lips," | | 12 | "She stopped walking." | | 13 | "The pendant warmed." | | 14 | "A single long steady heat," | | 15 | "She'd seen pictures of the" | | 16 | "That was why she recognised" | | 17 | "Oaks didn't stand like that." | | 18 | "They had no business being" | | 19 | "Wildflowers starred the clearing, thick" |
| | ratio | 0.806 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 108 | | matches | (empty) | | ratio | 0 | |
| 21.28% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 8 | | matches | | 0 | "And not the ordinary nothing of a park at night, which is still full of small architecture — leaves ticking, worms in the soil, the far-off hum of the city — bu…" | | 1 | "A single long steady heat, as if something had pressed a coal against her chest and was holding it there." | | 2 | "Ancient oak standing stones, the internet called them, which was nonsense." | | 3 | "She counted them anyway — eight, all eight, each one where it should be, each one giving back the honest solid thud of something that did not care whether she l…" | | 4 | "A hard bright throb, once, so hot she gasped and pressed her palm flat over it and felt the heat go through her jumper, through her shirt, into the skin, like b…" | | 5 | "Behind her, out of the ring, out of the dark that had no path and no boundary, something exhaled a long slow breath, and the flowers in the clearing turned — ev…" | | 6 | "She stood with her palm on the ninth oak and her heart going like a bird against her ribs and the dead pendant hanging against her chest, and she thought, quite…" | | 7 | "She was nearly sure that a moment ago it had been bare, and now the moss on it was thick and soft and old, as if it had been there for years, as if she had alre…" |
| |
| 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 | |