| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 90.04% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1506 | | totalAiIsmAdverbs | 3 | | 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) | |
| 26.96% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1506 | | totalAiIsms | 22 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | word | "down her spine" | | count | 1 |
| | 13 | | | 14 | |
| | highlights | | 0 | "rhythmic" | | 1 | "warmth" | | 2 | "pulsed" | | 3 | "etched" | | 4 | "trembled" | | 5 | "throbbed" | | 6 | "echoed" | | 7 | "whisper" | | 8 | "vibrated" | | 9 | "flickered" | | 10 | "weight" | | 11 | "intricate" | | 12 | "down her spine" | | 13 | "pulse" | | 14 | "silence" |
| |
| 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 | 228 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | hedgeCount | 2 | | narrationSentences | 228 | | filterMatches | | 0 | "know" | | 1 | "watch" | | 2 | "think" | | 3 | "feel" |
| | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 228 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 31 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1506 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 2 | | matches | | 0 | "I know you are here, she said." | | 1 | "You followed me from the bar, she said." |
| |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 1506 | | uniqueNames | 6 | | maxNameDensity | 0.46 | | worstName | "You" | | maxWindowNameDensity | 2.5 | | worstWindowName | "You" | | discoveredNames | | Heartstone | 1 | | Grove | 2 | | Silas | 2 | | London | 1 | | Rory | 6 | | You | 7 |
| | persons | | 0 | "Heartstone" | | 1 | "Grove" | | 2 | "Silas" | | 3 | "Rory" | | 4 | "You" |
| | places | | | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 118 | | 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 | 1506 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 228 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 34 | | mean | 44.29 | | std | 23.51 | | cv | 0.531 | | sampleLengths | | 0 | 84 | | 1 | 53 | | 2 | 10 | | 3 | 48 | | 4 | 10 | | 5 | 70 | | 6 | 4 | | 7 | 71 | | 8 | 52 | | 9 | 39 | | 10 | 36 | | 11 | 12 | | 12 | 1 | | 13 | 87 | | 14 | 1 | | 15 | 60 | | 16 | 17 | | 17 | 76 | | 18 | 61 | | 19 | 42 | | 20 | 60 | | 21 | 52 | | 22 | 31 | | 23 | 43 | | 24 | 70 | | 25 | 34 | | 26 | 48 | | 27 | 50 | | 28 | 56 | | 29 | 58 | | 30 | 52 | | 31 | 61 | | 32 | 40 | | 33 | 17 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 228 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 298 | | matches | | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 228 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1508 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.029840848806366047 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.006631299734748011 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 228 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 228 | | mean | 6.61 | | std | 4.52 | | cv | 0.685 | | sampleLengths | | 0 | 7 | | 1 | 12 | | 2 | 12 | | 3 | 23 | | 4 | 12 | | 5 | 7 | | 6 | 11 | | 7 | 4 | | 8 | 17 | | 9 | 11 | | 10 | 11 | | 11 | 7 | | 12 | 3 | | 13 | 3 | | 14 | 1 | | 15 | 1 | | 16 | 5 | | 17 | 2 | | 18 | 5 | | 19 | 10 | | 20 | 12 | | 21 | 6 | | 22 | 1 | | 23 | 1 | | 24 | 11 | | 25 | 5 | | 26 | 5 | | 27 | 10 | | 28 | 4 | | 29 | 6 | | 30 | 14 | | 31 | 3 | | 32 | 14 | | 33 | 16 | | 34 | 3 | | 35 | 4 | | 36 | 2 | | 37 | 6 | | 38 | 2 | | 39 | 12 | | 40 | 16 | | 41 | 12 | | 42 | 3 | | 43 | 6 | | 44 | 1 | | 45 | 1 | | 46 | 3 | | 47 | 3 | | 48 | 4 | | 49 | 4 |
| |
| 34.21% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 36 | | diversityRatio | 0.2982456140350877 | | totalSentences | 228 | | uniqueOpeners | 68 | |
| 69.44% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 192 | | matches | | 0 | "Just the swaying tops of" | | 1 | "Only the impression of something" | | 2 | "Just the vault of branches" | | 3 | "Just the hollow dark of" |
| | ratio | 0.021 | |
| 47.08% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 83 | | totalSentences | 192 | | matches | | 0 | "Her boots sank into damp" | | 1 | "She kept her hands buried" | | 2 | "She counted her steps." | | 3 | "She tucked the dead device" | | 4 | "It recognized intent." | | 5 | "She turned her head slowly." | | 6 | "She exhaled, watched her breath" | | 7 | "You came for the seam." | | 8 | "You came to close it." | | 9 | "Her jacket swished against her" | | 10 | "She tracked the wave until" | | 11 | "Her shoulders tightened." | | 12 | "She forced her breathing to" | | 13 | "She pulled it free, letting" | | 14 | "She knew what the warmth" | | 15 | "They bled heat before they" | | 16 | "She dropped the pendant back" | | 17 | "She took another step." | | 18 | "Her fingers dug into the" | | 19 | "It carried the cadence of" |
| | ratio | 0.432 | |
| 17.29% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 170 | | totalSentences | 192 | | matches | | 0 | "The iron gate groaned shut" | | 1 | "Rory stepped over the split" | | 2 | "The air inside the clearing" | | 3 | "Her boots sank into damp" | | 4 | "She kept her hands buried" | | 5 | "The silver chain cut into" | | 6 | "The Heartstone pressed against her" | | 7 | "She counted her steps." | | 8 | "The map on her phone" | | 9 | "She tucked the dead device" | | 10 | "The Grove did not recognize" | | 11 | "It recognized intent." | | 12 | "A twig snapped." | | 13 | "She turned her head slowly." | | 14 | "The darkness between the trunks" | | 15 | "She exhaled, watched her breath" | | 16 | "The pendant pulsed against her" | | 17 | "The rhythm matched her own" | | 18 | "You came for the seam." | | 19 | "You came to close it." |
| | ratio | 0.885 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 192 | | matches | (empty) | | ratio | 0 | |
| 75.47% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 5 | | matches | | 0 | "Her boots sank into damp moss that bloomed with night-flowering jasmine and pale foxgloves, colors so bright they looked painted under the moonlight." | | 1 | "The sound of her boot hitting the moss echoed too loud, too flat, like stepping onto tin." | | 2 | "She had heard them in case files, in police recordings, in the low murmur of the men who used to keep her locked in apartments with deadbolts that never quite h…" | | 3 | "The glow brightened, casting long, jagged shadows that stretched in directions that defied the moon." | | 4 | "Her boots crunched on dry twigs that had no business surviving this long." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |