| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 77.56% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1560 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "slowly" | | 1 | "lightly" | | 2 | "very" | | 3 | "completely" | | 4 | "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) | |
| 58.33% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1560 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "glistening" | | 1 | "warmth" | | 2 | "pulse" | | 3 | "pulsed" | | 4 | "weight" | | 5 | "rhythmic" | | 6 | "stomach" | | 7 | "resolved" | | 8 | "unsettled" | | 9 | "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 | 89 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 89 | | filterMatches | | | hedgeMatches | (empty) | |
| 95.79% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | gibberishSentences | 1 | | adjustedGibberishSentences | 1 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 71 | | ratio | 0.011 | | matches | | 0 | "From the flat above Silas' bar, she had learned that the city had sounds it only made at night: the水管 knock of old pipes, the particular scrape of a bin lorry at four, Silas closin…" |
| |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1578 | | ratio | 0 | | matches | (empty) | |
| 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 | 36 | | wordCount | 1507 | | uniqueNames | 17 | | maxNameDensity | 0.6 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Isolde | 3 | | Eva | 1 | | Evan | 3 | | Heartstone | 2 | | Deep | 1 | | Yu-Fei | 2 | | Camden | 1 | | Cardiff | 2 | | January | 1 | | July | 1 | | Rory | 9 | | Park | 1 | | November | 1 | | Petersham | 2 | | Road | 2 | | Grove | 3 | | Dymas | 1 |
| | persons | | 0 | "Isolde" | | 1 | "Eva" | | 2 | "Evan" | | 3 | "Yu-Fei" | | 4 | "Rory" | | 5 | "Grove" | | 6 | "Dymas" |
| | places | | 0 | "Heartstone" | | 1 | "Camden" | | 2 | "Cardiff" | | 3 | "January" | | 4 | "July" | | 5 | "Park" | | 6 | "November" | | 7 | "Petersham" | | 8 | "Road" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 66 | | glossingSentenceCount | 1 | | matches | | 0 | "trunk and then apparently continuing into it" |
| |
| 9.89% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.901 | | wordCount | 1578 | | matches | | 0 | "not the honest warmth of a hand pressed to skin, but something slower, a pulse" | | 1 | "not the foxglove pinks and snowdrop whites she'd seen in daylight but a uniform, waxy, meat-coloured red" | | 2 | "no longer black and wet but" |
| |
| 92.59% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 90 | | matches | | 0 | "killed — that the was that it" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 52.6 | | std | 33.56 | | cv | 0.638 | | sampleLengths | | 0 | 9 | | 1 | 81 | | 2 | 43 | | 3 | 67 | | 4 | 4 | | 5 | 112 | | 6 | 80 | | 7 | 51 | | 8 | 108 | | 9 | 30 | | 10 | 61 | | 11 | 98 | | 12 | 76 | | 13 | 3 | | 14 | 70 | | 15 | 22 | | 16 | 75 | | 17 | 12 | | 18 | 95 | | 19 | 60 | | 20 | 15 | | 21 | 80 | | 22 | 80 | | 23 | 68 | | 24 | 21 | | 25 | 4 | | 26 | 55 | | 27 | 73 | | 28 | 16 | | 29 | 9 |
| |
| 93.44% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 89 | | matches | | 0 | "been seven" | | 1 | "being pulled" | | 2 | "were arranged" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 247 | | matches | | 0 | "was happening" | | 1 | "was standing" | | 2 | "was still standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 90 | | ratio | 0.122 | | matches | | 0 | "It was wet, black and glistening, and its bark ran with something that caught the moon and held it wrong — too smooth, too slow, like oil on water." | | 1 | "An unknown benefactor — that was the phrase the police had used, in Cardiff, when someone left an envelope of cash in an unmarked locker for a woman leaving an abusive address." | | 2 | "The grove bloomed year-round, Isolde had told her — foxglove in January, snowdrops in July, a season that couldn't be bothered with calendars." | | 3 | "Richmond Park in November was a wet, sucking chorus — mud, leaves, the distant traffic on Petersham Road — but here the ground took her weight and gave back nothing." | | 4 | "She had come because the pendant had been warm for three days straight, because the warmth had developed a direction, and because Isolde had said — had said it lightly, over tea, with a smile that didn't reach her eyes — that the Grove would tell her what Dymas meant when it was ready." | | 5 | "The branches were bare — she'd never seen the oak bare before — and they were arranged, she realised, with a deliberateness that made her stomach drop, in something that almost resolved into a shape and then didn't, the way a word sits on the tip of the tongue and refuses." | | 6 | "Not hers — she was still standing at its outer edge — but pressed into the amber rings, going outward, one set, small and bare, arriving at the trunk and then apparently continuing into it." | | 7 | "Somewhere behind her — behind the stones, behind the wet black eighth one — a branch snapped." | | 8 | "Every bowed head in the clearing snapped upright in the same instant, and the sweet smell doubled and then tripled, thick enough to taste, and the petals were the wrong colour — not the foxglove pinks and snowdrop whites she'd seen in daylight but a uniform, waxy, meat-coloured red that the moonlight did nothing to soften." | | 9 | "It held a faint, patient, crimson light that pulsed in time with the stone at her throat, and as she watched, the light inside the hollow dimmed — as though whatever made it had just closed its eyes." | | 10 | "Rory stood very still and did not turn around, because the footprints on the ground had been bare, and the thing that had made them had been small, and she understood — with the cold, clear certainty that had always been her gift and was now, she thought, the thing that would get her killed — that the reason she had not heard it approach was that it had never been behind her." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 225 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 8 | | adverbRatio | 0.035555555555555556 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0044444444444444444 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 17.53 | | std | 15.26 | | cv | 0.871 | | sampleLengths | | 0 | 9 | | 1 | 43 | | 2 | 2 | | 3 | 27 | | 4 | 9 | | 5 | 14 | | 6 | 29 | | 7 | 9 | | 8 | 5 | | 9 | 46 | | 10 | 7 | | 11 | 3 | | 12 | 1 | | 13 | 9 | | 14 | 34 | | 15 | 20 | | 16 | 5 | | 17 | 32 | | 18 | 2 | | 19 | 10 | | 20 | 29 | | 21 | 23 | | 22 | 8 | | 23 | 20 | | 24 | 8 | | 25 | 6 | | 26 | 30 | | 27 | 7 | | 28 | 6 | | 29 | 29 | | 30 | 54 | | 31 | 9 | | 32 | 10 | | 33 | 22 | | 34 | 3 | | 35 | 5 | | 36 | 4 | | 37 | 37 | | 38 | 12 | | 39 | 8 | | 40 | 17 | | 41 | 25 | | 42 | 28 | | 43 | 10 | | 44 | 4 | | 45 | 2 | | 46 | 12 | | 47 | 47 | | 48 | 5 | | 49 | 24 |
| |
| 55.56% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.4 | | totalSentences | 90 | | uniqueOpeners | 36 | |
| 80.32% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 83 | | matches | | 0 | "Somewhere behind her — behind" | | 1 | "Then, from the hollow, in" |
| | ratio | 0.024 | |
| 94.70% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 83 | | matches | | 0 | "It was wet, black and" | | 1 | "She told herself she had" | | 2 | "She counted again." | | 3 | "It had been warm when" | | 4 | "She hadn't bought it anywhere." | | 5 | "She might have been walking" | | 6 | "She had come for a" | | 7 | "She reminded herself of it" | | 8 | "She had come because the" | | 9 | "She was no longer sure" | | 10 | "She had lived in Cardiff" | | 11 | "She took a breath and" | | 12 | "They lay in rings, crisp" | | 13 | "She did not know what" | | 14 | "It had, now, a sound" | | 15 | "She looked up." | | 16 | "It had arrived, and it" | | 17 | "She'd had a bar on" | | 18 | "She put the phone away" | | 19 | "She could not tell the" |
| | ratio | 0.313 | |
| 50.36% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 83 | | matches | | 0 | "The standing stones were wrong" | | 1 | "Rory stopped at the edge" | | 2 | "There had been seven in" | | 3 | "The eighth stood where the" | | 4 | "It was wet, black and" | | 5 | "She told herself she had" | | 6 | "That was the reasonable thing." | | 7 | "Rory had always been the" | | 8 | "She counted again." | | 9 | "The Heartstone at her throat" | | 10 | "It had been warm when" | | 11 | "She hadn't bought it anywhere." | | 12 | "An unknown benefactor — that" | | 13 | "Someone wants you to have" | | 14 | "The pendant pulsed again as" | | 15 | "The grove bloomed year-round, Isolde" | | 16 | "Every head bowed, every petal" | | 17 | "The grass gave under her" | | 18 | "That was the second wrong" | | 19 | "Richmond Park in November was" |
| | ratio | 0.819 | |
| 60.24% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 83 | | matches | | | ratio | 0.012 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 49 | | technicalSentenceCount | 14 | | matches | | 0 | "It was wet, black and glistening, and its bark ran with something that caught the moon and held it wrong — too smooth, too slow, like oil on water." | | 1 | "An unknown benefactor — that was the phrase the police had used, in Cardiff, when someone left an envelope of cash in an unmarked locker for a woman leaving an …" | | 2 | "The grove bloomed year-round, Isolde had told her — foxglove in January, snowdrops in July, a season that couldn't be bothered with calendars." | | 3 | "She had come because the pendant had been warm for three days straight, because the warmth had developed a direction, and because Isolde had said — had said it …" | | 4 | "The eighth stone stood exactly where she'd left it, and beyond it the tree line was a ragged black wall against a sky that had too many stars and not enough of …" | | 5 | "The pendant was warmest at the centre of the clearing, where the old oak had dropped a great spiral of leaves that had not decayed." | | 6 | "They lay in rings, crisp and amber, each leaf whole, each vein visible, as though the tree had been shedding them for an hour instead of a season." | | 7 | "The branches were bare — she'd never seen the oak bare before — and they were arranged, she realised, with a deliberateness that made her stomach drop, in somet…" | | 8 | "The screen lit the clearing in a small white rectangle, and the light did something strange: it fell a metre short of the eighth stone, as though the darkness b…" | | 9 | "She'd had a bar on Petersham Road and none here, and she'd told herself that was the park." | | 10 | "The toes were pointed outward all the way to the last ring, and the last ring's print was clean, whole, as though the foot had simply stopped existing where the…" | | 11 | "Natural sounds in an unnatural place were the worst ones, because they were the ones that meant something was close enough to be ordinary." | | 12 | "The flowers closed again, one by one, in a slow ripple that went outward from the trunk, and the creaking resumed overhead, and the eighth stone behind her was …" | | 13 | "Rory stood very still and did not turn around, because the footprints on the ground had been bare, and the thing that had made them had been small, and she unde…" |
| |
| 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 | |