| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 74.92% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1794 | | totalAiIsmAdverbs | 9 | | found | | | highlights | | 0 | "slowly" | | 1 | "quickly" | | 2 | "slightly" | | 3 | "very" | | 4 | "completely" | | 5 | "perfectly" |
| |
| 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) | |
| 74.92% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1794 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "navigating" | | 1 | "pulse" | | 2 | "weight" | | 3 | "could feel" | | 4 | "silence" | | 5 | "throb" | | 6 | "predator" | | 7 | "warmth" |
| |
| 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 | 126 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 126 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 126 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 58 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1809 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 16 | | wordCount | 1809 | | uniqueNames | 9 | | maxNameDensity | 0.39 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Rory | 7 | | Park | 1 | | Twickenham | 1 | | November | 1 | | Golden | 1 | | Empress | 1 | | Silas | 1 | | Heartstone | 1 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "November" | | 3 | "Golden" |
| | globalScore | 1 | | windowScore | 1 | |
| 85.06% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 77 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like trees that had forgotten how" | | 1 | "felt like her whole life" |
| |
| 89.44% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.106 | | wordCount | 1809 | | matches | | 0 | "not the faint background hum she'd grown accustomed to, but a steady, insistent heat, like a coal pressed to skin throug" | | 1 | "Not painful yet, but close" |
| |
| 87.30% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 126 | | matches | | 0 | "knew that she" | | 1 | "knew that its" | | 2 | "see that they" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 44 | | mean | 41.11 | | std | 35.25 | | cv | 0.857 | | sampleLengths | | 0 | 69 | | 1 | 83 | | 2 | 8 | | 3 | 111 | | 4 | 18 | | 5 | 47 | | 6 | 87 | | 7 | 11 | | 8 | 58 | | 9 | 4 | | 10 | 106 | | 11 | 4 | | 12 | 5 | | 13 | 94 | | 14 | 3 | | 15 | 40 | | 16 | 54 | | 17 | 6 | | 18 | 37 | | 19 | 1 | | 20 | 77 | | 21 | 5 | | 22 | 43 | | 23 | 52 | | 24 | 2 | | 25 | 69 | | 26 | 3 | | 27 | 85 | | 28 | 3 | | 29 | 70 | | 30 | 25 | | 31 | 61 | | 32 | 4 | | 33 | 56 | | 34 | 101 | | 35 | 3 | | 36 | 3 | | 37 | 5 | | 38 | 90 | | 39 | 83 | | 40 | 38 | | 41 | 19 | | 42 | 8 | | 43 | 58 |
| |
| 99.69% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 126 | | matches | | 0 | "been mistaken" | | 1 | "being seen" |
| |
| 62.07% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 290 | | matches | | 0 | "were facing" | | 1 | "were looking" | | 2 | "were trying" | | 3 | "were walking" | | 4 | "was standing" | | 5 | "were leaning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 126 | | ratio | 0.095 | | matches | | 0 | "But the pendant had been warm against her sternum all day — not the faint background hum she'd grown accustomed to, but a steady, insistent heat, like a coal pressed to skin through cotton." | | 1 | "The city sounds — the distant arterial hum of the A316, a siren threading itself thin across Twickenham — fell away as though someone had slowly turned a dial." | | 2 | "They looked like trees that had forgotten how to be trees — ancient oaks gone grey and smooth, stripped of bark and branch, narrowed to rough pillars that formed an imperfect circle in a clearing no map had ever shown." | | 3 | "Not dramatically — not the way stepping into a walk-in freezer changes things — but in the way a room changes when someone opens a window you can't see." | | 4 | "All of them — every pale bloom in the clearing — had turned to face the centre of the circle, their heads bowed inward like congregants at prayer." | | 5 | "She turned her head slowly and saw nothing — just the dark spaces between the stones, the undergrowth beyond, the suggestion of tree trunks in the deeper black." | | 6 | "Not painful yet, but close — an urgent, blood-warm insistence against her chest, as though the stone were trying to burrow through her ribs and get away from something." | | 7 | "Closer now, and from multiple directions at once — a scattered, patternless percussion that surrounded the grove's edge like rain on a tin roof, except that it wasn't rain and there was no roof and each individual tap had a deliberateness to it that rain did not possess." | | 8 | "She caught it at the very edge of her vision — a shift in the darkness between two stones on her left, a vertical displacement, as though something tall had straightened up from a crouch and then gone still again the instant she looked." | | 9 | "The air in the circle had gone perfectly still — she could feel the stillness on her skin, a breathless, pressurized absence of movement that made her eardrums ache." | | 10 | "She pressed her thumbnail into it, hard, the way she always did when she needed to anchor herself — a habit from childhood, from the moment a broken teacup had opened the skin and her mother had told her scars were just the body's way of remembering what it had survived." | | 11 | "But she didn't blink, and she saw it — a lateral shift of perhaps two inches, the stone sliding sideways without sound, without any visible mechanism of locomotion." |
| |
| 87.53% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1801 | | adjectiveStacks | 2 | | stackExamples | | 0 | "broad root-knuckled floor" | | 1 | "urgent, blood-warm insistence" |
| | adverbCount | 73 | | adverbRatio | 0.04053303720155469 | | lyAdverbCount | 21 | | lyAdverbRatio | 0.011660188784008884 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 126 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 126 | | mean | 14.36 | | std | 13.16 | | cv | 0.917 | | sampleLengths | | 0 | 28 | | 1 | 41 | | 2 | 6 | | 3 | 3 | | 4 | 17 | | 5 | 34 | | 6 | 23 | | 7 | 4 | | 8 | 4 | | 9 | 27 | | 10 | 24 | | 11 | 8 | | 12 | 11 | | 13 | 29 | | 14 | 12 | | 15 | 4 | | 16 | 12 | | 17 | 2 | | 18 | 23 | | 19 | 24 | | 20 | 10 | | 21 | 40 | | 22 | 4 | | 23 | 23 | | 24 | 10 | | 25 | 11 | | 26 | 3 | | 27 | 29 | | 28 | 4 | | 29 | 3 | | 30 | 19 | | 31 | 4 | | 32 | 19 | | 33 | 29 | | 34 | 9 | | 35 | 27 | | 36 | 22 | | 37 | 4 | | 38 | 5 | | 39 | 8 | | 40 | 7 | | 41 | 28 | | 42 | 22 | | 43 | 29 | | 44 | 3 | | 45 | 23 | | 46 | 5 | | 47 | 12 | | 48 | 4 | | 49 | 4 |
| |
| 38.89% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.30952380952380953 | | totalSentences | 126 | | uniqueOpeners | 39 | |
| 54.64% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 122 | | matches | | 0 | "Then started again, from her" | | 1 | "Just the gap between stones" |
| | ratio | 0.016 | |
| 56.07% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 50 | | totalSentences | 122 | | matches | | 0 | "She'd gotten off two stops" | | 1 | "She shouldn't have come at" | | 2 | "She knew that." | | 3 | "She stood still for a" | | 4 | "She crossed the open ground" | | 5 | "They didn't look like standing" | | 6 | "They looked like trees that" | | 7 | "It tasted different." | | 8 | "She pressed her hand to" | | 9 | "She didn't know why it" | | 10 | "She didn't know who had" | | 11 | "She knew only that it" | | 12 | "She was paying attention." | | 13 | "It took her a moment" | | 14 | "She'd been here four times" | | 15 | "She stood perhaps ten feet" | | 16 | "She did not reach back." | | 17 | "She didn't want to know" | | 18 | "She turned her head slowly" | | 19 | "She kept her breathing even." |
| | ratio | 0.41 | |
| 74.75% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 94 | | totalSentences | 122 | | matches | | 0 | "The last bus from Richmond" | | 1 | "She'd gotten off two stops" | | 2 | "She shouldn't have come at" | | 3 | "She knew that." | | 4 | "Eva would have said as" | | 5 | "The gap in the park" | | 6 | "Rory pushed through it sideways," | | 7 | "Richmond Park at midnight was" | | 8 | "The sodium glow of the" | | 9 | "The city sounds — the" | | 10 | "She stood still for a" | | 11 | "The soft percussion of water" | | 12 | "She crossed the open ground" | | 13 | "The grass gave way to" | | 14 | "They didn't look like standing" | | 15 | "They looked like trees that" | | 16 | "Wildflowers grew between them." | | 17 | "Snowdrops, or something that wanted" | | 18 | "Rory stepped between two of" | | 19 | "The temperature changed." |
| | ratio | 0.77 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 122 | | matches | | 0 | "Even now, in November, she" | | 1 | "Now they strained toward a" | | 2 | "If she'd blinked, she would" |
| | ratio | 0.025 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 60 | | technicalSentenceCount | 16 | | matches | | 0 | "The last bus from Richmond had been nearly empty, just Rory and a man who smelled of wet wool and wouldn't stop clicking his tongue against his teeth." | | 1 | "She'd gotten off two stops early to be rid of him and walked the rest of the way along the park wall in the dark, her trainers scuffing through wet leaves that …" | | 2 | "The city sounds — the distant arterial hum of the A316, a siren threading itself thin across Twickenham — fell away as though someone had slowly turned a dial." | | 3 | "They looked like trees that had forgotten how to be trees — ancient oaks gone grey and smooth, stripped of bark and branch, narrowed to rough pillars that forme…" | | 4 | "Even now, in November, she could see pale blooms nodding in the dark, their petals catching what little light filtered through the canopy." | | 5 | "It was narrower than the others, and slightly darker, and when she stared at it for too long her eyes watered as though she were looking at a bright light inste…" | | 6 | "Not painful yet, but close — an urgent, blood-warm insistence against her chest, as though the stone were trying to burrow through her ribs and get away from so…" | | 7 | "Closer now, and from multiple directions at once — a scattered, patternless percussion that surrounded the grove's edge like rain on a tin roof, except that it …" | | 8 | "She caught it at the very edge of her vision — a shift in the darkness between two stones on her left, a vertical displacement, as though something tall had str…" | | 9 | "Just the gap between stones five and six, and the black beyond, and the faintest suggestion of breath that wasn't hers." | | 10 | "The air in the circle had gone perfectly still — she could feel the stillness on her skin, a breathless, pressurized absence of movement that made her eardrums …" | | 11 | "But the grass moved anyway, bending and swaying in a slow circular pattern, as though something large and invisible were walking through it in a tight, patient …" | | 12 | "She watched it, and as she watched, she understood something that made the heat of the pendant feel very far away and very unimportant." | | 13 | "A tall, narrow, upright shape that was darker than the dark around it, and it was standing where a stone should be because it wanted to be mistaken for a stone,…" | | 14 | "It had closed the distance by inches, by patience, by the simple arithmetic of a predator that had all the time in the world and knew that its prey had already …" | | 15 | "She kept her eyes on the shape across the circle, and she pressed her thumbnail deeper into the scar on her wrist, and she breathed in, and she breathed out, an…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |