| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 76.44% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1910 | | totalAiIsmAdverbs | 9 | | found | | 0 | | | 1 | | | 2 | | adverb | "ever so slightly" | | count | 1 |
| | 3 | | | 4 | | | 5 | | adverb | "deliberately" | | count | 1 |
| | 6 | | | 7 | | | 8 | |
| | highlights | | 0 | "tightly" | | 1 | "completely" | | 2 | "ever so slightly" | | 3 | "utterly" | | 4 | "slowly" | | 5 | "deliberately" | | 6 | "gently" | | 7 | "very" | | 8 | "suddenly" |
| |
| 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) | |
| 52.88% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1910 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "pulse" | | 1 | "perfect" | | 2 | "warmth" | | 3 | "sentinel" | | 4 | "comforting" | | 5 | "shimmered" | | 6 | "calculated" | | 7 | "footsteps" | | 8 | "silence" | | 9 | "stomach" | | 10 | "resolved" | | 11 | "anticipation" | | 12 | "throb" |
| |
| 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 | 180 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 5 | | narrationSentences | 180 | | 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 | 183 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 43 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1900 | | 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 | 32 | | wordCount | 1880 | | uniqueNames | 16 | | maxNameDensity | 0.59 | | worstName | "Aurora" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Aurora" | | discoveredNames | | Carter | 2 | | Park | 1 | | Eva | 1 | | Heartstone | 1 | | Pendant | 1 | | Cardiff | 3 | | Evan | 2 | | October | 1 | | Pre-Law | 1 | | London | 1 | | Heathrow | 1 | | Roman | 1 | | Whitechapel | 1 | | God | 1 | | Aurora | 11 | | Certainty | 3 |
| | persons | | 0 | "Carter" | | 1 | "Eva" | | 2 | "Pendant" | | 3 | "Evan" | | 4 | "Aurora" |
| | places | | 0 | "Park" | | 1 | "Cardiff" | | 2 | "October" | | 3 | "London" | | 4 | "Roman" | | 5 | "Whitechapel" | | 6 | "Certainty" |
| | globalScore | 1 | | windowScore | 1 | |
| 65.25% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 118 | | glossingSentenceCount | 4 | | matches | | 0 | "felt like the box had been flipped over" | | 1 | "sounded like someone else entirely—higher" | | 2 | "sounded like that in ten years" | | 3 | "not-quite her fingers, the glow died" |
| |
| 94.74% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.053 | | wordCount | 1900 | | matches | | 0 | "Not the faint inner light she had grown used to, but a deep, arterial crimson" | | 1 | "no longer a heartbeat but" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 183 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 46.34 | | std | 26.8 | | cv | 0.578 | | sampleLengths | | 0 | 84 | | 1 | 90 | | 2 | 87 | | 3 | 54 | | 4 | 3 | | 5 | 73 | | 6 | 55 | | 7 | 44 | | 8 | 70 | | 9 | 3 | | 10 | 50 | | 11 | 6 | | 12 | 75 | | 13 | 81 | | 14 | 56 | | 15 | 4 | | 16 | 67 | | 17 | 67 | | 18 | 21 | | 19 | 70 | | 20 | 3 | | 21 | 53 | | 22 | 44 | | 23 | 45 | | 24 | 56 | | 25 | 14 | | 26 | 48 | | 27 | 71 | | 28 | 69 | | 29 | 74 | | 30 | 10 | | 31 | 76 | | 32 | 15 | | 33 | 10 | | 34 | 19 | | 35 | 54 | | 36 | 30 | | 37 | 39 | | 38 | 53 | | 39 | 43 | | 40 | 14 |
| |
| 99.42% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 180 | | matches | | 0 | "been switched" | | 1 | "was carved" | | 2 | "been flipped" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 325 | | matches | | 0 | "was pushing" | | 1 | "was being" | | 2 | "were blooming" | | 3 | "were matching" |
| |
| 17.95% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 2 | | flaggedSentences | 8 | | totalSentences | 183 | | ratio | 0.044 | | matches | | 0 | "Richmond Park had been easy enough to slip into after hours; a loose panel in the fence near the bridle path, the same one Eva had shown her weeks ago when they’d been half-drunk and chasing urban legends." | | 1 | "She had fled Cardiff because she recognized patterns—Evan’s silences lengthening, his hands closing too tightly—and she had no intention of letting another mystery tighten around her throat." | | 2 | "Standing stones—too regular to be natural—stood between them, shoulder-high and furred with moss that glowed faintly silver under starlight." | | 3 | "The sound of her voice—low, Cardiff edges still clinging to the vowels—should have been comforting." | | 4 | "She was cool-headed; she reminded herself of this fact the way other people recited phone numbers in emergencies." | | 5 | "The words left her mouth and kept moving, stretching, warping until they sounded like someone else entirely—higher, younger, the voice of the girl who had once hidden in her Cardiff bedroom while her father shouted downstairs." | | 6 | "She could see movement now at the absolute edge of her vision—shapes that resolved into shoulders, the line of a jaw, the suggestion of long hair that might have been black like hers—only to vanish when she snapped her head around." | | 7 | "But the face—God, the face was wrong." |
| |
| 73.41% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1907 | | adjectiveStacks | 3 | | stackExamples | | 0 | "lay cold against her" | | 1 | "quiet pressed against her" | | 2 | "Same straight black hair" |
| | adverbCount | 95 | | adverbRatio | 0.04981646565285789 | | lyAdverbCount | 33 | | lyAdverbRatio | 0.0173046670162559 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 183 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 183 | | mean | 10.38 | | std | 8.03 | | cv | 0.773 | | sampleLengths | | 0 | 24 | | 1 | 38 | | 2 | 14 | | 3 | 8 | | 4 | 10 | | 5 | 20 | | 6 | 25 | | 7 | 8 | | 8 | 27 | | 9 | 6 | | 10 | 33 | | 11 | 19 | | 12 | 15 | | 13 | 14 | | 14 | 5 | | 15 | 7 | | 16 | 24 | | 17 | 6 | | 18 | 10 | | 19 | 2 | | 20 | 3 | | 21 | 3 | | 22 | 1 | | 23 | 1 | | 24 | 13 | | 25 | 29 | | 26 | 7 | | 27 | 2 | | 28 | 2 | | 29 | 15 | | 30 | 6 | | 31 | 2 | | 32 | 8 | | 33 | 2 | | 34 | 13 | | 35 | 12 | | 36 | 12 | | 37 | 4 | | 38 | 15 | | 39 | 4 | | 40 | 21 | | 41 | 7 | | 42 | 13 | | 43 | 15 | | 44 | 12 | | 45 | 5 | | 46 | 18 | | 47 | 3 | | 48 | 4 | | 49 | 21 |
| |
| 38.25% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 25 | | diversityRatio | 0.3114754098360656 | | totalSentences | 183 | | uniqueOpeners | 57 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 9 | | totalSentences | 163 | | matches | | 0 | "Only the faint metallic taste" | | 1 | "Even the distant Heathrow flight" | | 2 | "Instead it felt borrowed." | | 3 | "More like the memory of" | | 4 | "Then a third, softer, circling." | | 5 | "Barely louder than her own" | | 6 | "Only the flowers, their faces" | | 7 | "Then the distinct sound of" | | 8 | "Sometimes the only way out" |
| | ratio | 0.055 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 46 | | totalSentences | 163 | | matches | | 0 | "She had come because the" | | 1 | "She had fled Cardiff because" | | 2 | "Their scent was thick, almost" | | 3 | "She exhaled, watching the breath" | | 4 | "She rubbed the crescent scar" | | 5 | "She turned in a slow" | | 6 | "She walked toward the nearest" | | 7 | "They seemed to twist a" | | 8 | "She reached out, then stopped." | | 9 | "She planted her feet." | | 10 | "It came from everywhere and" | | 11 | "She swept the torch back" | | 12 | "Their stems did not even" | | 13 | "She was cool-headed; she reminded" | | 14 | "She catalogued what she knew:" | | 15 | "She needed more data." | | 16 | "She moved to the center" | | 17 | "It was warm." | | 18 | "She snatched her hand back." | | 19 | "She held her breath, listening" |
| | ratio | 0.282 | |
| 64.29% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 129 | | totalSentences | 163 | | matches | | 0 | "Aurora Carter stepped through the" | | 1 | "Richmond Park had been easy" | | 2 | "The Heartstone Pendant lay cold" | | 3 | "That worried her more than" | | 4 | "She had come because the" | | 5 | "Each night for a week" | | 6 | "Tonight it had gone silent" | | 7 | "Aurora was not the sort" | | 8 | "She had fled Cardiff because" | | 9 | "The trees gave way without" | | 10 | "Wildflowers carpeted the grass: bluebells," | | 11 | "Their scent was thick, almost" | | 12 | "Aurora switched off the torch." | | 13 | "The darkness rushed in, but" | | 14 | "The flowers themselves seemed to" | | 15 | "She exhaled, watching the breath" | | 16 | "The air was warmer here" | | 17 | "Something felt off." | | 18 | "The way a painting looks" | | 19 | "She rubbed the crescent scar" |
| | ratio | 0.791 | |
| 30.67% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 163 | | matches | | 0 | "As though the clearing had" |
| | ratio | 0.006 | |
| 12.20% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 82 | | technicalSentenceCount | 15 | | matches | | 0 | "She had fled Cardiff because she recognized patterns—Evan’s silences lengthening, his hands closing too tightly—and she had no intention of letting another myst…" | | 1 | "Standing stones—too regular to be natural—stood between them, shoulder-high and furred with moss that glowed faintly silver under starlight." | | 2 | "Wildflowers carpeted the grass: bluebells, foxgloves, moon-white harebells that had no business blooming in October." | | 3 | "She rubbed the crescent scar on her left wrist with her thumb, an old habit from courtroom nerves that had followed her from Pre-Law tutorials to London deliver…" | | 4 | "Only the faint metallic taste on her tongue that arrived when she was being watched." | | 5 | "A small, sudden tug as if someone on the other side of the chain had given it a single, testing pull." | | 6 | "The grass there was shorter, as though something large and heavy often rested in this exact spot." | | 7 | "And they were matching her rhythm, stepping when she stepped, stopping when she stopped." | | 8 | "Those were the words people used when they described her, usually after she had done something that looked reckless but had been, in fact, calculated three move…" | | 9 | "Not the faint inner light she had grown used to, but a deep, arterial crimson that leaked between her fingers and painted the grass the color of old blood." | | 10 | "The words left her mouth and kept moving, stretching, warping until they sounded like someone else entirely—higher, younger, the voice of the girl who had once …" | | 11 | "She could see movement now at the absolute edge of her vision—shapes that resolved into shoulders, the line of a jaw, the suggestion of long hair that might hav…" | | 12 | "Certainty was the pendant now blazing so brightly it hurt to look at, its chain cutting into the back of her neck like a garrote made of moonlight." | | 13 | "Their stems bent at impossible angles, petals quivering with something that looked horribly like anticipation." | | 14 | "And somewhere in the pocket between realms, time folded over on itself, an hour becoming a minute becoming a lifetime, while the thing that wore Aurora Carter’s…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 1 | | effectiveRatio | 0.5 | |