| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 1 | | adverbTags | | 0 | "Rory stepped back [back]" |
| | dialogueSentences | 76 | | tagDensity | 0.316 | | leniency | 0.632 | | rawRatio | 0.042 | | effectiveRatio | 0.026 | |
| 96.46% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1413 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 92.92% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1413 | | totalAiIsms | 2 | | found | | | highlights | | |
| 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 | 71 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 71 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 121 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1418 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 655 | | uniqueNames | 8 | | maxNameDensity | 2.44 | | worstName | "Rory" | | maxWindowNameDensity | 5.5 | | worstWindowName | "Carys" | | discoveredNames | | Soho | 1 | | Rory | 16 | | Raven | 1 | | Nest | 1 | | Laila | 1 | | Carys | 15 | | Silas | 4 | | Reeled | 1 |
| | persons | | 0 | "Rory" | | 1 | "Raven" | | 2 | "Laila" | | 3 | "Carys" | | 4 | "Silas" |
| | places | | | globalScore | 0.279 | | windowScore | 0 | |
| 95.65% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 46 | | glossingSentenceCount | 1 | | matches | | 0 | "as if confirming it hadn't run off" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1418 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 121 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 64 | | mean | 22.16 | | std | 20.69 | | cv | 0.934 | | sampleLengths | | 0 | 42 | | 1 | 53 | | 2 | 2 | | 3 | 43 | | 4 | 3 | | 5 | 15 | | 6 | 55 | | 7 | 3 | | 8 | 58 | | 9 | 7 | | 10 | 1 | | 11 | 21 | | 12 | 48 | | 13 | 1 | | 14 | 35 | | 15 | 19 | | 16 | 30 | | 17 | 20 | | 18 | 20 | | 19 | 23 | | 20 | 19 | | 21 | 7 | | 22 | 51 | | 23 | 36 | | 24 | 1 | | 25 | 2 | | 26 | 4 | | 27 | 51 | | 28 | 4 | | 29 | 4 | | 30 | 5 | | 31 | 69 | | 32 | 42 | | 33 | 18 | | 34 | 6 | | 35 | 5 | | 36 | 3 | | 37 | 61 | | 38 | 24 | | 39 | 52 | | 40 | 17 | | 41 | 26 | | 42 | 38 | | 43 | 66 | | 44 | 4 | | 45 | 2 | | 46 | 16 | | 47 | 19 | | 48 | 6 | | 49 | 3 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 71 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 114 | | matches | (empty) | |
| 95.63% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 2 | | semicolonCount | 0 | | flaggedSentences | 2 | | totalSentences | 121 | | ratio | 0.017 | | matches | | 0 | "Behind him the walls held their usual crowd — old maps with ferry routes faded to ghosts, photographs of men in suits two decades gone." | | 1 | "Silas brought the sodas, a bowl of crisps, a dish of pickled eggs nobody had ordered in thirty years, then returned to his glasses — closer to the door now." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 655 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 10 | | adverbRatio | 0.015267175572519083 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0015267175572519084 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 121 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 121 | | mean | 11.72 | | std | 10.03 | | cv | 0.856 | | sampleLengths | | 0 | 9 | | 1 | 33 | | 2 | 11 | | 3 | 31 | | 4 | 7 | | 5 | 4 | | 6 | 2 | | 7 | 21 | | 8 | 14 | | 9 | 8 | | 10 | 3 | | 11 | 10 | | 12 | 5 | | 13 | 11 | | 14 | 25 | | 15 | 5 | | 16 | 14 | | 17 | 3 | | 18 | 16 | | 19 | 2 | | 20 | 8 | | 21 | 1 | | 22 | 31 | | 23 | 7 | | 24 | 1 | | 25 | 11 | | 26 | 3 | | 27 | 7 | | 28 | 33 | | 29 | 15 | | 30 | 1 | | 31 | 14 | | 32 | 3 | | 33 | 18 | | 34 | 5 | | 35 | 14 | | 36 | 15 | | 37 | 15 | | 38 | 15 | | 39 | 5 | | 40 | 7 | | 41 | 4 | | 42 | 9 | | 43 | 6 | | 44 | 17 | | 45 | 19 | | 46 | 7 | | 47 | 13 | | 48 | 30 | | 49 | 3 |
| |
| 67.77% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.4462809917355372 | | totalSentences | 121 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 64 | | matches | | 0 | "Then noticed that she'd noticed." | | 1 | "Then the smile left, and" | | 2 | "Then, placing each word like" | | 3 | "Somewhere down the street a" |
| | ratio | 0.063 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 64 | | matches | | 0 | "His signet ring clicked against" | | 1 | "He didn't look up." | | 2 | "She parked the thermal bag" | | 3 | "Her black hair had surrendered" | | 4 | "She slid onto a stool" | | 5 | "He built her a lime" | | 6 | "He straightened it on his" | | 7 | "She stood scanning the room" | | 8 | "She swallowed it." | | 9 | "She hovered with her hands" | | 10 | "She stood, and the hug" | | 11 | "They took the corner table" | | 12 | "Her thumb circled the rim" | | 13 | "She tipped her head at" | | 14 | "Her voice dropped on the" | | 15 | "she looked at the table" | | 16 | "She wiped under one eye" | | 17 | "She set the glass down" |
| | ratio | 0.281 | |
| 30.31% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 64 | | matches | | 0 | "The rain reached Soho an" | | 1 | "Silas worked the far end" | | 2 | "His signet ring clicked against" | | 3 | "He didn't look up." | | 4 | "She parked the thermal bag" | | 5 | "Her black hair had surrendered" | | 6 | "She slid onto a stool" | | 7 | "He built her a lime" | | 8 | "He straightened it on his" | | 9 | "The door chimed." | | 10 | "A woman came in shaking" | | 11 | "A bob you could set" | | 12 | "She stood scanning the room" | | 13 | "The phone came down from" | | 14 | "The name Laila arrived on" | | 15 | "She swallowed it." | | 16 | "The woman came closer, umbrella" | | 17 | "She hovered with her hands" | | 18 | "Rory solved it." | | 19 | "She stood, and the hug" |
| | ratio | 0.859 | |
| 78.13% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 64 | | matches | | 0 | "By the time Rory shouldered" |
| | ratio | 0.016 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 21 | | technicalSentenceCount | 1 | | matches | | 0 | "Silas worked the far end of the bar, towel on his shoulder, lifting each glass off the rack and holding it to the lamplight before it went back on the shelf." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 1 | | matches | | 0 | "The woman came, umbrella dripping a small dark map onto the floorboards" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 76 | | tagDensity | 0.053 | | leniency | 0.105 | | rawRatio | 0.25 | | effectiveRatio | 0.026 | |