| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said again [again]" |
| | dialogueSentences | 6 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.333 | | effectiveRatio | 0.333 | |
| 96.34% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1366 | | 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) | |
| 26.79% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1366 | | totalAiIsms | 20 | | found | | | highlights | | 0 | "pulse" | | 1 | "warmth" | | 2 | "silence" | | 3 | "furrowed" | | 4 | "navigated" | | 5 | "pulsed" | | 6 | "echoing" | | 7 | "perfect" | | 8 | "grave" | | 9 | "racing" | | 10 | "rhythmic" | | 11 | "shimmered" | | 12 | "footsteps" |
| |
| 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 | 110 | | matches | | |
| 90.91% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 1 | | narrationSentences | 110 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 113 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 67 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 30 | | totalWords | 1378 | | ratio | 0.022 | | matches | | 0 | "go at midnight, don't be late, it matters" | | 1 | "If you must go, go before dawn, and don't answer anything that calls your name." | | 2 | "Don't answer anything that calls your name." |
| |
| 89.29% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 1 | | matches | | 0 | "Stop, she told herself." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 1319 | | uniqueNames | 14 | | maxNameDensity | 0.68 | | worstName | "Eva" | | maxWindowNameDensity | 2 | | worstWindowName | "Eva" | | discoveredNames | | Eva | 9 | | Richmond | 2 | | Park | 2 | | Golden | 1 | | Empress | 1 | | November | 3 | | Heartstone | 1 | | Pendant | 1 | | Hel | 1 | | Dymas | 1 | | Rory | 8 | | Evan | 1 | | Welsh | 1 | | November-cold | 1 |
| | persons | | 0 | "Eva" | | 1 | "Empress" | | 2 | "Pendant" | | 3 | "Dymas" | | 4 | "Rory" | | 5 | "Evan" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "November" | | 3 | "Hel" | | 4 | "November-cold" |
| | globalScore | 1 | | windowScore | 1 | |
| 73.08% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like it had always felt like an ho" | | 1 | "felt like an hour" | | 2 | "something like turned earth and old chains" | | 3 | "smelled like Eva's flat, like coffee and l" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.726 | | wordCount | 1378 | | matches | | 0 | "not as a lure but as an alarm, a fire bell ringing in the one place she was no" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 113 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 44.45 | | std | 31.13 | | cv | 0.7 | | sampleLengths | | 0 | 17 | | 1 | 105 | | 2 | 37 | | 3 | 68 | | 4 | 66 | | 5 | 9 | | 6 | 22 | | 7 | 89 | | 8 | 42 | | 9 | 83 | | 10 | 53 | | 11 | 63 | | 12 | 35 | | 13 | 89 | | 14 | 15 | | 15 | 71 | | 16 | 71 | | 17 | 9 | | 18 | 3 | | 19 | 64 | | 20 | 50 | | 21 | 18 | | 22 | 7 | | 23 | 1 | | 24 | 55 | | 25 | 8 | | 26 | 87 | | 27 | 53 | | 28 | 3 | | 29 | 75 | | 30 | 10 |
| |
| 98.88% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 110 | | matches | | 0 | "been covered" | | 1 | "was gone" |
| |
| 82.01% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 226 | | matches | | 0 | "was beginning" | | 1 | "weren't echoing" | | 2 | "was not racing" | | 3 | "was screaming" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 8 | | flaggedSentences | 12 | | totalSentences | 113 | | ratio | 0.106 | | matches | | 0 | "Eva's text — *go at midnight, don't be late, it matters* — had arrived at 11:02, which meant she'd made good time." | | 1 | "It had been doing that since she'd entered the park — a faint pulse, like a second heartbeat tucked behind her own." | | 2 | "Not empty silence — attentive silence." | | 3 | "Richmond Park was awash in cloud cover all evening; she'd navigated the bridle paths by torchlight." | | 4 | "She knelt by a patch of white flowers — snowdrops, out of season and seasonless now — and saw the second wrong thing." | | 5 | "Not a grave — she made herself look, made herself confirm — no mound, no markers, just a shallow depression like something had lain here a long time and recently risen." | | 6 | "In the silence that followed, Rory became aware of all the other sounds at once: the slow creak of branches overhead, bending though there was no wind; the papery rustle of flowers turning, all of them, every bloom in the grove, rotating on their stems to face her; and beneath it all, a wet, rhythmic sound from the eastern stones, like breathing through cloth." | | 7 | "Not closed — gone." | | 8 | "She was the clever one; everyone always said so; Eva used to joke that Rory could think her way out of a paper bag with no holes." | | 9 | "The pendant was a compass for portals, which meant portals existed, which meant exits existed; she only had to find the seam." | | 10 | "It had not crossed the grove; there had been no footsteps; and yet it was close enough that she could smell it, and that was the worst thing yet, because it smelled like Eva's flat, like coffee and lavender soap, with underneath it something like turned earth and old chains." | | 11 | "Not warm — hot, urgent, a burn like a struck match, and Rory understood it at last not as a lure but as an alarm, a fire bell ringing in the one place she was not supposed to be, and above her the branches creaked and bent lower, and every flower in the grove had turned its white face toward her like a congregation of small, waiting moons." |
| |
| 52.93% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 58 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 6 | | adverbRatio | 0.10344827586206896 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.034482758620689655 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 113 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 113 | | mean | 12.19 | | std | 13.21 | | cv | 1.083 | | sampleLengths | | 0 | 17 | | 1 | 8 | | 2 | 44 | | 3 | 44 | | 4 | 7 | | 5 | 2 | | 6 | 4 | | 7 | 2 | | 8 | 9 | | 9 | 22 | | 10 | 25 | | 11 | 5 | | 12 | 19 | | 13 | 8 | | 14 | 11 | | 15 | 11 | | 16 | 22 | | 17 | 7 | | 18 | 26 | | 19 | 9 | | 20 | 5 | | 21 | 6 | | 22 | 11 | | 23 | 3 | | 24 | 27 | | 25 | 8 | | 26 | 1 | | 27 | 1 | | 28 | 16 | | 29 | 3 | | 30 | 30 | | 31 | 3 | | 32 | 1 | | 33 | 1 | | 34 | 23 | | 35 | 3 | | 36 | 1 | | 37 | 10 | | 38 | 4 | | 39 | 2 | | 40 | 7 | | 41 | 24 | | 42 | 4 | | 43 | 42 | | 44 | 11 | | 45 | 1 | | 46 | 7 | | 47 | 8 | | 48 | 11 | | 49 | 5 |
| |
| 61.36% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.415929203539823 | | totalSentences | 113 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 90 | | matches | | 0 | "Then it settled into a" | | 1 | "Instead she followed the trail," | | 2 | "Still beating with her." | | 3 | "Then, faintly, a second sound:" |
| | ratio | 0.044 | |
| 73.33% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 90 | | matches | | 0 | "She checked her phone." | | 1 | "She was beginning to believe" | | 2 | "It wasn't the cold of" | | 3 | "It was older, patient, like" | | 4 | "It had been doing that" | | 5 | "She hadn't understood what that" | | 6 | "Her voice came out smaller" | | 7 | "She turned slowly." | | 8 | "She blinked, and they were" | | 9 | "She looked up." | | 10 | "She'd been in the grove," | | 11 | "It felt like an hour." | | 12 | "It felt like it had" | | 13 | "She knelt by a patch" | | 14 | "She should have turned back" | | 15 | "She knew that." | | 16 | "Her pulse, she noticed, was" | | 17 | "It should have been." | | 18 | "Her mind was screaming and" | | 19 | "It was not calm." |
| | ratio | 0.367 | |
| 93.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 66 | | totalSentences | 90 | | matches | | 0 | "The grove was exactly where" | | 1 | "Nothing in Richmond Park was" | | 2 | "Rory had walked these paths" | | 3 | "Wildflowers bloomed beneath them in" | | 4 | "She checked her phone." | | 5 | "Eva's text — *go at" | | 6 | "An hour inside can be" | | 7 | "Rory hadn't believed her then." | | 8 | "She was beginning to believe" | | 9 | "It wasn't the cold of" | | 10 | "It was older, patient, like" | | 11 | "The Heartstone Pendant shifted against" | | 12 | "It had been doing that" | | 13 | "She hadn't understood what that" | | 14 | "Her voice came out smaller" | | 15 | "The grove answered with silence." | | 16 | "The silence of a room" | | 17 | "She turned slowly." | | 18 | "She blinked, and they were" | | 19 | "Richmond Park was awash in" |
| | ratio | 0.733 | |
| 55.56% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 90 | | matches | | 0 | "As if it weren't echoing" |
| | ratio | 0.011 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 2 | | matches | | 0 | "A Welsh lullaby her mother used to sing, half-remembered, the melody sagging in the wrong places, notes stretched too long, as if the singer had learned it from…" | | 1 | "In the silence that followed, Rory became aware of all the other sounds at once: the slow creak of branches overhead, bending though there was no wind; the pape…" |
| |
| 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 | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 6 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0 | | effectiveRatio | 0 | |