| 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.57% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1489 | | 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) | |
| 9.34% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1489 | | totalAiIsms | 27 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "chill" | | 1 | "loomed" | | 2 | "warmth" | | 3 | "flicker" | | 4 | "pulse" | | 5 | "scanning" | | 6 | "quickened" | | 7 | "throb" | | 8 | "weight" | | 9 | "reminder" | | 10 | "resolved" | | 11 | "measured" | | 12 | "flicked" | | 13 | "fluttered" | | 14 | "silence" | | 15 | "traced" | | 16 | "flickered" | | 17 | "familiar" |
| |
| 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 | 113 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 113 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 113 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 32 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1486 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 1 | | unquotedAttributions | 0 | | matches | (empty) | |
| 99.49% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 18 | | wordCount | 1485 | | uniqueNames | 2 | | maxNameDensity | 1.01 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | | persons | | | places | (empty) | | globalScore | 0.995 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 97 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.673 | | wordCount | 1486 | | matches | | 0 | "not enough to burn but enough to notice against the cool chain" |
| |
| 78.17% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 113 | | matches | | 0 | "test that her" | | 1 | "interrupted that shadow" | | 2 | "lingered that whatever" |
| |
| 36.72% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 18 | | mean | 82.56 | | std | 22.99 | | cv | 0.279 | | sampleLengths | | 0 | 138 | | 1 | 109 | | 2 | 67 | | 3 | 106 | | 4 | 85 | | 5 | 68 | | 6 | 23 | | 7 | 91 | | 8 | 80 | | 9 | 72 | | 10 | 95 | | 11 | 67 | | 12 | 79 | | 13 | 82 | | 14 | 84 | | 15 | 99 | | 16 | 74 | | 17 | 67 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 113 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 250 | | matches | (empty) | |
| 67.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 113 | | ratio | 0.027 | | matches | | 0 | "She had walked the path three times since sunset, checking the landmarks Eva described—heavy boughs heavy with leaves that refused to drop, the faint silver line where grass met bare earth." | | 1 | "When she withdrew her hand, a faint smear remained on her skin—moisture that smelled faintly of iron, though she tasted nothing metallic in her mouth." | | 2 | "She tilted her wrist to compare her watch—eleven twenty-nine now." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1490 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 55 | | adverbRatio | 0.03691275167785235 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.008053691275167786 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 113 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 113 | | mean | 13.15 | | std | 6.41 | | cv | 0.488 | | sampleLengths | | 0 | 17 | | 1 | 24 | | 2 | 31 | | 3 | 19 | | 4 | 16 | | 5 | 13 | | 6 | 18 | | 7 | 9 | | 8 | 25 | | 9 | 4 | | 10 | 21 | | 11 | 14 | | 12 | 9 | | 13 | 27 | | 14 | 10 | | 15 | 9 | | 16 | 2 | | 17 | 12 | | 18 | 10 | | 19 | 6 | | 20 | 18 | | 21 | 20 | | 22 | 20 | | 23 | 8 | | 24 | 13 | | 25 | 25 | | 26 | 7 | | 27 | 13 | | 28 | 9 | | 29 | 25 | | 30 | 12 | | 31 | 18 | | 32 | 21 | | 33 | 23 | | 34 | 15 | | 35 | 2 | | 36 | 16 | | 37 | 12 | | 38 | 12 | | 39 | 11 | | 40 | 15 | | 41 | 23 | | 42 | 6 | | 43 | 23 | | 44 | 10 | | 45 | 14 | | 46 | 16 | | 47 | 15 | | 48 | 14 | | 49 | 13 |
| |
| 46.46% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.25663716814159293 | | totalSentences | 113 | | uniqueOpeners | 29 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 111 | | matches | | 0 | "Once inside, she intended to" | | 1 | "Instead she encountered a fine" | | 2 | "Instead, a new sensation replaced" | | 3 | "Instead it carried a double" |
| | ratio | 0.036 | |
| 79.46% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 39 | | totalSentences | 111 | | matches | | 0 | "She had walked the path" | | 1 | "She had come for this" | | 2 | "She paused at the center" | | 3 | "Their trunks stood close enough" | | 4 | "She turned her head, scanning" | | 5 | "She waited, counting two full" | | 6 | "Its warmth increased by small" | | 7 | "She took deliberate steps toward" | | 8 | "She brushed one palm along" | | 9 | "It came from the opposite" | | 10 | "She rotated on the spot," | | 11 | "She decided to walk the" | | 12 | "She covered half the circle" | | 13 | "Their stems bent in unison," | | 14 | "She searched the ground for" | | 15 | "she whispered to herself, just" | | 16 | "It did, flat and small," | | 17 | "She checked the pendant once" | | 18 | "Its crimson surface had taken" | | 19 | "She tilted her wrist to" |
| | ratio | 0.351 | |
| 18.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 98 | | totalSentences | 111 | | matches | | 0 | "Aurora pulled her jacket tighter" | | 1 | "The standing stones loomed like" | | 2 | "She had walked the path" | | 3 | "The pendant resting at her" | | 4 | "She had come for this" | | 5 | "Any flicker or pulse might" | | 6 | "She paused at the center" | | 7 | "Moonlight filtered through high branches" | | 8 | "Rory set her backpack down" | | 9 | "The trees formed a tight" | | 10 | "Their trunks stood close enough" | | 11 | "A branch cracked somewhere to" | | 12 | "She turned her head, scanning" | | 13 | "She waited, counting two full" | | 14 | "Rory stood slowly, sliding the" | | 15 | "Its warmth increased by small" | | 16 | "She took deliberate steps toward" | | 17 | "The soil underfoot gave slightly," | | 18 | "She brushed one palm along" | | 19 | "The leaves felt smooth, almost" |
| | ratio | 0.883 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 111 | | matches | (empty) | | ratio | 0 | |
| 68.65% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 77 | | technicalSentenceCount | 8 | | matches | | 0 | "She had walked the path three times since sunset, checking the landmarks Eva described—heavy boughs heavy with leaves that refused to drop, the faint silver lin…" | | 1 | "Moonlight filtered through high branches and cast uneven rings on the ground, revealing wildflowers clustered in low white clusters that showed no sign of frost…" | | 2 | "When she withdrew her hand, a faint smear remained on her skin—moisture that smelled faintly of iron, though she tasted nothing metallic in her mouth." | | 3 | "It came from the opposite side of the clearing and lasted longer than the first, the sort that might have been cloth sliding over bark." | | 4 | "Instead she encountered a fine layer of something that yielded like warm wax." | | 5 | "Instead, a new sensation replaced it: the distinct feeling of pressure at the nape of her neck, as though someone stood directly behind her." | | 6 | "She set the torch on the ground pointing upward, its beam splitting the air into a vertical shaft." | | 7 | "Something interrupted that shadow at its base, a second shape that flickered and vanished as soon as she registered it." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 1 | | effectiveRatio | 1 | |