| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 117 | | tagDensity | 0.026 | | leniency | 0.051 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 94.78% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1914 | | totalAiIsmAdverbs | 2 | | 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) | |
| 81.71% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1914 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "warmth" | | 1 | "traced" | | 2 | "weight" | | 3 | "flicker" | | 4 | "familiar" | | 5 | "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 | 130 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 130 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 244 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1912 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 48 | | wordCount | 1168 | | uniqueNames | 6 | | maxNameDensity | 1.71 | | worstName | "Aurora" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Lucien" | | discoveredNames | | Aurora | 20 | | Carter | 1 | | Moreau | 1 | | Lucien | 20 | | French | 1 | | Ptolemy | 5 |
| | persons | | 0 | "Aurora" | | 1 | "Carter" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Ptolemy" |
| | places | (empty) | | globalScore | 0.644 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 79 | | 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 | 1912 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 244 | | matches | | 0 | "had that morning" | | 1 | "hated that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 202 | | mean | 9.47 | | std | 10.38 | | cv | 1.097 | | sampleLengths | | 0 | 19 | | 1 | 58 | | 2 | 6 | | 3 | 5 | | 4 | 5 | | 5 | 1 | | 6 | 5 | | 7 | 7 | | 8 | 5 | | 9 | 11 | | 10 | 12 | | 11 | 5 | | 12 | 24 | | 13 | 6 | | 14 | 2 | | 15 | 6 | | 16 | 36 | | 17 | 11 | | 18 | 5 | | 19 | 3 | | 20 | 12 | | 21 | 8 | | 22 | 34 | | 23 | 6 | | 24 | 42 | | 25 | 4 | | 26 | 3 | | 27 | 1 | | 28 | 17 | | 29 | 8 | | 30 | 5 | | 31 | 20 | | 32 | 3 | | 33 | 21 | | 34 | 8 | | 35 | 3 | | 36 | 11 | | 37 | 3 | | 38 | 3 | | 39 | 16 | | 40 | 4 | | 41 | 10 | | 42 | 10 | | 43 | 6 | | 44 | 3 | | 45 | 48 | | 46 | 5 | | 47 | 51 | | 48 | 4 | | 49 | 3 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 130 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 196 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 2 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 244 | | ratio | 0.004 | | matches | | 0 | "The scar beneath her sleeve—small, crescent-shaped, pale from childhood—rested beneath his thumb." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1172 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 34 | | adverbRatio | 0.02901023890784983 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.004266211604095563 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 244 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 244 | | mean | 7.84 | | std | 6.7 | | cv | 0.855 | | sampleLengths | | 0 | 19 | | 1 | 21 | | 2 | 8 | | 3 | 29 | | 4 | 6 | | 5 | 5 | | 6 | 5 | | 7 | 1 | | 8 | 5 | | 9 | 7 | | 10 | 5 | | 11 | 11 | | 12 | 12 | | 13 | 5 | | 14 | 9 | | 15 | 15 | | 16 | 6 | | 17 | 2 | | 18 | 6 | | 19 | 36 | | 20 | 11 | | 21 | 5 | | 22 | 3 | | 23 | 12 | | 24 | 8 | | 25 | 12 | | 26 | 22 | | 27 | 6 | | 28 | 4 | | 29 | 23 | | 30 | 7 | | 31 | 8 | | 32 | 4 | | 33 | 3 | | 34 | 1 | | 35 | 17 | | 36 | 8 | | 37 | 5 | | 38 | 20 | | 39 | 3 | | 40 | 21 | | 41 | 8 | | 42 | 3 | | 43 | 11 | | 44 | 3 | | 45 | 3 | | 46 | 4 | | 47 | 12 | | 48 | 4 | | 49 | 10 |
| |
| 45.08% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.22131147540983606 | | totalSentences | 244 | | uniqueOpeners | 54 | |
| 80.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 125 | | matches | | 0 | "Somewhere below, the curry house" | | 1 | "Then Lucien withdrew the cane." | | 2 | "Only a little." |
| | ratio | 0.024 | |
| 76.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 45 | | totalSentences | 125 | | matches | | 0 | "His platinum hair remained slicked" | | 1 | "His amber eye caught the" | | 2 | "She started to close it." | | 3 | "His cane slid between the" | | 4 | "His gaze dropped to the" | | 5 | "She had learned what his" | | 6 | "It sat beneath her skin," | | 7 | "His expression tightened." | | 8 | "He stepped inside." | | 9 | "She had to turn her" | | 10 | "She pushed the memory aside." | | 11 | "He removed his gloves finger" | | 12 | "She stepped between him and" | | 13 | "His amber eye softened first." | | 14 | "His black one did not." | | 15 | "His voice landed lower than" | | 16 | "It moved through her chest" | | 17 | "She folded her arms." | | 18 | "Her body remembered tending to" | | 19 | "He watched her fetch it." |
| | ratio | 0.36 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 117 | | totalSentences | 125 | | matches | | 0 | "The third deadbolt scraped back," | | 1 | "Lucien Moreau stood on the" | | 2 | "Rain silvered the shoulders of" | | 3 | "His platinum hair remained slicked" | | 4 | "His amber eye caught the" | | 5 | "The black one caught nothing." | | 6 | "Aurora kept the chain fastened." | | 7 | "Lucien’s mouth curved without warmth." | | 8 | "She started to close it." | | 9 | "His cane slid between the" | | 10 | "The thin strip of metal" | | 11 | "Aurora’s grip tightened around the" | | 12 | "His gaze dropped to the" | | 13 | "The rain ticked against the" | | 14 | "Lucien’s fingers shifted on the" | | 15 | "Aurora saw the movement." | | 16 | "She had learned what his" | | 17 | "It sat beneath her skin," | | 18 | "His expression tightened." | | 19 | "Aurora shut the door, slid" |
| | ratio | 0.936 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 125 | | matches | (empty) | | ratio | 0 | |
| 89.29% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 3 | | matches | | 0 | "Ptolemy leapt up beside him and settled against his thigh as if he had never left." | | 1 | "The skin around them had tightened into something too dark and too smooth, as if ink had seeped beneath it." | | 2 | "It recalled the nights when his hand had rested there without fear, when she had leaned across the table to steal his drink and he had let her, when his mouth h…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | 0 | "Aurora muttered (mutter)" |
| | dialogueSentences | 117 | | tagDensity | 0.026 | | leniency | 0.051 | | rawRatio | 0.333 | | effectiveRatio | 0.017 | |