| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.444 | | leniency | 0.889 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.19% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1468 | | totalAiIsmAdverbs | 2 | | 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) | |
| 55.72% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1468 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "depths" | | 1 | "warmth" | | 2 | "pulsed" | | 3 | "silence" | | 4 | "rhythmic" | | 5 | "weight" | | 6 | "could feel" | | 7 | "pulse" |
| |
| 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 | 117 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 117 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 122 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 73 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1485 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 1449 | | uniqueNames | 11 | | maxNameDensity | 0.62 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Golden | 1 | | Empress | 1 | | Rory | 9 | | Richmond | 1 | | Park | 1 | | Eva | 2 | | Cardiff | 2 | | Silas | 1 | | London | 1 | | October | 1 | | Laila | 2 |
| | persons | | 0 | "Empress" | | 1 | "Rory" | | 2 | "Eva" | | 3 | "Silas" | | 4 | "Laila" |
| | places | | 0 | "Golden" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "Cardiff" | | 4 | "London" | | 5 | "October" |
| | globalScore | 1 | | windowScore | 1 | |
| 45.83% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 72 | | glossingSentenceCount | 3 | | matches | | 0 | "something like running water, though she cou" | | 1 | "looked like twenty metres across" | | 2 | "felt like a stranger's hand wearing her" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.673 | | wordCount | 1485 | | matches | | 0 | "not bringing anyone, but Eva was home in Cardiff" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 122 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 38.08 | | std | 29.7 | | cv | 0.78 | | sampleLengths | | 0 | 7 | | 1 | 95 | | 2 | 11 | | 3 | 39 | | 4 | 10 | | 5 | 59 | | 6 | 49 | | 7 | 5 | | 8 | 85 | | 9 | 14 | | 10 | 89 | | 11 | 12 | | 12 | 18 | | 13 | 80 | | 14 | 94 | | 15 | 40 | | 16 | 3 | | 17 | 48 | | 18 | 4 | | 19 | 71 | | 20 | 36 | | 21 | 4 | | 22 | 75 | | 23 | 5 | | 24 | 39 | | 25 | 21 | | 26 | 29 | | 27 | 15 | | 28 | 51 | | 29 | 30 | | 30 | 63 | | 31 | 1 | | 32 | 48 | | 33 | 2 | | 34 | 42 | | 35 | 4 | | 36 | 70 | | 37 | 37 | | 38 | 80 |
| |
| 96.27% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 117 | | matches | | 0 | "been given" | | 1 | "been gone" | | 2 | "were gone" | | 3 | "been buried" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 237 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 122 | | ratio | 0.115 | | matches | | 0 | "She'd pulled it free of her collar in the alley behind the restaurant and watched the crimson depths glow — not reflecting anything, glowing from within, like a coal banked under ash." | | 1 | "Between two of them gaped a dark that her phone torch couldn't touch — the beam just stopped, swallowed, as if the clearing beyond weren't empty but absent." | | 2 | "Her ears popped, and the night got louder — crickets, a whole orchestra of them, though crickets didn't sing in London in October, and underneath them something like running water, though she couldn't place it." | | 3 | "Now, walking in, the far treeline stayed the same distance away no matter how many steps she took, and then — abruptly, between one stride and the next — it wasn't." | | 4 | "The standing stones behind her — she could still see them, could still see the smudge of the park beyond, the distant orange glow of the city." | | 5 | "Because it had been given to her by a stranger who'd pressed it into her hand in a doorway and been gone before she'd looked up, and because it pulsed near things — near doorways that shouldn't exist, near mirrors at odd hours, and now near this." | | 6 | "Then her eyes adjusted, and it was a tree stump — no, a standing stone, smaller than the boundary ones, carved or weathered into something vaguely human." | | 7 | "She registered the silence the way you register a hand around your wrist — all at once, already held." | | 8 | "The standing stones at the boundary —" | | 9 | "The boundary, the gap she'd come through, the orange city glow — gone." | | 10 | "Then, from very close — from the exact distance the stone figure had stood at — a voice answered." | | 11 | "It had crossed the dell without a sound, and its head was fully raised now, and where the lichen had mapped continents there were features — shallow, weathered, wrong, but features." | | 12 | "Not metaphorically — the stems wrapped her ankle, cool and strong as fingers, and she wrenched free with a sound she'd be embarrassed about later, if there was a later, stumbling back until her shoulder blades hit oak." | | 13 | "Each pulse showed it nearer, head tilting, smile widening past anything a face should hold, and Rory's back pressed harder against the tree and the bark behind her was warm, warm as skin, warm as something that had only just started pretending to be a tree, and from the branches above came a soft, delighted exhale, as if the whole grove had been holding its breath for hours — and now didn't have to." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1439 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 48 | | adverbRatio | 0.03335649756775538 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.004864489228630994 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 122 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 122 | | mean | 12.17 | | std | 12.16 | | cv | 0.999 | | sampleLengths | | 0 | 7 | | 1 | 33 | | 2 | 32 | | 3 | 30 | | 4 | 2 | | 5 | 9 | | 6 | 39 | | 7 | 5 | | 8 | 5 | | 9 | 17 | | 10 | 28 | | 11 | 6 | | 12 | 8 | | 13 | 6 | | 14 | 6 | | 15 | 37 | | 16 | 5 | | 17 | 4 | | 18 | 35 | | 19 | 12 | | 20 | 13 | | 21 | 21 | | 22 | 4 | | 23 | 4 | | 24 | 2 | | 25 | 4 | | 26 | 8 | | 27 | 10 | | 28 | 31 | | 29 | 5 | | 30 | 16 | | 31 | 19 | | 32 | 4 | | 33 | 8 | | 34 | 5 | | 35 | 13 | | 36 | 2 | | 37 | 28 | | 38 | 6 | | 39 | 27 | | 40 | 1 | | 41 | 2 | | 42 | 3 | | 43 | 11 | | 44 | 6 | | 45 | 47 | | 46 | 29 | | 47 | 7 | | 48 | 5 | | 49 | 3 |
| |
| 46.45% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 20 | | diversityRatio | 0.3770491803278688 | | totalSentences | 122 | | uniqueOpeners | 46 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 102 | | matches | | 0 | "Then her eyes adjusted, and" | | 1 | "Just the head." | | 2 | "Just a fraction." | | 3 | "Then, from very close —" |
| | ratio | 0.039 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 102 | | matches | | 0 | "She'd pulled it free of" | | 1 | "she said to nobody" | | 2 | "She stepped between the stones." | | 3 | "Her ears popped, and the" | | 4 | "She checked her phone." | | 5 | "She stood at the centre." | | 6 | "She winced at herself" | | 7 | "She turned in a slow" | | 8 | "She wasn't stupid." | | 9 | "She mapped it, fixed it" | | 10 | "She'd come because of the" | | 11 | "She needed to know what" | | 12 | "She hadn't seen the slope" | | 13 | "It fell away into a" | | 14 | "She laughed once, short and" | | 15 | "She made herself walk down" | | 16 | "She didn't look at it" | | 17 | "She looked at it out" | | 18 | "She registered the silence the" | | 19 | "Her own breath roared in" |
| | ratio | 0.265 | |
| 72.75% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 79 | | totalSentences | 102 | | matches | | 0 | "The pendant had been warm" | | 1 | "Rory noticed it first at" | | 2 | "She'd pulled it free of" | | 3 | "Yu-Fei had called out asking" | | 4 | "she said to nobody" | | 5 | "The stones stood taller than" | | 6 | "The pendant thrummed against her" | | 7 | "Someone had given her this" | | 8 | "Someone wanted her to find" | | 9 | "Eva's voice in her head" | | 10 | "She stepped between the stones." | | 11 | "The air changed pressure." | | 12 | "Her ears popped, and the" | | 13 | "The clearing opened ahead, ringed" | | 14 | "Time felt wrong already." | | 15 | "She checked her phone." | | 16 | "The clock read 23:47." | | 17 | "The clearing stretched wider than" | | 18 | "She stood at the centre." | | 19 | "The grass was soft underfoot," |
| | ratio | 0.775 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 102 | | matches | | 0 | "Now, walking in, the far" | | 1 | "Because it had been given" | | 2 | "Because for four months, impossible" |
| | ratio | 0.029 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 9 | | matches | | 0 | "Between two of them gaped a dark that her phone torch couldn't touch — the beam just stopped, swallowed, as if the clearing beyond weren't empty but absent." | | 1 | "Flowers, in every direction, blooming out of season in a cold snap that had killed half the geraniums on her windowsill." | | 2 | "The grass was soft underfoot, springy, warm, as though the earth below held some buried furnace." | | 3 | "The crickets did, or something using their voices did, a rising and falling chorus that hit a rhythm and held it, too regular, a heartbeat of their own." | | 4 | "Because it had been given to her by a stranger who'd pressed it into her hand in a doorway and been gone before she'd looked up, and because it pulsed near thin…" | | 5 | "She looked at it out of the corner of her eye, which was worse, because out of the corner of her eye it swayed, patient and slight, like something underwater." | | 6 | "Nobody had called her Laila since she was six years old, since her mother's mother had died, since the name had been buried in Cardiff with a woman who smelled …" | | 7 | "The pendant pulsed once, enormous, a heartbeat that shook her ribs, and its red light flooded the dell." | | 8 | "Each pulse showed it nearer, head tilting, smile widening past anything a face should hold, and Rory's back pressed harder against the tree and the bark behind …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |