| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 79.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1667 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "very" | | 1 | "slowly" | | 2 | "gently" |
| |
| 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) | |
| 73.01% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1667 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "weight" | | 1 | "pulse" | | 2 | "could feel" | | 3 | "warmth" | | 4 | "pulsed" | | 5 | "crystal" | | 6 | "trembled" |
| |
| 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 | 134 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 134 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "tended to" | | 2 | "began to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 136 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 10 | | markdownWords | 27 | | totalWords | 1684 | | ratio | 0.016 | | matches | | 0 | "Come to the stones after dark. Come alone. You'll know the place." | | 1 | "year" | | 2 | "stopped" | | 3 | "her" | | 4 | "Jerked" | | 5 | "openings" | | 6 | "you'll need this" | | 7 | "in" | | 8 | "Laila." | | 9 | "not yet, not this door." |
| |
| 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 | 25 | | wordCount | 1665 | | uniqueNames | 10 | | maxNameDensity | 0.54 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 3 | | Park | 1 | | Rory | 9 | | Heartstone | 2 | | February | 2 | | Cardiff | 2 | | Eva | 3 | | Soho | 1 | | Sundays | 1 | | Welsh | 1 |
| | persons | | 0 | "Rory" | | 1 | "Heartstone" | | 2 | "Eva" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Cardiff" | | 3 | "Soho" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1684 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 136 | | matches | | 0 | "understood that the" | | 1 | "figured that much" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 49 | | mean | 34.37 | | std | 34.01 | | cv | 0.99 | | sampleLengths | | 0 | 17 | | 1 | 92 | | 2 | 8 | | 3 | 39 | | 4 | 14 | | 5 | 4 | | 6 | 88 | | 7 | 58 | | 8 | 1 | | 9 | 21 | | 10 | 118 | | 11 | 6 | | 12 | 66 | | 13 | 7 | | 14 | 41 | | 15 | 11 | | 16 | 48 | | 17 | 7 | | 18 | 21 | | 19 | 3 | | 20 | 99 | | 21 | 4 | | 22 | 11 | | 23 | 37 | | 24 | 6 | | 25 | 94 | | 26 | 3 | | 27 | 117 | | 28 | 10 | | 29 | 100 | | 30 | 12 | | 31 | 53 | | 32 | 5 | | 33 | 76 | | 34 | 17 | | 35 | 49 | | 36 | 12 | | 37 | 38 | | 38 | 2 | | 39 | 1 | | 40 | 24 | | 41 | 61 | | 42 | 5 | | 43 | 51 | | 44 | 3 | | 45 | 62 | | 46 | 36 | | 47 | 8 | | 48 | 18 |
| |
| 97.41% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 134 | | matches | | 0 | "been locked" | | 1 | "being managed" | | 2 | "was attached" |
| |
| 77.45% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 272 | | matches | | 0 | "was matching" | | 1 | "was beating" | | 2 | "was opening" | | 3 | "was coming" | | 4 | "was pulling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 136 | | ratio | 0.103 | | matches | | 0 | "She'd dreamed of it twice this month — the oak stones, the flowers — and woken both times with the taste of copper in her mouth and the pendant warm against her sternum." | | 1 | "It was the wrong *year* for wildflowers — February, damp and mean, the kind of cold that got into the seams of your clothes." | | 2 | "Oak, the note had said, and she'd believed it — they had the grain and weight of wood, wood gone grey and hard as iron with age." | | 3 | "The plan — if you could call it a plan — was to wait." | | 4 | "That was instinct, not bravery — the old animal knowledge that looking directly at a thing sometimes invited it." | | 5 | "The tree line stood black and even, and the night was quiet except for the ordinary sounds — wind, distant traffic, a fox's short scream somewhere off toward the park road that made her shoulders jump anyway." | | 6 | "Very faint, very far off, in a register that sat wrong in her ears — too low and too sweet at once, like a voice heard through water." | | 7 | "The codex of her own fear told her what the warmth meant — she'd figured that much out herself, these past weeks, in the small hours above Silas' bar with the pendant glowing on her kitchen table." | | 8 | "She'd come for an answer — about the pendant, about who had given it to her, about why a stranger had pressed it into her hand on a Soho pavement and said *you'll need this* with an expression she still couldn't forget." | | 9 | "And on the other side of the seam, where there should have been more of the park, more night, more black trees — there was a path." | | 10 | "It was too thin in the wrong places, too long in others, and it was turned three-quarters away from her as though it had been waiting so long it had gotten bored — and as she watched, it began, very slowly, to turn its head." | | 11 | "And then — clear as a voice in the next room, in an accent she knew from childhood Sundays and her grandmother's kitchen, in a voice that had been dead for eleven years — it said her name." | | 12 | "The figure raised one long arm, slow as a tree growing, and beckoned — and she hated it, hated every cell of her body for it, but the pull she felt now had nothing to do with the stone." | | 13 | "She walked backward through the flowers, through the watching dark, pendant clutched bleeding-tight in her fist, and the singing followed her but the seam did not widen, and the figure stood on its green path with its head finally, fully turned toward her — and it had no face, only the shape of listening." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 889 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.03262092238470191 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.0044994375703037125 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 136 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 136 | | mean | 12.38 | | std | 12.94 | | cv | 1.045 | | sampleLengths | | 0 | 17 | | 1 | 33 | | 2 | 6 | | 3 | 6 | | 4 | 2 | | 5 | 8 | | 6 | 4 | | 7 | 33 | | 8 | 5 | | 9 | 2 | | 10 | 1 | | 11 | 14 | | 12 | 19 | | 13 | 3 | | 14 | 3 | | 15 | 8 | | 16 | 3 | | 17 | 3 | | 18 | 4 | | 19 | 7 | | 20 | 24 | | 21 | 7 | | 22 | 34 | | 23 | 5 | | 24 | 1 | | 25 | 10 | | 26 | 9 | | 27 | 27 | | 28 | 3 | | 29 | 19 | | 30 | 1 | | 31 | 5 | | 32 | 12 | | 33 | 4 | | 34 | 14 | | 35 | 44 | | 36 | 5 | | 37 | 6 | | 38 | 2 | | 39 | 47 | | 40 | 6 | | 41 | 5 | | 42 | 19 | | 43 | 35 | | 44 | 4 | | 45 | 3 | | 46 | 7 | | 47 | 2 | | 48 | 2 | | 49 | 37 |
| |
| 52.94% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.39705882352941174 | | totalSentences | 136 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 114 | | matches | | 0 | "Even her own." | | 1 | "Very faint, very far off," | | 2 | "Maybe longer than that." | | 3 | "Then she saw the figure." | | 4 | "Then she felt it: warmth" |
| | ratio | 0.044 | |
| 76.14% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 114 | | matches | | 0 | "She stood at the edge" | | 1 | "You'll know the place.* She'd" | | 2 | "She'd dreamed of it twice" | | 3 | "She lifted it away from" | | 4 | "she said, to hear a" | | 5 | "It was the wrong season" | | 6 | "It was the wrong *year*" | | 7 | "She could see them in" | | 8 | "She crouched and touched one." | | 9 | "She counted twice, because the" | | 10 | "Her phone had no signal." | | 11 | "It also said 11:47, which" | | 12 | "She put it away." | | 13 | "She didn't turn her head." | | 14 | "She let her eyes stay" | | 15 | "Her breath smoked." | | 16 | "she said, because cool-headed was" | | 17 | "It didn't fade." | | 18 | "It *stopped*, mid-gust, the way" | | 19 | "She couldn't make out words." |
| | ratio | 0.36 | |
| 82.81% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 86 | | totalSentences | 114 | | matches | | 0 | "The gate at Richmond Park" | | 1 | "She stood at the edge" | | 2 | "That the note had been" | | 3 | "You'll know the place.* She'd" | | 4 | "That was the problem." | | 5 | "She'd dreamed of it twice" | | 6 | "The Heartstone hung hot now." | | 7 | "She lifted it away from" | | 8 | "The crimson stone had its" | | 9 | "she said, to hear a" | | 10 | "The clearing didn't answer." | | 11 | "It was the wrong season" | | 12 | "It was the wrong *year*" | | 13 | "She could see them in" | | 14 | "She crouched and touched one." | | 15 | "The standing stones ringed the" | | 16 | "Oak, the note had said," | | 17 | "She counted twice, because the" | | 18 | "Her phone had no signal." | | 19 | "It also said 11:47, which" |
| | ratio | 0.754 | |
| 87.72% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 114 | | matches | | 0 | "Whoever had left the note" | | 1 | "If she'd glanced away she" |
| | ratio | 0.018 | |
| 40.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 49 | | technicalSentenceCount | 7 | | matches | | 0 | "That was instinct, not bravery — the old animal knowledge that looking directly at a thing sometimes invited it." | | 1 | "The tree line stood black and even, and the night was quiet except for the ordinary sounds — wind, distant traffic, a fox's short scream somewhere off toward th…" | | 2 | "Very faint, very far off, in a register that sat wrong in her ears — too low and too sweet at once, like a voice heard through water." | | 3 | "Whatever was on the other side of that seam was pulling at the stone, and the stone was around her neck, and for one crystal moment of terror she felt the arith…" | | 4 | "It was too thin in the wrong places, too long in others, and it was turned three-quarters away from her as though it had been waiting so long it had gotten bore…" | | 5 | "And then — clear as a voice in the next room, in an accent she knew from childhood Sundays and her grandmother's kitchen, in a voice that had been dead for elev…" | | 6 | "Then she felt it: warmth at her left wrist, sharp and specific, the small crescent scar going hot as if a hand had closed gently around it." |
| |
| 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 | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |