| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 42 | | tagDensity | 0.095 | | leniency | 0.19 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.13% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1009 | | totalAiIsmAdverbs | 3 | | 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) | |
| 80.18% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1009 | | totalAiIsms | 4 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "practiced ease" | | count | 1 |
|
| | highlights | | 0 | "charm" | | 1 | "weight" | | 2 | "silence" | | 3 | "practiced ease" |
| |
| 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 | 31 | | matches | (empty) | |
| 96.77% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 31 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 68 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 58 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1012 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 670 | | uniqueNames | 9 | | maxNameDensity | 0.9 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 6 | | Shoreditch | 1 | | Eva | 3 | | Lucien | 4 | | Moreau | 1 | | Thames | 1 | | Evan | 1 | | Golden | 1 | | Empress | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Lucien" | | 3 | "Moreau" | | 4 | "Evan" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 28 | | glossingSentenceCount | 2 | | matches | | 0 | "not quite a smile" | | 1 | "quite catch the light right, and she'd asked around, quietly, hoping word wouldn't travel back to the one person she'd been trying so hard not to think about" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1012 | | matches | (empty) | |
| 68.63% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 68 | | matches | | 0 | "picked that moment" | | 1 | "hated that he" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 49 | | mean | 20.65 | | std | 23.88 | | cv | 1.156 | | sampleLengths | | 0 | 69 | | 1 | 5 | | 2 | 5 | | 3 | 56 | | 4 | 3 | | 5 | 5 | | 6 | 57 | | 7 | 3 | | 8 | 3 | | 9 | 17 | | 10 | 2 | | 11 | 60 | | 12 | 7 | | 13 | 14 | | 14 | 12 | | 15 | 77 | | 16 | 8 | | 17 | 2 | | 18 | 73 | | 19 | 3 | | 20 | 6 | | 21 | 6 | | 22 | 21 | | 23 | 23 | | 24 | 4 | | 25 | 2 | | 26 | 2 | | 27 | 71 | | 28 | 15 | | 29 | 4 | | 30 | 3 | | 31 | 29 | | 32 | 63 | | 33 | 11 | | 34 | 5 | | 35 | 26 | | 36 | 3 | | 37 | 1 | | 38 | 58 | | 39 | 2 | | 40 | 28 | | 41 | 3 | | 42 | 11 | | 43 | 68 | | 44 | 4 | | 45 | 12 | | 46 | 23 | | 47 | 10 | | 48 | 17 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 31 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 119 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 68 | | ratio | 0.059 | | matches | | 0 | "Behind her, the flat exhaled its usual chaos — stacks of Eva's research notes leaning like drunk soldiers, candle wax pooled on saucers, the smell of old paper and cardamom from the curry house below seeping through the floorboards." | | 1 | "She remembered the last time they'd stood close like this — a warehouse near the Thames, the smell of blood and ozone, his hand closing over her wrist right where the crescent scar sat, and the words that came after that she'd spent three weeks trying to forget." | | 2 | "She hated how easily he still did that — dismantled her irritation with three plain words and that infuriating stillness he wore like a second suit." | | 3 | "\"— or you're in trouble and too proud to say so.\"" |
| |
| 84.54% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 659 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.057663125948406675 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.015174506828528073 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 68 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 68 | | mean | 14.88 | | std | 13.64 | | cv | 0.917 | | sampleLengths | | 0 | 24 | | 1 | 45 | | 2 | 5 | | 3 | 5 | | 4 | 16 | | 5 | 14 | | 6 | 26 | | 7 | 3 | | 8 | 5 | | 9 | 19 | | 10 | 38 | | 11 | 3 | | 12 | 3 | | 13 | 10 | | 14 | 7 | | 15 | 2 | | 16 | 39 | | 17 | 5 | | 18 | 16 | | 19 | 7 | | 20 | 14 | | 21 | 12 | | 22 | 32 | | 23 | 2 | | 24 | 39 | | 25 | 4 | | 26 | 8 | | 27 | 2 | | 28 | 25 | | 29 | 48 | | 30 | 3 | | 31 | 6 | | 32 | 6 | | 33 | 17 | | 34 | 4 | | 35 | 23 | | 36 | 4 | | 37 | 2 | | 38 | 2 | | 39 | 13 | | 40 | 26 | | 41 | 32 | | 42 | 15 | | 43 | 4 | | 44 | 3 | | 45 | 6 | | 46 | 23 | | 47 | 28 | | 48 | 35 | | 49 | 11 |
| |
| 75.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.4852941176470588 | | totalSentences | 68 | | uniqueOpeners | 33 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 30 | | matches | | 0 | "Just stood there, amber eye" |
| | ratio | 0.033 | |
| 46.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 13 | | totalSentences | 30 | | matches | | 0 | "He didn't move, didn't reach" | | 1 | "She didn't close the door" | | 2 | "He shifted his weight onto" | | 3 | "She remembered the last time" | | 4 | "He said it simply, without" | | 5 | "She hated how easily he" | | 6 | "She thought of Evan, briefly," | | 7 | "He looked past her, into" | | 8 | "His voice dropped, losing some" | | 9 | "She opened her mouth to" | | 10 | "She hated that he could" | | 11 | "She stared at him, rain-damp" | | 12 | "She stepped back, holding the" |
| | ratio | 0.433 | |
| 26.67% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 26 | | totalSentences | 30 | | matches | | 0 | "The three deadbolts took Rory" | | 1 | "He didn't move, didn't reach" | | 2 | "Ptolemy picked that moment to" | | 3 | "Rory crossed her arms, leaning" | | 4 | "The corner of his mouth" | | 5 | "Rory didn't invite him in." | | 6 | "She didn't close the door" | | 7 | "He shifted his weight onto" | | 8 | "Everything about Lucien was a" | | 9 | "Rain dripped off the edge" | | 10 | "She remembered the last time" | | 11 | "He said it simply, without" | | 12 | "The words landed somewhere in" | | 13 | "She hated how easily he" | | 14 | "She thought of Evan, briefly," | | 15 | "That, finally, made him go" | | 16 | "He looked past her, into" | | 17 | "His voice dropped, losing some" | | 18 | "She opened her mouth to" | | 19 | "The rain kept falling behind" |
| | ratio | 0.867 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 30 | | matches | (empty) | | ratio | 0 | |
| 77.92% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 2 | | matches | | 0 | "She remembered the last time they'd stood close like this — a warehouse near the Thames, the smell of blood and ozone, his hand closing over her wrist right whe…" | | 1 | "There'd been a man following her deliveries for the Golden Empress the past two days, a man with eyes that didn't quite catch the light right, and she'd asked a…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 42 | | tagDensity | 0.024 | | leniency | 0.048 | | rawRatio | 0 | | effectiveRatio | 0 | |