| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 850 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 82.35% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 850 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "footsteps" | | 1 | "hulking" | | 2 | "rhythmic" |
| |
| 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 | 81 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 81 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 82 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 80 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 18 | | totalWords | 854 | | ratio | 0.021 | | matches | | 0 | "The Grove remembers you. Come alone. Come at night." | | 1 | "The Grove remembers you." | | 2 | "We22 remember22.22 We22 will22 wait22.22" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 1 | | matches | | 0 | "A trick of the wind, she told herself22." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 8 | | wordCount | 842 | | uniqueNames | 4 | | maxNameDensity | 0.59 | | worstName | "Grove" | | maxWindowNameDensity | 1 | | worstWindowName | "Grove" | | discoveredNames | | | persons | (empty) | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Grove" | | 3 | "Fae" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 854 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 82 | | matches | (empty) | |
| 69.53% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 20 | | mean | 42.7 | | std | 16.8 | | cv | 0.393 | | sampleLengths | | 0 | 57 | | 1 | 42 | | 2 | 53 | | 3 | 40 | | 4 | 62 | | 5 | 33 | | 6 | 46 | | 7 | 14 | | 8 | 71 | | 9 | 37 | | 10 | 36 | | 11 | 11 | | 12 | 44 | | 13 | 80 | | 14 | 27 | | 15 | 32 | | 16 | 39 | | 17 | 54 | | 18 | 28 | | 19 | 48 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 81 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 77 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 82 | | ratio | 0.098 | | matches | | 0 | "Her footsteps were16 the only sound — until they weren’t." | | 1 | "The standing stones rose before her36 — three hulking shadows tilted at angles that felt wrong for stone, their surfaces mottled with lichen22." | | 2 | "She felt the pendant pulse22 once, twice, a third time22 — a warning22." | | 3 | "and for an instant22 she saw something there — a shape taller than a man,22." | | 4 | "The22 thrumming22 grew22 louder22,22 joined22 by22 a22 second22,22 a22 third22 —22 a22 chorus22 of22 low22,22 humming22 notes22 that22 vibrated22 in22 her22 chest22.22 The22 flowers22 swayed22 though22 there22 was22 still22 no22 wind22.22 One22 by22 one22,22 their22 pale22 heads22 turned22 toward22 her22 like22 tiny22 listening22 faces22." | | 5 | "She22 told22 herself22 to22 run22.22 Her22 legs22 wouldn’t22 obey22.22 The22 pendant22 flared22,22 a22 blister22 of22 heat22 against22 her22 skin22,22 and22 she22 gasped22.22 In22 the22 crimson22 flash22,22 she22 saw22 them22 —22 dozens22 of22 them22,22 ringing22 the22 clearing22.22 Tall22 and22 gaunt22,22 with22 limbs22 that22 bent22 in22 too22 many22 places22,22 faces22 as22 smooth22 and22 blank22 as22 river22 stones22 except22 for22 the22 mouths22.22 The22 mouths22 were22 wrong22.22 They22 opened22 vertical22,22 from22 forehead22 to22 chin22,22 and22 inside22 was22 a22 glistening22 dark22 that22 held22 no22 teeth22." | | 6 | "She22 forced22 her22 feet22 to22 move22,22 one22 step22,22 then22 another22,22 backing22 toward22 the22 standing22 stones22.22 The22 panting22 followed22,22 and22 a22 finger22 —22 too22 long22,22 too22 many22 knuckles22 —22 brushed22 the22 nape22 of22 her22 neck22.22 She22 didn’t22 scream22.22 She22 bolted22." | | 7 | "The22 boundary22 stones22 loomed22.22 She22 hurled22 herself22 between22 them22,22 and22 the22 world22 snapped22 —22 cold22 clean22 air22,22 the22 smell22 of22 wet22 earth22 and22 distant22 traffic22,22 the22 ordinary22 dark22 of22 a22 London22 night22.22 She22 stumbled22 onto22 the22 grass22 path22 and22 ran22 until22 her22 lungs22 burned22,22 the22 pendant22 still22 hot22 as22 a22 brand22 against22 her22 heart22." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 486 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 10 | | adverbRatio | 0.0205761316872428 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.00205761316872428 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 82 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 82 | | mean | 10.41 | | std | 13.19 | | cv | 1.266 | | sampleLengths | | 0 | 25 | | 1 | 10 | | 2 | 17 | | 3 | 2 | | 4 | 3 | | 5 | 3 | | 6 | 28 | | 7 | 6 | | 8 | 5 | | 9 | 11 | | 10 | 9 | | 11 | 5 | | 12 | 18 | | 13 | 10 | | 14 | 18 | | 15 | 2 | | 16 | 3 | | 17 | 4 | | 18 | 1 | | 19 | 8 | | 20 | 4 | | 21 | 3 | | 22 | 7 | | 23 | 23 | | 24 | 8 | | 25 | 2 | | 26 | 14 | | 27 | 1 | | 28 | 4 | | 29 | 16 | | 30 | 11 | | 31 | 1 | | 32 | 1 | | 33 | 1 | | 34 | 1 | | 35 | 1 | | 36 | 1 | | 37 | 10 | | 38 | 2 | | 39 | 2 | | 40 | 5 | | 41 | 6 | | 42 | 8 | | 43 | 13 | | 44 | 3 | | 45 | 9 | | 46 | 2 | | 47 | 1 | | 48 | 3 | | 49 | 8 |
| |
| 85.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.5487804878048781 | | totalSentences | 82 | | uniqueOpeners | 45 | |
| 58.48% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 57 | | matches | | 0 | "Even the rustle had stopped22." |
| | ratio | 0.018 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 57 | | matches | | 0 | "She almost hadn’t." | | 1 | "She slipped through a gap" | | 2 | "Her footsteps were16 the only" | | 3 | "She waited, breath shallow22." | | 4 | "She walked faster22." | | 5 | "She passed between them, and" | | 6 | "It carried a scent of" | | 7 | "She stood at the center22" | | 8 | "It was a held breath," | | 9 | "She felt the pendant pulse22" | | 10 | "Her voice22 fell flat, swallowed" | | 11 | "It came from the edge" | | 12 | "she could focus22." | | 13 | "Its warmth22 had22 become22 a" | | 14 | "She ran until the lights" | | 15 | "she did not stop trembling." |
| | ratio | 0.281 | |
| 82.81% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 43 | | totalSentences | 57 | | matches | | 0 | "The last bus had deposited" | | 1 | "Rory stood on the verge," | | 2 | "The note had been simple," | | 3 | "She almost hadn’t." | | 4 | "So7 she’d tugged on her" | | 5 | "The park gates were16 chained," | | 6 | "She slipped through a gap" | | 7 | "The trees rose around her16," | | 8 | "Her footsteps were16 the only" | | 9 | "The sound stopped22." | | 10 | "She waited, breath shallow22." | | 11 | "A trick of the wind," | | 12 | "She walked faster22." | | 13 | "The path narrowed, became dirt," | | 14 | "The standing stones rose before" | | 15 | "She passed between them, and" | | 16 | "It carried a scent of" | | 17 | "The clearing opened around her," | | 18 | "Flowers nodded pale heads, though" | | 19 | "She stood at the center22" |
| | ratio | 0.754 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 57 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 1 | | matches | | 0 | "It carried a scent of wildflowers that bloomed nowhere and everywhere, sweet and cloying22." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |