| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 2 | | adverbTags | | 0 | "Rory looked around [around]" | | 1 | "He gestured mildly [mildly]" |
| | dialogueSentences | 65 | | tagDensity | 0.354 | | leniency | 0.708 | | rawRatio | 0.087 | | effectiveRatio | 0.062 | |
| 88.97% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1360 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slowly" | | 1 | "carefully" | | 2 | "loosely" |
| |
| 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) | |
| 66.91% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1360 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "absolutely" | | 1 | "tension" | | 2 | "echoed" | | 3 | "simmering" | | 4 | "flickered" | | 5 | "silk" | | 6 | "silence" | | 7 | "familiar" | | 8 | "shattered" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 3 | | maxInWindow | 2 | | found | | 0 | | label | "let out a breath" | | count | 1 |
| | 1 | | label | "knuckles turned white" | | count | 1 |
| | 2 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "let out a breath" | | 1 | "knuckles went white" | | 2 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 90 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 90 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 130 | | 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 | 1360 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 28 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 53 | | wordCount | 786 | | uniqueNames | 7 | | maxNameDensity | 2.8 | | worstName | "Eva" | | maxWindowNameDensity | 5.5 | | worstWindowName | "Eva" | | discoveredNames | | Rory | 19 | | Eva | 22 | | Moreau | 1 | | Brick | 1 | | Lane | 1 | | Lucien | 7 | | Ptolemy | 2 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Ptolemy" |
| | places | | | globalScore | 0.101 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 46 | | 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 | 1360 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 130 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 65 | | mean | 20.92 | | std | 18.1 | | cv | 0.865 | | sampleLengths | | 0 | 58 | | 1 | 6 | | 2 | 7 | | 3 | 6 | | 4 | 27 | | 5 | 53 | | 6 | 50 | | 7 | 13 | | 8 | 8 | | 9 | 3 | | 10 | 19 | | 11 | 25 | | 12 | 10 | | 13 | 29 | | 14 | 1 | | 15 | 1 | | 16 | 14 | | 17 | 5 | | 18 | 32 | | 19 | 24 | | 20 | 33 | | 21 | 15 | | 22 | 38 | | 23 | 20 | | 24 | 50 | | 25 | 9 | | 26 | 35 | | 27 | 6 | | 28 | 8 | | 29 | 5 | | 30 | 2 | | 31 | 6 | | 32 | 57 | | 33 | 10 | | 34 | 1 | | 35 | 12 | | 36 | 17 | | 37 | 21 | | 38 | 6 | | 39 | 63 | | 40 | 15 | | 41 | 34 | | 42 | 19 | | 43 | 64 | | 44 | 11 | | 45 | 27 | | 46 | 8 | | 47 | 59 | | 48 | 9 | | 49 | 28 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 90 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 152 | | matches | | 0 | "was simmering" | | 1 | "was holding" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 130 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 789 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 24 | | adverbRatio | 0.030418250950570342 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.012674271229404309 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 130 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 130 | | mean | 10.46 | | std | 8.82 | | cv | 0.843 | | sampleLengths | | 0 | 12 | | 1 | 46 | | 2 | 6 | | 3 | 4 | | 4 | 3 | | 5 | 6 | | 6 | 13 | | 7 | 14 | | 8 | 17 | | 9 | 13 | | 10 | 23 | | 11 | 15 | | 12 | 35 | | 13 | 13 | | 14 | 2 | | 15 | 6 | | 16 | 3 | | 17 | 9 | | 18 | 3 | | 19 | 7 | | 20 | 11 | | 21 | 14 | | 22 | 10 | | 23 | 15 | | 24 | 5 | | 25 | 9 | | 26 | 1 | | 27 | 1 | | 28 | 14 | | 29 | 5 | | 30 | 2 | | 31 | 6 | | 32 | 24 | | 33 | 10 | | 34 | 14 | | 35 | 8 | | 36 | 20 | | 37 | 5 | | 38 | 15 | | 39 | 34 | | 40 | 4 | | 41 | 18 | | 42 | 2 | | 43 | 6 | | 44 | 4 | | 45 | 9 | | 46 | 7 | | 47 | 20 | | 48 | 4 | | 49 | 3 |
| |
| 51.79% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3384615384615385 | | totalSentences | 130 | | uniqueOpeners | 44 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 74 | | matches | (empty) | | ratio | 0 | |
| 84.86% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 74 | | matches | | 0 | "She’d meant to knock again," | | 1 | "Her eyes were tired, shadowed." | | 2 | "It was not a pleasant" | | 3 | "She knew when she was" | | 4 | "She turned toward the door," | | 5 | "Her hand was on the" | | 6 | "He wore his usual charcoal" | | 7 | "He looked the same as" | | 8 | "His eyes, one amber and" | | 9 | "Her name in his mouth" | | 10 | "It always had been." | | 11 | "She kept her voice flat" | | 12 | "He gestured mildly to the" | | 13 | "He stepped past her into" | | 14 | "He surveyed the room with" | | 15 | "He picked up the dagger," | | 16 | "She could leave." | | 17 | "He set the dagger down," | | 18 | "he said, his voice low" | | 19 | "His jaw tightened" |
| | ratio | 0.338 | |
| 0.54% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 74 | | matches | | 0 | "The door swung inward before" | | 1 | "She’d meant to knock again," | | 2 | "Eva lowered the knife." | | 3 | "Eva gestured with the scroll" | | 4 | "Rory stepped over a stack" | | 5 | "Ptolemy, the tabby, wound between" | | 6 | "The flat smelled of cardamom" | | 7 | "Rory said, dropping her bag" | | 8 | "The name landed between them" | | 9 | "Rory turned, slowly." | | 10 | "Eva’s voice was carefully neutral" | | 11 | "Eva set down the scroll," | | 12 | "Her eyes were tired, shadowed." | | 13 | "It was not a pleasant" | | 14 | "Eva’s voice was quiet" | | 15 | "The words hit harder than" | | 16 | "Rory pressed her thumb into" | | 17 | "Rory looked around the room," | | 18 | "Eva met her gaze, steady" | | 19 | "The clock on the mantelpiece" |
| | ratio | 0.919 | |
| 67.57% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 74 | | matches | | 0 | "Even Ptolemy stopped his purring." |
| | ratio | 0.014 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 1 | | matches | | 0 | "The old, familiar heat crackled between them, the same heat that used to keep her up at night, that she’d tried to drown in three months of late shifts and chea…" |
| |
| 59.78% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 3 | | matches | | 0 | "Eva met, steady" | | 1 | "He set, the blade catching the candlelight" | | 2 | "he said, his voice low" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 65 | | tagDensity | 0.215 | | leniency | 0.431 | | rawRatio | 0 | | effectiveRatio | 0 | |