| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 79 | | tagDensity | 0.013 | | leniency | 0.025 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2336 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 87.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2336 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "measured" | | 1 | "weight" | | 2 | "silence" | | 3 | "warmth" | | 4 | "pulse" |
| |
| 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 | 0 | | narrationSentences | 130 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 209 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 94 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2336 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 1167 | | uniqueNames | 8 | | maxNameDensity | 0.51 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 6 | | Moreau | 1 | | Brick | 1 | | Lane | 1 | | English | 1 | | Eva | 1 | | Aurora | 4 | | Ptolemy | 5 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Aurora" | | 4 | "Ptolemy" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "English" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 86 | | 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 | 2336 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 209 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 106 | | mean | 22.04 | | std | 22.93 | | cv | 1.041 | | sampleLengths | | 0 | 29 | | 1 | 59 | | 2 | 3 | | 3 | 55 | | 4 | 5 | | 5 | 6 | | 6 | 6 | | 7 | 51 | | 8 | 9 | | 9 | 20 | | 10 | 2 | | 11 | 30 | | 12 | 13 | | 13 | 47 | | 14 | 6 | | 15 | 3 | | 16 | 1 | | 17 | 27 | | 18 | 82 | | 19 | 13 | | 20 | 2 | | 21 | 5 | | 22 | 10 | | 23 | 32 | | 24 | 72 | | 25 | 3 | | 26 | 8 | | 27 | 1 | | 28 | 8 | | 29 | 44 | | 30 | 6 | | 31 | 23 | | 32 | 48 | | 33 | 47 | | 34 | 8 | | 35 | 36 | | 36 | 4 | | 37 | 25 | | 38 | 49 | | 39 | 4 | | 40 | 14 | | 41 | 48 | | 42 | 2 | | 43 | 7 | | 44 | 5 | | 45 | 14 | | 46 | 25 | | 47 | 21 | | 48 | 5 | | 49 | 78 |
| |
| 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 | 199 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 209 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1252 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 14 | | adverbRatio | 0.011182108626198083 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0007987220447284345 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 209 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 209 | | mean | 11.18 | | std | 12.57 | | cv | 1.125 | | sampleLengths | | 0 | 8 | | 1 | 21 | | 2 | 5 | | 3 | 20 | | 4 | 8 | | 5 | 8 | | 6 | 18 | | 7 | 3 | | 8 | 18 | | 9 | 7 | | 10 | 15 | | 11 | 15 | | 12 | 5 | | 13 | 6 | | 14 | 6 | | 15 | 8 | | 16 | 17 | | 17 | 8 | | 18 | 5 | | 19 | 2 | | 20 | 11 | | 21 | 9 | | 22 | 20 | | 23 | 2 | | 24 | 30 | | 25 | 13 | | 26 | 6 | | 27 | 3 | | 28 | 16 | | 29 | 22 | | 30 | 6 | | 31 | 3 | | 32 | 1 | | 33 | 27 | | 34 | 3 | | 35 | 7 | | 36 | 14 | | 37 | 3 | | 38 | 19 | | 39 | 4 | | 40 | 4 | | 41 | 11 | | 42 | 17 | | 43 | 8 | | 44 | 5 | | 45 | 2 | | 46 | 5 | | 47 | 10 | | 48 | 5 | | 49 | 3 |
| |
| 48.01% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3253588516746411 | | totalSentences | 209 | | uniqueOpeners | 68 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 122 | | matches | (empty) | | ratio | 0 | |
| 42.95% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 54 | | totalSentences | 122 | | matches | | 0 | "It caught the amber of" | | 1 | "His gaze went to the" | | 2 | "She turned the wrist inward." | | 3 | "She killed it." | | 4 | "He could still furnish a" | | 5 | "Her mouth thinned." | | 6 | "She gave him one pace," | | 7 | "He stayed on his feet." | | 8 | "Her hand met the door." | | 9 | "She left the bolts back," | | 10 | "She had asked what the" | | 11 | "He had given her name" | | 12 | "His face tightened, a movement" | | 13 | "He came back to English" | | 14 | "She ran the tap over" | | 15 | "Her shoulders kept their line." | | 16 | "She left it alone." | | 17 | "He had kept his distance," | | 18 | "He studied the scrolls." | | 19 | "She came off the counter." |
| | ratio | 0.443 | |
| 21.48% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 107 | | totalSentences | 122 | | matches | | 0 | "The third deadbolt scraped clear" | | 1 | "Aurora hauled the door inward" | | 2 | "The bulb above him buzzed." | | 3 | "It caught the amber of" | | 4 | "Platinum hair lay combed back" | | 5 | "The charcoal suit belonged on" | | 6 | "The ivory handle of his" | | 7 | "Ptolemy threaded the gap at" | | 8 | "The tabby's tail drew a" | | 9 | "Cumin and hot ghee climbed" | | 10 | "Aurora kept her palm on" | | 11 | "The chain hung against her" | | 12 | "His gaze went to the" | | 13 | "She turned the wrist inward." | | 14 | "A refusal to put the" | | 15 | "A sound rose in her" | | 16 | "She killed it." | | 17 | "He could still furnish a" | | 18 | "Her mouth thinned." | | 19 | "She gave him one pace," |
| | ratio | 0.877 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 122 | | matches | (empty) | | ratio | 0 | |
| 82.07% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 4 | | matches | | 0 | "The gap admitted a man who angled his shoulders and kept his cane low." | | 1 | "He had kept his distance, and the keeping showed in his fingers, hovering near the cane, taking nothing up." | | 2 | "The laugh that left her had no warmth and no length." | | 3 | "She watched the cancellation and felt the old hook under her ribs, the same hook that had pulled her fists into his coat in the alley, rain on her neck, his bre…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |