| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 40 | | adverbTagCount | 1 | | adverbTags | | 0 | "She stepped back [back]" |
| | dialogueSentences | 103 | | tagDensity | 0.388 | | leniency | 0.777 | | rawRatio | 0.025 | | effectiveRatio | 0.019 | |
| 97.45% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1961 | | totalAiIsmAdverbs | 1 | | 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) | |
| 41.36% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1961 | | totalAiIsms | 23 | | found | | | highlights | | 0 | "echoed" | | 1 | "weight" | | 2 | "chaotic" | | 3 | "sanctuary" | | 4 | "traced" | | 5 | "velvet" | | 6 | "pulse" | | 7 | "silence" | | 8 | "facade" | | 9 | "rhythmic" | | 10 | "tension" | | 11 | "etched" | | 12 | "echoing" | | 13 | "chill" | | 14 | "vibrated" | | 15 | "silk" | | 16 | "tracing" |
| |
| 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 | 88 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 88 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 151 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 35 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1961 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 71.74% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 1150 | | uniqueNames | 8 | | maxNameDensity | 1.57 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 18 | | Curry | 1 | | Latin | 1 | | Rory | 9 | | Brick | 1 | | Lane | 1 | | Ptolemy | 3 | | Welsh | 1 |
| | persons | | 0 | "Lucien" | | 1 | "Rory" | | 2 | "Ptolemy" | | 3 | "Welsh" |
| | places | | | globalScore | 0.717 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | 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 | 1961 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 151 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 87 | | mean | 22.54 | | std | 13.87 | | cv | 0.615 | | sampleLengths | | 0 | 15 | | 1 | 21 | | 2 | 7 | | 3 | 48 | | 4 | 26 | | 5 | 6 | | 6 | 15 | | 7 | 32 | | 8 | 23 | | 9 | 20 | | 10 | 44 | | 11 | 34 | | 12 | 26 | | 13 | 39 | | 14 | 25 | | 15 | 51 | | 16 | 5 | | 17 | 14 | | 18 | 2 | | 19 | 33 | | 20 | 5 | | 21 | 35 | | 22 | 18 | | 23 | 8 | | 24 | 34 | | 25 | 25 | | 26 | 18 | | 27 | 5 | | 28 | 20 | | 29 | 5 | | 30 | 42 | | 31 | 44 | | 32 | 19 | | 33 | 29 | | 34 | 2 | | 35 | 2 | | 36 | 17 | | 37 | 36 | | 38 | 30 | | 39 | 49 | | 40 | 33 | | 41 | 27 | | 42 | 5 | | 43 | 33 | | 44 | 6 | | 45 | 34 | | 46 | 32 | | 47 | 2 | | 48 | 27 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 88 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 183 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 1 | | flaggedSentences | 1 | | totalSentences | 151 | | ratio | 0.007 | | matches | | 0 | "One eye burned like molten amber in the dim light; the other remained a deep, lightless black." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1154 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 18 | | adverbRatio | 0.01559792027729636 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.0017331022530329288 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 151 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 151 | | mean | 12.99 | | std | 7.11 | | cv | 0.547 | | sampleLengths | | 0 | 15 | | 1 | 21 | | 2 | 7 | | 3 | 12 | | 4 | 19 | | 5 | 17 | | 6 | 18 | | 7 | 8 | | 8 | 6 | | 9 | 15 | | 10 | 14 | | 11 | 18 | | 12 | 19 | | 13 | 4 | | 14 | 20 | | 15 | 24 | | 16 | 10 | | 17 | 10 | | 18 | 14 | | 19 | 20 | | 20 | 17 | | 21 | 9 | | 22 | 32 | | 23 | 7 | | 24 | 20 | | 25 | 5 | | 26 | 16 | | 27 | 35 | | 28 | 5 | | 29 | 14 | | 30 | 2 | | 31 | 21 | | 32 | 6 | | 33 | 6 | | 34 | 5 | | 35 | 16 | | 36 | 19 | | 37 | 6 | | 38 | 12 | | 39 | 8 | | 40 | 13 | | 41 | 5 | | 42 | 16 | | 43 | 10 | | 44 | 15 | | 45 | 3 | | 46 | 15 | | 47 | 5 | | 48 | 20 | | 49 | 5 |
| |
| 47.68% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.33774834437086093 | | totalSentences | 151 | | uniqueOpeners | 51 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 85 | | matches | (empty) | | ratio | 0 | |
| 31.76% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 85 | | matches | | 0 | "He brought the scent of" | | 1 | "He rested his cane against" | | 2 | "She turned on her heel," | | 3 | "He halted two inches short" | | 4 | "He reached into his breast" | | 5 | "He withdrew a small velvet" | | 6 | "It landed with a dull" | | 7 | "Her pulse hammered against her" | | 8 | "She gripped the back of" | | 9 | "He took another step forward" | | 10 | "Her voice scraped low" | | 11 | "His gloved thumb brushed the" | | 12 | "She flinched away from the" | | 13 | "He retracted his hand, resting" | | 14 | "She snapped her hand out," | | 15 | "He leaned into her grip," | | 16 | "he whispered, his breath warm" | | 17 | "She yanked him closer, the" | | 18 | "His obsidian eye reflected nothing," | | 19 | "Her fingers twitched within his" |
| | ratio | 0.471 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 83 | | totalSentences | 85 | | matches | | 0 | "The third deadbolt gave way" | | 1 | "Rory pulled the scarred oak" | | 2 | "Lucien shifted his weight onto" | | 3 | "Rain glinted in his platinum" | | 4 | "Rory leaned against the jamb," | | 5 | "Lucien stepped across the threshold" | | 6 | "He brought the scent of" | | 7 | "He rested his cane against" | | 8 | "She turned on her heel," | | 9 | "Curry spices from the restaurant" | | 10 | "Scrolls lay unspooled across the" | | 11 | "Ptolemy slunk out from behind" | | 12 | "The tabby sniffed the edge" | | 13 | "Lucien picked a route through" | | 14 | "Rory snatched a stack of" | | 15 | "He halted two inches short" | | 16 | "Rory traced the pale crescent" | | 17 | "The last time they stood" | | 18 | "He reached into his breast" | | 19 | "He withdrew a small velvet" |
| | ratio | 0.976 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 85 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 1 | | matches | | 0 | "The last time they stood this close, blood had been drying on his cuff and her fingers had been tangled in his lapels, pulling him down into an error she had sp…" |
| |
| 62.50% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 40 | | uselessAdditionCount | 5 | | matches | | 0 | "Lucien leaned down, his amber eye catching the glare of the desk lamp" | | 1 | "His obsidian eye reflected, his amber eye reflecting her angry face" | | 2 | "she spat, her eyes flashing bright blue" | | 3 | "His amber eye burned, the pupil slitting into a razor-thin needle" | | 4 | "she demanded, her voice cutting through the damp chill of the room" |
| |
| 72.33% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 8 | | fancyTags | | 0 | "He retracted (retract)" | | 1 | "She snapped (snap)" | | 2 | "he whispered (whisper)" | | 3 | "she spat (spit)" | | 4 | "she whispered (whisper)" | | 5 | "he agreed (agree)" | | 6 | "she breathed (breathe)" | | 7 | "she demanded (demand)" |
| | dialogueSentences | 103 | | tagDensity | 0.078 | | leniency | 0.155 | | rawRatio | 1 | | effectiveRatio | 0.155 | |