| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said aloud [aloud]" |
| | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 1 | | effectiveRatio | 1 | |
| 89.82% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1473 | | totalAiIsmAdverbs | 3 | | 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) | |
| 83.03% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1473 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "warmth" | | 1 | "pulse" | | 2 | "weight" | | 3 | "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 | 0 | | narrationSentences | 118 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 118 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 119 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1490 | | 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 | 21 | | wordCount | 1488 | | uniqueNames | 12 | | maxNameDensity | 0.27 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Road" | | discoveredNames | | Petersham | 1 | | Road | 2 | | Commercial | 1 | | Northern | 1 | | December | 1 | | Rory | 4 | | Carter | 2 | | Cardiff | 1 | | Eva | 2 | | Hackney | 1 | | Evan | 2 | | Six | 3 |
| | persons | | 0 | "Rory" | | 1 | "Carter" | | 2 | "Eva" | | 3 | "Evan" |
| | places | | 0 | "Petersham" | | 1 | "Road" | | 2 | "Commercial" | | 3 | "December" | | 4 | "Cardiff" | | 5 | "Hackney" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 85 | | glossingSentenceCount | 1 | | matches | | 0 | "sounded like something clearing its throat" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1490 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 119 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 39.21 | | std | 29.11 | | cv | 0.742 | | sampleLengths | | 0 | 40 | | 1 | 110 | | 2 | 15 | | 3 | 89 | | 4 | 19 | | 5 | 71 | | 6 | 13 | | 7 | 34 | | 8 | 99 | | 9 | 73 | | 10 | 42 | | 11 | 45 | | 12 | 60 | | 13 | 4 | | 14 | 69 | | 15 | 24 | | 16 | 11 | | 17 | 55 | | 18 | 16 | | 19 | 35 | | 20 | 8 | | 21 | 72 | | 22 | 60 | | 23 | 77 | | 24 | 33 | | 25 | 1 | | 26 | 39 | | 27 | 29 | | 28 | 29 | | 29 | 82 | | 30 | 3 | | 31 | 29 | | 32 | 2 | | 33 | 1 | | 34 | 22 | | 35 | 41 | | 36 | 22 | | 37 | 16 |
| |
| 87.42% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 118 | | matches | | 0 | "been told" | | 1 | "been drawn" | | 2 | "been ten" | | 3 | "being pulled" | | 4 | "been borrowed" | | 5 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 11 | | totalVerbs | 259 | | matches | | 0 | "were blooming" | | 1 | "was still lying" | | 2 | "was taking" | | 3 | "was rubbing" | | 4 | "was doing" | | 5 | "was facing" | | 6 | "was listening" | | 7 | "was shrinking" | | 8 | "was not keeping" | | 9 | "was keeping" | | 10 | "wasn't following" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 1 | | flaggedSentences | 13 | | totalSentences | 119 | | ratio | 0.109 | | matches | | 0 | "The last delivery of the night was sweet-and-sour pork for a semi-detached on Petersham Road, and the pendant had been warm the whole way out — a small, patient heat riding her sternum like a coin held over a flame." | | 1 | "It warmed at odd times afterwards — in a certain alley off the Commercial Road, once, briefly, on the Northern line with the tunnel pressing past the windows — and it always cooled by morning, as if ashamed of itself." | | 2 | "The park had six hundred deer; the signs were proud of it." | | 3 | "The air smelled of honey, and under the honey something sweeter — sweet the way fruit is sweet a day past eating." | | 4 | "She tried again with the flash off and got nothing — a black so total the phone might have died, except the clock was still lying to itself in the corner." | | 5 | "She noticed the flowers the way you notice a word said behind your back — late, and all at once." | | 6 | "All those warm little pulses in alleys and tunnels — she had read them as warnings." | | 7 | "Evan used to look at her exactly this way in the last year, across rooms, over tables — patient, measuring, already decided." | | 8 | "She chose the gap between the third and fourth stones — her gap, the one with her footprints going in — and walked out into frost and bracken and honest cold, and kept walking, and the oaks opened, and there were the stones again, ahead of her, the flowers glowing faintly violet in the dark." | | 9 | "It was almost Eva's voice — Eva who was asleep in Hackney and had no idea where she was — almost, but the vowels were wrong, like a copy made from a copy." | | 10 | "Then the air moved against the back of her neck — cool, damp, distinct — in a clearing where the whole night was warm and nothing else breathed." | | 11 | "The nearest one — the one she had put her hand on and called stone — was gone." | | 12 | "Out past the torchlight, the dragging began again — slow, soft, unhurried." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1476 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 57 | | adverbRatio | 0.03861788617886179 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.006097560975609756 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 119 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 119 | | mean | 12.52 | | std | 10.5 | | cv | 0.839 | | sampleLengths | | 0 | 40 | | 1 | 30 | | 2 | 2 | | 3 | 8 | | 4 | 40 | | 5 | 7 | | 6 | 23 | | 7 | 7 | | 8 | 8 | | 9 | 17 | | 10 | 27 | | 11 | 6 | | 12 | 5 | | 13 | 10 | | 14 | 9 | | 15 | 15 | | 16 | 12 | | 17 | 7 | | 18 | 17 | | 19 | 36 | | 20 | 18 | | 21 | 6 | | 22 | 7 | | 23 | 34 | | 24 | 11 | | 25 | 22 | | 26 | 31 | | 27 | 19 | | 28 | 6 | | 29 | 10 | | 30 | 17 | | 31 | 7 | | 32 | 10 | | 33 | 3 | | 34 | 1 | | 35 | 3 | | 36 | 1 | | 37 | 31 | | 38 | 11 | | 39 | 7 | | 40 | 3 | | 41 | 3 | | 42 | 9 | | 43 | 9 | | 44 | 16 | | 45 | 29 | | 46 | 20 | | 47 | 8 | | 48 | 4 | | 49 | 8 |
| |
| 43.70% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.35294117647058826 | | totalSentences | 119 | | uniqueOpeners | 42 | |
| 93.46% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 107 | | matches | | 0 | "Somewhere past the third oak" | | 1 | "Then came the sound." | | 2 | "Then the air moved against" |
| | ratio | 0.028 | |
| 33.08% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 50 | | totalSentences | 107 | | matches | | 0 | "It warmed at odd times" | | 1 | "She told herself she would" | | 2 | "She was very good at" | | 3 | "She left the bike chained" | | 4 | "It only lowers its voice." | | 5 | "Her shoes crunched on the" | | 6 | "Her torch caught no eyes" | | 7 | "She found the stones the" | | 8 | "She looked up for the" | | 9 | "She'd learned the winter sky" | | 10 | "Her phone said 00:47, no" | | 11 | "She raised it and photographed" | | 12 | "She looked up." | | 13 | "She looked down." | | 14 | "She tried again with the" | | 15 | "She stood listening for what" | | 16 | "She watched it." | | 17 | "It said 00:51." | | 18 | "She was rubbing the crescent" | | 19 | "She noticed the flowers the" |
| | ratio | 0.467 | |
| 53.46% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 107 | | matches | | 0 | "The last delivery of the" | | 1 | "Rory had found the thing" | | 2 | "It warmed at odd times" | | 3 | "Tonight on the bus it" | | 4 | "Tonight, faintly and unmistakably, it" | | 5 | "She told herself she would" | | 6 | "She was very good at" | | 7 | "She left the bike chained" | | 8 | "Frost had come down hard" | | 9 | "London never goes silent, she" | | 10 | "It only lowers its voice." | | 11 | "Her shoes crunched on the" | | 12 | "The park had six hundred" | | 13 | "Her torch caught no eyes" | | 14 | "She found the stones the" | | 15 | "The frost ended at them" | | 16 | "The pendant pulled like a" | | 17 | "Warmth closed over her like" | | 18 | "The air smelled of honey," | | 19 | "She looked up for the" |
| | ratio | 0.813 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 107 | | matches | (empty) | | ratio | 0 | |
| 92.73% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 57 | | technicalSentenceCount | 4 | | matches | | 0 | "It warmed at odd times afterwards — in a certain alley off the Commercial Road, once, briefly, on the Northern line with the tunnel pressing past the windows — …" | | 1 | "Six columns of grey stone stood in a rough ring at the edge of a clearing, grained like timber, like oaks that had been told to hold still and had obeyed for a …" | | 2 | "The pendant pulled like a hook set in her breastbone, and Rory Carter, who had learned the hard way that unanswered questions don't age well, stepped over the f…" | | 3 | "She chose the gap between the third and fourth stones — her gap, the one with her footprints going in — and walked out into frost and bracken and honest cold, a…" |
| |
| 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 | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |