| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 88.24% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2550 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "utterly" | | 1 | "suddenly" | | 2 | "very" | | 3 | "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) | |
| 56.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2550 | | totalAiIsms | 22 | | found | | | highlights | | 0 | "pulse" | | 1 | "weight" | | 2 | "raced" | | 3 | "footsteps" | | 4 | "scanned" | | 5 | "silence" | | 6 | "warmth" | | 7 | "resolve" | | 8 | "measured" | | 9 | "unravel" | | 10 | "resolved" | | 11 | "flickered" | | 12 | "echo" |
| |
| 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 | 232 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 232 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "tried to" | | 2 | "seem to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 238 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2524 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 2476 | | uniqueNames | 10 | | maxNameDensity | 0.4 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Richmond" | | discoveredNames | | Richmond | 3 | | Heartstone | 6 | | Park | 2 | | November | 3 | | London | 2 | | Silence | 1 | | Voice | 1 | | Aurora | 1 | | Rory | 10 | | Laila | 1 |
| | persons | | 0 | "Heartstone" | | 1 | "Silence" | | 2 | "Voice" | | 3 | "Rory" | | 4 | "Laila" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "November" | | 3 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 148 | | glossingSentenceCount | 9 | | matches | | 0 | "felt like new footsteps trying on an ol" | | 1 | "seemed deeper than before" | | 2 | "Appeared—present suddenly where absence had been, the way a thought surfaces when you’re not looking for it" | | 3 | "felt like pressure" | | 4 | "felt like agreement" | | 5 | "seemed farther apart, then suddenly tight enough she had to twist sideways to pass" | | 6 | "looked like any emptying of undergrowth m" | | 7 | "felt like something measured in longer" | | 8 | "as though reminding her the stones were patient, and nights came round again, and the Heartstone’s quiet was only sleep" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 2524 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 238 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 44.28 | | std | 28.69 | | cv | 0.648 | | sampleLengths | | 0 | 79 | | 1 | 63 | | 2 | 75 | | 3 | 8 | | 4 | 47 | | 5 | 20 | | 6 | 16 | | 7 | 5 | | 8 | 83 | | 9 | 18 | | 10 | 45 | | 11 | 45 | | 12 | 54 | | 13 | 33 | | 14 | 8 | | 15 | 70 | | 16 | 2 | | 17 | 24 | | 18 | 84 | | 19 | 44 | | 20 | 22 | | 21 | 30 | | 22 | 60 | | 23 | 59 | | 24 | 6 | | 25 | 54 | | 26 | 46 | | 27 | 9 | | 28 | 48 | | 29 | 63 | | 30 | 80 | | 31 | 9 | | 32 | 13 | | 33 | 50 | | 34 | 56 | | 35 | 9 | | 36 | 99 | | 37 | 74 | | 38 | 60 | | 39 | 3 | | 40 | 22 | | 41 | 56 | | 42 | 12 | | 43 | 66 | | 44 | 96 | | 45 | 30 | | 46 | 93 | | 47 | 20 | | 48 | 11 | | 49 | 71 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 232 | | matches | | 0 | "been painted" | | 1 | "being dragged" | | 2 | "been ten" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 384 | | matches | | 0 | "were circling" | | 1 | "was doing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 25 | | semicolonCount | 3 | | flaggedSentences | 25 | | totalSentences | 238 | | ratio | 0.105 | | matches | | 0 | "The 270 bus had dropped her at the edge of Richmond nearly an hour ago, and the walk through the park gates had felt ordinary enough at first—gravel crunching under her sneakers, the night air sharp with cold and leaf mulch." | | 1 | "Someone—or something—had given her this thumbnail of crimson stone on a silver chain, and whatever it wanted, it wanted it here." | | 2 | "Between them the wildflowers grew—poppies and tiny white stars, foxglove bells purple-dark and motionless." | | 3 | "Not colder—thicker, somehow, as if it carried weight." | | 4 | "Yet something whispered just outside the reach of language—a soft susurration that might have been grass against grass if the grass had been moving, which it wasn’t." | | 5 | "The pulse answered—and for a second it did not match her own heartbeat." | | 6 | "She could have sworn, for an instant, that a shape had been standing just inside the bole—a suggestion of height and shoulder, then gone." | | 7 | "The ground felt wrong underfoot now; spongy, then suddenly firm, as if the earth decided its own density from moment to moment." | | 8 | "A soft pop sounded to her right—exactly the noise of a wet branch snapping." | | 9 | "In its place came something worse—the slow, wet sound of something heavy being dragged through long grass." | | 10 | "Appeared—present suddenly where absence had been, the way a thought surfaces when you’re not looking for it." | | 11 | "The moonlight did not seem to touch it properly; the edges of the shape blurred as if seen through water or heat." | | 12 | "In its place came nothing—an absence so complete it felt like pressure." | | 13 | "The figure’s head turned—not fully, just a fraction, the way something listens without needing eyes." | | 14 | "Whatever reason had drawn her here—whatever the pendant wanted—this thing had arrived first or followed close behind." | | 15 | "Behind her the soft dragging resumed—faster now, no longer idle." | | 16 | "She vaulted the half-buried root ridge and plunged between two oaks—and the world on the far side was wrong." | | 17 | "The figure stood exactly where she had left it—except its posture had changed." | | 18 | "She lifted the chain over her head on instinct—wanting it farther from her throat, wanting the heat away—and for half a second the pendant swung free at the end of its silver." | | 19 | "The child’s laugh answered—closer this time, almost at her elbow." | | 20 | "The figure was near enough now that the monochrome blur of its edges resolved into textures—cloth that was not cloth, skin that shifted between bark and something wetter." | | 21 | "One pale hand extended, palm still open, fingers too many or too few; she could not make the count stay still long enough to decide." | | 22 | "This time she did not choose a gap—she chose the nearest oak trunk itself and slammed her free shoulder into the seam between wood and air, willing the boundary to take her the way seams sometimes take keys." | | 23 | "Sound rushed back in a single violent flood—wind, distant traffic, the cry of a fox, her own ragged breathing." | | 24 | "Even then, as the cab pulled away from the curb and the trees fell behind glass and distance, she heard it once more—soft, almost fond, layered under the engine and the radio: that same too-young laugh, and beneath it the longer breath speaking her oldest name against the cities hum as though reminding her the stones were patient, and nights came round again, and the Heartstone’s quiet was only sleep." |
| |
| 91.09% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 2511 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 126 | | adverbRatio | 0.05017921146953405 | | lyAdverbCount | 21 | | lyAdverbRatio | 0.008363201911589008 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 238 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 238 | | mean | 10.61 | | std | 9.83 | | cv | 0.927 | | sampleLengths | | 0 | 41 | | 1 | 9 | | 2 | 29 | | 3 | 9 | | 4 | 27 | | 5 | 21 | | 6 | 3 | | 7 | 2 | | 8 | 1 | | 9 | 13 | | 10 | 2 | | 11 | 3 | | 12 | 13 | | 13 | 12 | | 14 | 3 | | 15 | 29 | | 16 | 8 | | 17 | 28 | | 18 | 14 | | 19 | 1 | | 20 | 2 | | 21 | 2 | | 22 | 12 | | 23 | 8 | | 24 | 6 | | 25 | 7 | | 26 | 3 | | 27 | 5 | | 28 | 3 | | 29 | 8 | | 30 | 13 | | 31 | 19 | | 32 | 40 | | 33 | 2 | | 34 | 2 | | 35 | 14 | | 36 | 14 | | 37 | 5 | | 38 | 16 | | 39 | 10 | | 40 | 1 | | 41 | 5 | | 42 | 5 | | 43 | 3 | | 44 | 4 | | 45 | 27 | | 46 | 4 | | 47 | 18 | | 48 | 2 | | 49 | 2 |
| |
| 60.50% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.40336134453781514 | | totalSentences | 238 | | uniqueOpeners | 96 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 10 | | totalSentences | 193 | | matches | | 0 | "Just the faint residual glow" | | 1 | "Only the stripped white of" | | 2 | "Of course no one answered." | | 3 | "Then, very soft, almost kind:" | | 4 | "Exactly over the small crescent" | | 5 | "Instead the trees continued, denser," | | 6 | "Even the peculiar thickness of" | | 7 | "Then a string of syllables" | | 8 | "Nowhere left the circle would" | | 9 | "Somewhere beyond these stones the" |
| | ratio | 0.052 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 49 | | totalSentences | 193 | | matches | | 0 | "She had come because she" | | 1 | "She pocketed it and relyed" | | 2 | "She found the standing stones" | | 3 | "They rose out of the" | | 4 | "It answered with a warmer" | | 5 | "she said under her breath" | | 6 | "Her voice sounded small against" | | 7 | "She stepped between two oaks." | | 8 | "She walked toward the center" | | 9 | "Their perfume was sweet and" | | 10 | "She swallowed and forced her" | | 11 | "She had walked out of" | | 12 | "She reached up and pinched" | | 13 | "It lagged, then raced ahead," | | 14 | "She snapped her head left." | | 15 | "She could have sworn, for" | | 16 | "She advanced another five steps." | | 17 | "She turned so her back" | | 18 | "she said to the watching" | | 19 | "She backed up until the" |
| | ratio | 0.254 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 136 | | totalSentences | 193 | | matches | | 0 | "The 270 bus had dropped" | | 1 | "Rory had pulled her jacket" | | 2 | "The Heartstone rested warm against" | | 3 | "She had come because she" | | 4 | "Someone—or something—had given her this" | | 5 | "The map on her phone" | | 6 | "She pocketed it and relyed" | | 7 | "The path narrowed." | | 8 | "Oak trunks closed in, their" | | 9 | "She found the standing stones" | | 10 | "They rose out of the" | | 11 | "Rory stopped at the boundary" | | 12 | "It answered with a warmer" | | 13 | "she said under her breath" | | 14 | "Her voice sounded small against" | | 15 | "She stepped between two oaks." | | 16 | "The air changed." | | 17 | "The crunch of gravel under" | | 18 | "London itself seemed to have" | | 19 | "She walked toward the center" |
| | ratio | 0.705 | |
| 25.91% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 193 | | matches | | | ratio | 0.005 | |
| 40.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 98 | | technicalSentenceCount | 14 | | matches | | 0 | "Done with the pendant throbbing under her shirt whenever she passed certain doorways, done with the dreams that left her mouth tasting of iron and verdant rot." | | 1 | "Ahead, the clearing opened: a bowl of grass that should not have been that green, ringed by the standing stones, and at its center a single tree older than the …" | | 2 | "Yet something whispered just outside the reach of language—a soft susurration that might have been grass against grass if the grass had been moving, which it wa…" | | 3 | "It lagged, then raced ahead, then settled into a rhythm that felt like new footsteps trying on an old path." | | 4 | "The ground felt wrong underfoot now; spongy, then suddenly firm, as if the earth decided its own density from moment to moment." | | 5 | "The sound came again, behind her this time, then to the left, as if whatever made it were circling just outside the ring of stones and testing the boundary with…" | | 6 | "And under it, layered like rot under moss, a deeper sound began: a long exhalation that did not need lungs, breathing her name in a language that had never touc…" | | 7 | "The figure was near enough now that the monochrome blur of its edges resolved into textures—cloth that was not cloth, skin that shifted between bark and somethi…" | | 8 | "The cold returned to her wrist, climbing this time, a thread of winter crawling up the inside of her arm toward the elbow." | | 9 | "She focused on the scar under the cold, on the childhood bite of stupid metal that had given it to her, on the ordinary stupid world of delivery bags and kitche…" | | 10 | "She sliced left hard, past the reaching hand, boots tearing through wildflowers that decomposed to ash under her weight." | | 11 | "She stumbled out under a moon that wore the ordinary city color of light-polluted silver and fell to one knee in ordinary bracken that smelled only of November …" | | 12 | "Every shadow that pooled under a tree held the afterimage of a pale oval face." | | 13 | "Even then, as the cab pulled away from the curb and the trees fell behind glass and distance, she heard it once more—soft, almost fond, layered under the engine…" |
| |
| 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 | 10 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0 | | effectiveRatio | 0 | |