| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 3 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.35% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1365 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "very" | | 1 | "slightly" | | 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) | |
| 67.03% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1365 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "weight" | | 1 | "warmth" | | 2 | "echo" | | 3 | "pulsed" | | 4 | "could feel" | | 5 | "pulse" | | 6 | "silence" |
| |
| 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 | 83 | | matches | | |
| 74.01% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 83 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 83 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 82 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 26 | | totalWords | 1376 | | ratio | 0.019 | | matches | | 0 | "Midnight. The grove. Come alone. I know what the stone is." | | 1 | "Pulses faintly with warmth when near a Hel portal" | | 2 | "I know what the stone is." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 1355 | | uniqueNames | 14 | | maxNameDensity | 0.37 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Grove | 1 | | Rory | 5 | | Richmond | 1 | | Twelve | 2 | | Evan | 1 | | Heartstone | 2 | | Elephant | 1 | | Castle | 1 | | Golden | 1 | | Empress | 1 | | Tooting | 1 | | Hel | 1 | | Louder | 1 | | Welsh | 1 |
| | persons | | 0 | "Rory" | | 1 | "Evan" | | 2 | "Heartstone" |
| | places | | 0 | "Grove" | | 1 | "Richmond" | | 2 | "Elephant" | | 3 | "Tooting" | | 4 | "Hel" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like five minutes past, which woul" |
| |
| 54.65% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.453 | | wordCount | 1376 | | matches | | 0 | "Not the nothing of a quiet park at night, which is never actually quiet, but a nothing with weight to it" | | 1 | "not green or sweet but copper-thick" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 83 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 50.96 | | std | 37.42 | | cv | 0.734 | | sampleLengths | | 0 | 74 | | 1 | 8 | | 2 | 73 | | 3 | 26 | | 4 | 93 | | 5 | 72 | | 6 | 3 | | 7 | 117 | | 8 | 17 | | 9 | 138 | | 10 | 18 | | 11 | 88 | | 12 | 40 | | 13 | 4 | | 14 | 73 | | 15 | 20 | | 16 | 51 | | 17 | 41 | | 18 | 82 | | 19 | 12 | | 20 | 111 | | 21 | 41 | | 22 | 46 | | 23 | 3 | | 24 | 42 | | 25 | 13 | | 26 | 70 |
| |
| 96.81% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 83 | | matches | | 0 | "been told" | | 1 | "were meant" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 204 | | matches | | 0 | "was building" | | 1 | "was answering" | | 2 | "was doing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 1 | | flaggedSentences | 10 | | totalSentences | 83 | | ratio | 0.12 | | matches | | 0 | "The bark caught at the delivery bag still slung across her chest — habit, she'd forgotten to leave it in the van — and tore a thin line in the vinyl before she pulled free." | | 1 | "They bloomed everywhere, as she'd been told they did, year-round, defiant of the calendar — foxglove and harebell and some pale trumpet-shaped thing she had no name for, an impossible quantity of them, a carpet under the oaks." | | 2 | "It had been warm since the gate — a slow, low heat, like something cupped in a palm, the way it had been warm twice before: once in a taxi passing through Elephant and Castle and once, for nearly a full minute, on the Golden Empress run to a house in Tooting where the customer had opened the door and not said anything and Rory had handed over the bag and walked back to the moped with her shoulders up around her ears." | | 3 | "*Pulses faintly with warmth when near a Hel portal*, the research had said, though how she knew the word research was generous for what she'd done — three nights on the laptop at the kitchen table and a forum post she'd made and then deleted." | | 4 | "It came from outside the ring, from the trees — the wet slap of bare feet on wet ground." | | 5 | "It pulsed now — she could feel the rhythm against her skin, slow as a drowsy heartbeat, and she understood with a cold and certain clarity that the pulse was not the stone's." | | 6 | "The moonlight fell one way and the shadows lay another and in that particular gap the darkness was doing neither; it was matte and flat and slightly darker than dark, like a shape cut out of the grove and pasted over." | | 7 | "The song was a lullaby — she knew it, knew it in her teeth, in the flesh of her arms, a Welsh one her mother sang over the running bath when she was small and couldn't sleep, and the voice singing it was not her mother's." | | 8 | "Her heel came down on something soft — a flower, she'd crushed a flower, and the smell that rose was not green or sweet but copper-thick and secret, and she did not look down at it." | | 9 | "Rory stood very still in the ring of eleven — twelve — however many stones there now were, and the wildflowers turned and turned to face her in the dark, and behind her, faint and far off and wrong, wrong in a way she had no word for, a second set of bare feet began to walk slowly toward the gap between the oaks to wait for her to run." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 193 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 5 | | adverbRatio | 0.025906735751295335 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.015544041450777202 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 83 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 83 | | mean | 16.58 | | std | 16.71 | | cv | 1.008 | | sampleLengths | | 0 | 9 | | 1 | 30 | | 2 | 35 | | 3 | 8 | | 4 | 1 | | 5 | 5 | | 6 | 21 | | 7 | 8 | | 8 | 5 | | 9 | 14 | | 10 | 19 | | 11 | 5 | | 12 | 7 | | 13 | 14 | | 14 | 6 | | 15 | 24 | | 16 | 2 | | 17 | 2 | | 18 | 10 | | 19 | 49 | | 20 | 2 | | 21 | 42 | | 22 | 8 | | 23 | 20 | | 24 | 3 | | 25 | 6 | | 26 | 38 | | 27 | 9 | | 28 | 13 | | 29 | 5 | | 30 | 2 | | 31 | 44 | | 32 | 3 | | 33 | 14 | | 34 | 10 | | 35 | 83 | | 36 | 45 | | 37 | 10 | | 38 | 5 | | 39 | 3 | | 40 | 7 | | 41 | 34 | | 42 | 3 | | 43 | 1 | | 44 | 43 | | 45 | 5 | | 46 | 2 | | 47 | 2 | | 48 | 31 | | 49 | 4 |
| |
| 48.19% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.39759036144578314 | | totalSentences | 83 | | uniqueOpeners | 33 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 73 | | matches | (empty) | | ratio | 0 | |
| 28.22% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 73 | | matches | | 0 | "It was a gap between" | | 1 | "She stopped on the other" | | 2 | "she said, to nobody" | | 3 | "Her voice came out flat" | | 4 | "She'd spoken too quietly for" | | 5 | "She'd come because of the" | | 6 | "I know what the stone" | | 7 | "She'd read it four times" | | 8 | "She wanted to know what" | | 9 | "She was aware this was" | | 10 | "She started walking." | | 11 | "They bloomed everywhere, as she'd" | | 12 | "She stopped walking and the" | | 13 | "She said nothing." | | 14 | "She faced forward and kept" | | 15 | "It had been warm since" | | 16 | "It was building." | | 17 | "She reached the center of" | | 18 | "She counted them." | | 19 | "She was almost sure there" |
| | ratio | 0.479 | |
| 76.44% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 56 | | totalSentences | 73 | | matches | | 0 | "The gate to the Grove" | | 1 | "It was a gap between" | | 2 | "The bark caught at the" | | 3 | "She stopped on the other" | | 4 | "That was the first thing." | | 5 | "Here the air sat still" | | 6 | "she said, to nobody" | | 7 | "Her voice came out flat" | | 8 | "She'd spoken too quietly for" | | 9 | "She'd come because of the" | | 10 | "I know what the stone" | | 11 | "She'd read it four times" | | 12 | "Somebody had put the Heartstone" | | 13 | "She wanted to know what" | | 14 | "She was aware this was" | | 15 | "She started walking." | | 16 | "The wildflowers were the second" | | 17 | "They bloomed everywhere, as she'd" | | 18 | "She stopped walking and the" | | 19 | "She said nothing." |
| | ratio | 0.767 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 73 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 2 | | matches | | 0 | "The standing stones stood there in their broken ring, ancient oak gone to petrified grey, taller than her, taller than two of her, their tops furred with moss t…" | | 1 | "It was a voice that had learned her mother's voice the way you'd learn a song, and it got the tune exactly right and got one word wrong, and then another, and t…" |
| |
| 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 | 3 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |