| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 81.34% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1072 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | |
| 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) | |
| 48.69% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1072 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "pulse" | | 1 | "warmth" | | 2 | "loomed" | | 3 | "throb" | | 4 | "could feel" | | 5 | "weight" | | 6 | "chill" | | 7 | "flickered" | | 8 | "perfect" |
| |
| 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 | 100 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 100 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 103 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 1072 | | ratio | 0.001 | | matches | | |
| 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 | 21 | | wordCount | 1035 | | uniqueNames | 10 | | maxNameDensity | 0.58 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Heartstone | 4 | | London | 2 | | Fae | 1 | | Grove | 1 | | October | 1 | | Camden | 1 | | Rory | 6 | | Richmond | 2 | | Park | 2 | | Cardiff | 1 |
| | persons | | | places | | 0 | "London" | | 1 | "Fae" | | 2 | "Grove" | | 3 | "October" | | 4 | "Camden" | | 5 | "Richmond" | | 6 | "Park" | | 7 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | 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 | 1072 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 103 | | matches | | 0 | "hated that she" | | 1 | "Hated that it" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 40 | | mean | 26.8 | | std | 19.22 | | cv | 0.717 | | sampleLengths | | 0 | 6 | | 1 | 50 | | 2 | 32 | | 3 | 9 | | 4 | 55 | | 5 | 8 | | 6 | 28 | | 7 | 30 | | 8 | 67 | | 9 | 12 | | 10 | 53 | | 11 | 53 | | 12 | 11 | | 13 | 7 | | 14 | 28 | | 15 | 4 | | 16 | 33 | | 17 | 58 | | 18 | 1 | | 19 | 3 | | 20 | 45 | | 21 | 13 | | 22 | 60 | | 23 | 29 | | 24 | 31 | | 25 | 34 | | 26 | 53 | | 27 | 18 | | 28 | 6 | | 29 | 46 | | 30 | 44 | | 31 | 42 | | 32 | 21 | | 33 | 13 | | 34 | 18 | | 35 | 2 | | 36 | 11 | | 37 | 5 | | 38 | 12 | | 39 | 21 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 100 | | matches | (empty) | |
| 5.07% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 171 | | matches | | 0 | "was getting" | | 1 | "was hammering" | | 2 | "was screaming" | | 3 | "was tasting" | | 4 | "were running" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 103 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1040 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.03173076923076923 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.007692307692307693 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 103 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 103 | | mean | 10.41 | | std | 9.56 | | cv | 0.918 | | sampleLengths | | 0 | 6 | | 1 | 14 | | 2 | 7 | | 3 | 6 | | 4 | 4 | | 5 | 10 | | 6 | 9 | | 7 | 12 | | 8 | 5 | | 9 | 15 | | 10 | 9 | | 11 | 19 | | 12 | 17 | | 13 | 2 | | 14 | 2 | | 15 | 15 | | 16 | 2 | | 17 | 6 | | 18 | 20 | | 19 | 3 | | 20 | 3 | | 21 | 2 | | 22 | 6 | | 23 | 19 | | 24 | 5 | | 25 | 5 | | 26 | 31 | | 27 | 18 | | 28 | 8 | | 29 | 3 | | 30 | 2 | | 31 | 12 | | 32 | 5 | | 33 | 13 | | 34 | 7 | | 35 | 28 | | 36 | 4 | | 37 | 8 | | 38 | 29 | | 39 | 12 | | 40 | 7 | | 41 | 4 | | 42 | 7 | | 43 | 7 | | 44 | 21 | | 45 | 4 | | 46 | 2 | | 47 | 3 | | 48 | 28 | | 49 | 3 |
| |
| 63.11% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.46601941747572817 | | totalSentences | 103 | | uniqueOpeners | 48 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 80 | | matches | | 0 | "Instead, she raised the pendant" | | 1 | "Then it smiled." | | 2 | "Then the pendant flared white-hot" |
| | ratio | 0.038 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 80 | | matches | | 0 | "It had never done this" | | 1 | "She should have listened to" | | 2 | "They didn't creak." | | 3 | "They didn't sway." | | 4 | "She'd come looking for answers." | | 5 | "she muttered, and the words" | | 6 | "It steadied her now, even" | | 7 | "she said to no one" | | 8 | "She took a step forward," | | 9 | "She didn't run." | | 10 | "It held still while she" | | 11 | "It watched while she watched" | | 12 | "She counted them again." | | 13 | "She counted the shadows between" | | 14 | "Her voice came out steadier" |
| | ratio | 0.188 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 54 | | totalSentences | 80 | | matches | | 0 | "The Heartstone seared against her" | | 1 | "Aurora's hand flew to the" | | 2 | "Heat radiated through her palm," | | 3 | "It had never done this" | | 4 | "A gentle pulse, yes." | | 5 | "A faint warmth when she" | | 6 | "She should have listened to" | | 7 | "The clearing stretched before her," | | 8 | "Wildflowers carpeted the ground, blooms" | | 9 | "A shade of blue that" | | 10 | "The standing stones loomed at" | | 11 | "They didn't creak." | | 12 | "They didn't sway." | | 13 | "Rory's fingers tightened around the" | | 14 | "The heat had faded to" | | 15 | "She'd come looking for answers." | | 16 | "Some anonymous benefactor had pressed" | | 17 | "Tonight it had brought her" | | 18 | "she muttered, and the words" | | 19 | "Rory counted her breaths." |
| | ratio | 0.675 | |
| 62.50% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 80 | | matches | | | ratio | 0.013 | |
| 65.64% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 4 | | matches | | 0 | "The pendant flared hot enough to sting, and the wildflowers froze mid-tilt, every bloom rigid as if held by invisible hands." | | 1 | "The breath at her neck came again, longer this time, drawn in with a soft wet sound, as if whatever stood behind her was tasting the air where her perfume had b…" | | 2 | "A low hum, felt more than heard, vibrating in the base of her skull, in the marrow of her arm bones, in the small crescent scar at her left wrist that prickled …" | | 3 | "The crimson glow flickered, dimmed, steadied, dimmed again, as if it were running out of something it couldn't spare." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 1 | | matches | | 0 | "she muttered, and the words sounded thin in the stillness" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 5 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0.5 | | effectiveRatio | 0.4 | |