| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 1 | | adverbTags | | 0 | "Rory said quietly [quietly]" |
| | dialogueSentences | 50 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0.067 | | effectiveRatio | 0.04 | |
| 91.31% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1151 | | totalAiIsmAdverbs | 2 | | found | | 0 | | adverb | "deliberately" | | count | 1 |
| | 1 | |
| | 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) | |
| 91.31% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1151 | | 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 | 48 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 48 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 83 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1145 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 1 | | matches | | 0 | "The bar noise pressed in around the silence between them—glasses, low music, Silas coughing once behind the bar, deliber…" |
| |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 47 | | wordCount | 531 | | uniqueNames | 10 | | maxNameDensity | 3.39 | | worstName | "Eva" | | maxWindowNameDensity | 5 | | worstWindowName | "Eva" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Rory | 16 | | Yu-Fei | 1 | | Silas | 6 | | Brennan | 1 | | Cardiff | 1 | | Eva | 18 | | Whisky | 1 | | Sundays | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Rory" | | 3 | "Yu-Fei" | | 4 | "Silas" | | 5 | "Brennan" | | 6 | "Eva" | | 7 | "Whisky" |
| | places | | | globalScore | 0 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 33 | | 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 | 1145 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 83 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 49 | | mean | 23.37 | | std | 25.12 | | cv | 1.075 | | sampleLengths | | 0 | 66 | | 1 | 18 | | 2 | 4 | | 3 | 25 | | 4 | 2 | | 5 | 84 | | 6 | 1 | | 7 | 14 | | 8 | 40 | | 9 | 7 | | 10 | 34 | | 11 | 21 | | 12 | 5 | | 13 | 3 | | 14 | 4 | | 15 | 21 | | 16 | 4 | | 17 | 4 | | 18 | 74 | | 19 | 2 | | 20 | 5 | | 21 | 57 | | 22 | 6 | | 23 | 69 | | 24 | 52 | | 25 | 2 | | 26 | 3 | | 27 | 33 | | 28 | 63 | | 29 | 3 | | 30 | 1 | | 31 | 46 | | 32 | 3 | | 33 | 3 | | 34 | 38 | | 35 | 69 | | 36 | 5 | | 37 | 6 | | 38 | 30 | | 39 | 5 | | 40 | 12 | | 41 | 19 | | 42 | 10 | | 43 | 88 | | 44 | 42 | | 45 | 14 | | 46 | 4 | | 47 | 7 | | 48 | 17 |
| |
| 90.64% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 48 | | matches | | 0 | "been bolted" | | 1 | "being called" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 91 | | matches | | |
| 39.59% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 83 | | ratio | 0.036 | | matches | | 0 | "Eva used to vibrate—hands, feet, laugh." | | 1 | "The bar noise pressed in around the silence between them—glasses, low music, Silas coughing once behind the bar, deliberately, the way he coughed when he was listening." | | 2 | "Rory looked at her oldest friend—platinum hair, hollow cheeks, hands that no longer shook because she'd taught them not to—and thought about doors and cricket bats and arrivals boards, about all the Sundays she'd spent watching a clock that never struck Eva." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 538 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 20 | | adverbRatio | 0.03717472118959108 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.007434944237918215 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 83 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 83 | | mean | 13.8 | | std | 14.18 | | cv | 1.028 | | sampleLengths | | 0 | 32 | | 1 | 2 | | 2 | 32 | | 3 | 18 | | 4 | 4 | | 5 | 9 | | 6 | 16 | | 7 | 2 | | 8 | 8 | | 9 | 6 | | 10 | 26 | | 11 | 16 | | 12 | 7 | | 13 | 6 | | 14 | 15 | | 15 | 1 | | 16 | 10 | | 17 | 4 | | 18 | 18 | | 19 | 22 | | 20 | 7 | | 21 | 17 | | 22 | 7 | | 23 | 6 | | 24 | 4 | | 25 | 2 | | 26 | 3 | | 27 | 16 | | 28 | 5 | | 29 | 3 | | 30 | 4 | | 31 | 2 | | 32 | 7 | | 33 | 12 | | 34 | 4 | | 35 | 4 | | 36 | 29 | | 37 | 45 | | 38 | 2 | | 39 | 5 | | 40 | 14 | | 41 | 14 | | 42 | 14 | | 43 | 15 | | 44 | 6 | | 45 | 10 | | 46 | 59 | | 47 | 16 | | 48 | 36 | | 49 | 2 |
| |
| 51.41% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.37349397590361444 | | totalSentences | 83 | | uniqueOpeners | 31 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 38 | | matches | | 0 | "Too loud for a drop-off," | | 1 | "Somewhere behind her a fruit" |
| | ratio | 0.053 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 2 | | totalSentences | 38 | | matches | | 0 | "He set down two fresh" | | 1 | "She looked at Rory the" |
| | ratio | 0.053 | |
| 38.95% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 32 | | totalSentences | 38 | | matches | | 0 | "The green neon sign of" | | 1 | "Silas called from behind the" | | 2 | "Silas nodded toward a corner" | | 3 | "The woman in the booth" | | 4 | "That was the first wrong" | | 5 | "Eva Brennan had worn black" | | 6 | "The second wrong thing was" | | 7 | "Eva used to vibrate—hands, feet," | | 8 | "This Eva sat with her" | | 9 | "The bag slid off Rory's" | | 10 | "Eva's smile held for two" | | 11 | "Eva pushed the second glass" | | 12 | "Whisky, Rory's pour, two fingers," | | 13 | "The leather creaked." | | 14 | "The whisky burned and she" | | 15 | "Eva's fingers found the stem" | | 16 | "A couple at the next" | | 17 | "Rory watched Eva not-flinch at" | | 18 | "Eva used to flinch at" | | 19 | "Eva's mouth twisted" |
| | ratio | 0.842 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 38 | | matches | | 0 | "Now it sat cropped and" | | 1 | "Now she sat sealed inside" |
| | ratio | 0.053 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 17 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 1 | | matches | | 0 | "Silas called, not looking up" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 50 | | tagDensity | 0.16 | | leniency | 0.32 | | rawRatio | 0 | | effectiveRatio | 0 | |