| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 45 | | tagDensity | 0.378 | | leniency | 0.756 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.67% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1072 | | 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) | |
| 76.68% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1072 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "unsettled" | | 1 | "measured" | | 2 | "charm" | | 3 | "weight" | | 4 | "silence" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "weight of words/silence" | | count | 1 |
|
| | highlights | | 0 | "the weight of the silence" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 54 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 54 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 81 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 50 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1063 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 13 | | wordCount | 604 | | uniqueNames | 7 | | maxNameDensity | 0.5 | | worstName | "Ptolemy" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Ptolemy | 3 | | Eva | 1 | | Moreau | 1 | | Brick | 1 | | Lane | 1 | | Rory | 3 | | Lucien | 3 |
| | persons | | 0 | "Ptolemy" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Rory" | | 4 | "Lucien" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 36 | | 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 | 1063 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 81 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 23.62 | | std | 18.31 | | cv | 0.775 | | sampleLengths | | 0 | 24 | | 1 | 41 | | 2 | 8 | | 3 | 39 | | 4 | 43 | | 5 | 3 | | 6 | 13 | | 7 | 47 | | 8 | 7 | | 9 | 60 | | 10 | 16 | | 11 | 8 | | 12 | 31 | | 13 | 5 | | 14 | 47 | | 15 | 4 | | 16 | 7 | | 17 | 25 | | 18 | 7 | | 19 | 22 | | 20 | 39 | | 21 | 26 | | 22 | 7 | | 23 | 14 | | 24 | 24 | | 25 | 56 | | 26 | 40 | | 27 | 27 | | 28 | 76 | | 29 | 10 | | 30 | 5 | | 31 | 2 | | 32 | 13 | | 33 | 41 | | 34 | 9 | | 35 | 45 | | 36 | 50 | | 37 | 17 | | 38 | 35 | | 39 | 5 | | 40 | 3 | | 41 | 3 | | 42 | 10 | | 43 | 21 | | 44 | 28 |
| |
| 92.27% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 54 | | matches | | 0 | "got was" | | 1 | "been invited" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 104 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 81 | | ratio | 0.086 | | matches | | 0 | "The hallway light had burned out weeks ago, so all she got was a silhouette—broad shoulders, the line of a cane, the gleam of platinum hair catching what little light spilled from inside her flat." | | 1 | "Three weeks since she'd last seen him, and her body still did the foolish thing it always did—the catch in her chest, the heat she resented." | | 2 | "He set the tip of his cane against the floorboards and surveyed Eva's flat—the towers of books, the scrolls unspooled across the table, the research notes pinned to every spare inch of wall." | | 3 | "In the lamplight she could see him properly now—the charcoal suit, immaculate as always, but the collar slightly loose, a faint shadow beneath his eyes she wasn't used to seeing." | | 4 | "The blade hidden inside it, the four languages, the careful charm—he laid all of it down with that single gesture." | | 5 | "She laughed—short, disbelieving, wet at the edges." | | 6 | "Rory looked at him—the slight unevenness of his collar, the fatigue he hadn't bothered to hide, the open thing in his face that she'd never once seen there in all the months she'd known him." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 611 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 24 | | adverbRatio | 0.03927986906710311 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.004909983633387889 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 81 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 81 | | mean | 13.12 | | std | 10.64 | | cv | 0.811 | | sampleLengths | | 0 | 7 | | 1 | 17 | | 2 | 6 | | 3 | 35 | | 4 | 8 | | 5 | 17 | | 6 | 11 | | 7 | 11 | | 8 | 20 | | 9 | 23 | | 10 | 3 | | 11 | 13 | | 12 | 7 | | 13 | 26 | | 14 | 7 | | 15 | 7 | | 16 | 4 | | 17 | 3 | | 18 | 27 | | 19 | 33 | | 20 | 3 | | 21 | 13 | | 22 | 8 | | 23 | 24 | | 24 | 7 | | 25 | 5 | | 26 | 2 | | 27 | 30 | | 28 | 6 | | 29 | 9 | | 30 | 4 | | 31 | 7 | | 32 | 25 | | 33 | 4 | | 34 | 3 | | 35 | 17 | | 36 | 5 | | 37 | 12 | | 38 | 27 | | 39 | 5 | | 40 | 21 | | 41 | 7 | | 42 | 14 | | 43 | 6 | | 44 | 18 | | 45 | 7 | | 46 | 29 | | 47 | 20 | | 48 | 3 | | 49 | 28 |
| |
| 66.26% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.41975308641975306 | | totalSentences | 81 | | uniqueOpeners | 34 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 43 | | matches | (empty) | | ratio | 0 | |
| 6.05% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 23 | | totalSentences | 43 | | matches | | 0 | "She didn't move to unlatch" | | 1 | "He tilted his head, and" | | 2 | "She held the door a" | | 3 | "She'd told herself she was" | | 4 | "She'd told herself a lot" | | 5 | "She stepped back." | | 6 | "He set the tip of" | | 7 | "He ran a gloved finger" | | 8 | "It unsettled her more than" | | 9 | "She crossed her arms." | | 10 | "He said it plainly, no" | | 11 | "She heard the cane tap" | | 12 | "She turned then." | | 13 | "He was nearer than she'd" | | 14 | "His mismatched eyes held hers" | | 15 | "she said, and her voice" | | 16 | "He set the cane against" | | 17 | "His jaw tightened" | | 18 | "She laughed—short, disbelieving, wet at" | | 19 | "He reached up, slow enough" |
| | ratio | 0.535 | |
| 29.77% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 37 | | totalSentences | 43 | | matches | | 0 | "The deadbolts came undone one" | | 1 | "Rory looked out through the" | | 2 | "The hallway light had burned" | | 3 | "She didn't move to unlatch" | | 4 | "He tilted his head, and" | | 5 | "She held the door a" | | 6 | "She'd told herself she was" | | 7 | "She'd told herself a lot" | | 8 | "The chain slid free." | | 9 | "She stepped back." | | 10 | "Lucien came in like he'd" | | 11 | "He set the tip of" | | 12 | "He ran a gloved finger" | | 13 | "Lucien Moreau did not look" | | 14 | "It unsettled her more than" | | 15 | "She crossed her arms." | | 16 | "He said it plainly, no" | | 17 | "Ptolemy leapt onto the table" | | 18 | "Rory used the moment to" | | 19 | "The kettle began its low" |
| | ratio | 0.86 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 43 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 15 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 45 | | tagDensity | 0.244 | | leniency | 0.489 | | rawRatio | 0 | | effectiveRatio | 0 | |