| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 86.63% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1122 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "quickly" | | 1 | "sharply" | | 2 | "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) | |
| 28.70% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1122 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "crystalline" | | 1 | "chill" | | 2 | "vibrated" | | 3 | "warmth" | | 4 | "pulsed" | | 5 | "mechanical" | | 6 | "silence" | | 7 | "silk" | | 8 | "weight" | | 9 | "pulse" | | 10 | "calculated" | | 11 | "reminder" |
| |
| 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 | 91 | | matches | (empty) | |
| 95.76% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 91 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 91 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 9 | | totalWords | 1107 | | ratio | 0.008 | | matches | | 0 | "wear it, don’t ask, run if it burns." | | 1 | "Rory." |
| |
| 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 | 36 | | wordCount | 1072 | | uniqueNames | 21 | | maxNameDensity | 0.84 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 1 | | Park | 1 | | November | 1 | | London | 2 | | Heartstone | 4 | | Cardiff | 2 | | Evan | 2 | | Grove | 2 | | Earth | 1 | | Fae | 1 | | Isolde | 1 | | Yu-Fei | 1 | | Cheung | 1 | | Golden | 1 | | Empress | 1 | | Hel | 1 | | Rory | 9 | | Eva | 1 | | Carter | 1 | | Irish | 1 | | Welsh | 1 |
| | persons | | 0 | "Heartstone" | | 1 | "Evan" | | 2 | "Isolde" | | 3 | "Yu-Fei" | | 4 | "Cheung" | | 5 | "Empress" | | 6 | "Rory" | | 7 | "Eva" | | 8 | "Carter" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Cardiff" | | 4 | "Hel" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 1 | | matches | | |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 6 | | per1kWords | 5.42 | | wordCount | 1107 | | matches | | 0 | "not by sight but by the sudden, wrong temperature of the air, the way her bre" | | 1 | "not by accident but by strategy" | | 2 | "not spoken, but formed in the rustle of flowers" | | 3 | "not just physical, but existential" | | 4 | "not deeper into the grove but downward, into darkness" | | 5 | "not with a mouth, but with the way the trees bent toward her, the way the standing" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 91 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 35.71 | | std | 30.82 | | cv | 0.863 | | sampleLengths | | 0 | 12 | | 1 | 111 | | 2 | 8 | | 3 | 98 | | 4 | 4 | | 5 | 5 | | 6 | 80 | | 7 | 74 | | 8 | 5 | | 9 | 45 | | 10 | 20 | | 11 | 7 | | 12 | 65 | | 13 | 50 | | 14 | 37 | | 15 | 6 | | 16 | 55 | | 17 | 5 | | 18 | 86 | | 19 | 22 | | 20 | 56 | | 21 | 11 | | 22 | 22 | | 23 | 21 | | 24 | 2 | | 25 | 61 | | 26 | 37 | | 27 | 41 | | 28 | 48 | | 29 | 3 | | 30 | 10 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 91 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 179 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 91 | | ratio | 0.143 | | matches | | 0 | "The mist had swallowed the lit paths behind her, leaving only the dark bulk of ancient oaks that should have been bare in late November but weren’t—though that wrongness came later." | | 1 | "They bloomed everywhere, reckless and impossible—bluebells and foxgloves and things with white petals that glowed faintly in the dark, carpeting the clearing in colors that had no business existing after the first frost." | | 2 | "Not hidden—gone." | | 3 | "Her phone, dead since crossing the boundary, showed a timestamp from an hour ago, but her watch—mechanical, her mother’s—ticked backward, then forward, then stopped entirely." | | 4 | "Then the absence of sound—no distant traffic, no aircraft, no wind." | | 5 | "The shapes were wrong—too tall, too thin, swaying between the standing stones with a grace that suggested joints bending backward." | | 6 | "Her delivery jacket—borrowed from Yu-Fei Cheung’s Golden Empress, smelling faintly of ginger and sesame—felt suddenly thin." | | 7 | "She heard her name—not spoken, but formed in the rustle of flowers." | | 8 | "And in that watching, Rory felt the full weight of her isolation—not just physical, but existential." | | 9 | "But Rory Carter—born in Cardiff, daughter of an Irish barrister and a Welsh teacher, survivor of Evan’s hands—stood her ground." | | 10 | "Then the sound came—bones clicking, not loud, a leisurely rhythm like someone counting." | | 11 | "It had not moved, but it smiled—not with a mouth, but with the way the trees bent toward her, the way the standing stones seemed to lean closer, sealing the boundary." | | 12 | "She took one step toward the dark path, not because she was fearless, but because she was Rory—she faced the wrongness head-on, cataloguing every detail, every wrong sound, every movement at the edge of her vision—knowing that to understand the horror was the only way to survive it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 171 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 1 | | adverbRatio | 0.005847953216374269 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.005847953216374269 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 91 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 91 | | mean | 12.16 | | std | 10.77 | | cv | 0.885 | | sampleLengths | | 0 | 12 | | 1 | 31 | | 2 | 4 | | 3 | 33 | | 4 | 43 | | 5 | 8 | | 6 | 35 | | 7 | 30 | | 8 | 2 | | 9 | 2 | | 10 | 29 | | 11 | 4 | | 12 | 5 | | 13 | 5 | | 14 | 33 | | 15 | 8 | | 16 | 4 | | 17 | 4 | | 18 | 2 | | 19 | 24 | | 20 | 4 | | 21 | 4 | | 22 | 25 | | 23 | 9 | | 24 | 1 | | 25 | 1 | | 26 | 1 | | 27 | 23 | | 28 | 4 | | 29 | 2 | | 30 | 5 | | 31 | 16 | | 32 | 11 | | 33 | 18 | | 34 | 20 | | 35 | 7 | | 36 | 2 | | 37 | 20 | | 38 | 13 | | 39 | 4 | | 40 | 4 | | 41 | 22 | | 42 | 4 | | 43 | 5 | | 44 | 16 | | 45 | 7 | | 46 | 18 | | 47 | 2 | | 48 | 17 | | 49 | 11 |
| |
| 39.93% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.31868131868131866 | | totalSentences | 91 | | uniqueOpeners | 29 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 76 | | matches | | 0 | "Then the absence of sound—no" | | 1 | "Only her own blood in" | | 2 | "Of course it stopped." | | 3 | "Then she saw the figure." | | 4 | "Then the sound came—bones clicking," |
| | ratio | 0.066 | |
| 72.63% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 76 | | matches | | 0 | "She recognized them not by" | | 1 | "She had come because the" | | 2 | "They bloomed everywhere, reckless and" | | 3 | "She looked back once." | | 4 | "She knew that now." | | 5 | "Her phone, dead since crossing" | | 6 | "She had told herself she" | | 7 | "She was cool-headed, intelligent, the" | | 8 | "She did not panic." | | 9 | "She moved deeper into the" | | 10 | "She turned her head sharply," | | 11 | "She forced it to be." | | 12 | "Her delivery jacket—borrowed from Yu-Fei" | | 13 | "She touched the pendant through" | | 14 | "She was not lost." | | 15 | "She was bait." | | 16 | "She heard her name—not spoken," | | 17 | "She did not answer." | | 18 | "She walked forward, each step" | | 19 | "It stood between two oaks" |
| | ratio | 0.368 | |
| 65.26% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 76 | | matches | | 0 | "Rory found the boundary where" | | 1 | "The mist had swallowed the" | | 2 | "She recognized them not by" | | 3 | "The standing stones rose from" | | 4 | "She had come because the" | | 5 | "A faint inner glow, like" | | 6 | "Rory stepped between the stones." | | 7 | "The wildflowers hit her first." | | 8 | "They bloomed everywhere, reckless and" | | 9 | "The air smelled of honey" | | 10 | "She looked back once." | | 11 | "The path was gone." | | 12 | "The stones stood closer together" | | 13 | "Time moved differently here." | | 14 | "She knew that now." | | 15 | "Her phone, dead since crossing" | | 16 | "She had told herself she" | | 17 | "She was cool-headed, intelligent, the" | | 18 | "She did not panic." | | 19 | "The sound came first: water" |
| | ratio | 0.789 | |
| 65.79% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 76 | | matches | | | ratio | 0.013 | |
| 20.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 7 | | matches | | 0 | "The mist had swallowed the lit paths behind her, leaving only the dark bulk of ancient oaks that should have been bare in late November but weren’t—though that …" | | 1 | "She recognized them not by sight but by the sudden, wrong temperature of the air, the way her breath turned visible in a sharp, crystalline exhale that didn’t b…" | | 2 | "They bloomed everywhere, reckless and impossible—bluebells and foxgloves and things with white petals that glowed faintly in the dark, carpeting the clearing in…" | | 3 | "The stones stood closer together than she remembered, their oak surfaces slick with something that might have been rain or might have been older." | | 4 | "She was cool-headed, intelligent, the kind of woman who fled Cardiff and an abusive ex named Evan not by accident but by strategy." | | 5 | "No law books, no delivery routes, no human sound for miles that weren’t miles." | | 6 | "Nothing was there, but the wildflowers had parted, leaving a narrow path that led not deeper into the grove but downward, into darkness that smelled of earth an…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, and her voice was steady, low, dangerous" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |