| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 95 | | tagDensity | 0.253 | | leniency | 0.505 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 87.62% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1616 | | totalAiIsmAdverbs | 4 | | 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) | |
| 90.72% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1616 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "silence" | | 1 | "eyebrow" | | 2 | "roaring" |
| |
| 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 | 1 | | hedgeCount | 0 | | narrationSentences | 71 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 143 | | 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 | 5 | | markdownWords | 7 | | totalWords | 1619 | | ratio | 0.004 | | matches | | 0 | "expensive" | | 1 | "watching" | | 2 | "transferred" | | 3 | "you" | | 4 | "Things fall apart." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 28 | | unquotedAttributions | 0 | | matches | (empty) | |
| 12.28% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 59 | | wordCount | 835 | | uniqueNames | 15 | | maxNameDensity | 2.75 | | worstName | "Naomi" | | maxWindowNameDensity | 4.5 | | worstWindowName | "Naomi" | | discoveredNames | | Aurora | 20 | | London | 2 | | Fernet | 1 | | Naomi | 23 | | Okonkwo | 1 | | Cardiff | 2 | | Christ | 1 | | French | 1 | | Talisker | 1 | | Bristol | 1 | | Started | 1 | | Frith | 1 | | Street | 1 | | Silas | 2 | | Yeats | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Naomi" | | 2 | "Okonkwo" | | 3 | "Started" | | 4 | "Silas" |
| | places | | 0 | "London" | | 1 | "Cardiff" | | 2 | "French" | | 3 | "Bristol" | | 4 | "Frith" | | 5 | "Street" |
| | globalScore | 0.123 | | windowScore | 0.167 | |
| 87.50% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 40 | | glossingSentenceCount | 1 | | matches | | 0 | "quite adhere, and there she was underneath it, twenty-two and furious and full of intent" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1619 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 143 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 93 | | mean | 17.41 | | std | 21.06 | | cv | 1.21 | | sampleLengths | | 0 | 53 | | 1 | 87 | | 2 | 12 | | 3 | 7 | | 4 | 3 | | 5 | 64 | | 6 | 33 | | 7 | 1 | | 8 | 11 | | 9 | 3 | | 10 | 56 | | 11 | 1 | | 12 | 43 | | 13 | 8 | | 14 | 2 | | 15 | 9 | | 16 | 32 | | 17 | 4 | | 18 | 3 | | 19 | 12 | | 20 | 7 | | 21 | 49 | | 22 | 2 | | 23 | 10 | | 24 | 70 | | 25 | 7 | | 26 | 1 | | 27 | 10 | | 28 | 8 | | 29 | 7 | | 30 | 1 | | 31 | 22 | | 32 | 7 | | 33 | 6 | | 34 | 24 | | 35 | 54 | | 36 | 10 | | 37 | 24 | | 38 | 5 | | 39 | 4 | | 40 | 11 | | 41 | 1 | | 42 | 14 | | 43 | 61 | | 44 | 3 | | 45 | 6 | | 46 | 4 | | 47 | 27 | | 48 | 26 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 71 | | matches | | |
| 64.86% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 148 | | matches | | 0 | "was reading" | | 1 | "was cataloguing" | | 2 | "was rearranging" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 143 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 802 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 15 | | adverbRatio | 0.018703241895261846 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.0024937655860349127 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 143 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 143 | | mean | 11.32 | | std | 11.91 | | cv | 1.052 | | sampleLengths | | 0 | 20 | | 1 | 9 | | 2 | 13 | | 3 | 2 | | 4 | 9 | | 5 | 1 | | 6 | 23 | | 7 | 36 | | 8 | 27 | | 9 | 3 | | 10 | 9 | | 11 | 7 | | 12 | 3 | | 13 | 64 | | 14 | 12 | | 15 | 2 | | 16 | 5 | | 17 | 14 | | 18 | 1 | | 19 | 3 | | 20 | 5 | | 21 | 3 | | 22 | 3 | | 23 | 18 | | 24 | 21 | | 25 | 8 | | 26 | 7 | | 27 | 2 | | 28 | 1 | | 29 | 3 | | 30 | 15 | | 31 | 25 | | 32 | 8 | | 33 | 2 | | 34 | 9 | | 35 | 17 | | 36 | 15 | | 37 | 4 | | 38 | 3 | | 39 | 12 | | 40 | 7 | | 41 | 5 | | 42 | 33 | | 43 | 8 | | 44 | 3 | | 45 | 2 | | 46 | 10 | | 47 | 2 | | 48 | 6 | | 49 | 22 |
| |
| 59.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3986013986013986 | | totalSentences | 143 | | uniqueOpeners | 57 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 54 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 10 | | totalSentences | 54 | | matches | | 0 | "You stopped hearing a place" | | 1 | "She knew the voice before" | | 2 | "Her face did something complicated." | | 3 | "She crossed the room and" | | 4 | "She smelled of a perfume" | | 5 | "She looked at the stool" | | 6 | "She watched Naomi's face when" | | 7 | "Her shoulders came down an" | | 8 | "She thought about the girl" | | 9 | "She'll actually do something." |
| | ratio | 0.185 | |
| 80.37% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 41 | | totalSentences | 54 | | matches | | 0 | "The green neon over the" | | 1 | "You stopped hearing a place" | | 2 | "Silas had gone to the" | | 3 | "The door went." | | 4 | "Aurora looked up." | | 5 | "She knew the voice before" | | 6 | "Hair straightened, pulled back, expensive." | | 7 | "A leather folio under one" | | 8 | "Her face did something complicated." | | 9 | "Naomi laughed, and the laugh" | | 10 | "She crossed the room and" | | 11 | "She smelled of a perfume" | | 12 | "Something with a name in" | | 13 | "She looked at the stool" | | 14 | "Naomi set her folio on" | | 15 | "Aurora poured her a Talisker." | | 16 | "She watched Naomi's face when" | | 17 | "Her shoulders came down an" | | 18 | "The glass paused." | | 19 | "Aurora wiped the bar with" |
| | ratio | 0.759 | |
| 92.59% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 54 | | matches | | | ratio | 0.019 | |
| 12.99% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 4 | | matches | | 0 | "Rain coming down in that London way that wasn't weather so much as atmosphere, the pavement outside slick and orange under the streetlamps." | | 1 | "Silas had gone to the cellar for the good gin, which meant he'd be twenty minutes because the good gin lived behind six crates of tonic and he liked to take his…" | | 2 | "There was a thin gold chain at her throat and a ring on her right hand that hadn't been there in Cardiff, and Aurora noticed she was cataloguing again, the way …" | | 3 | "Aurora had seen it a few times now, on the phone with her mother mostly, that particular silence that meant someone was rearranging their idea of you and findin…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 1 | | matches | | 0 | "Naomi laughed, and the laugh was the same, thank Christ, the laugh hadn't been renovated" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 2 | | fancyTags | | 0 | "Naomi laughed (laugh)" | | 1 | "Naomi laughed (laugh)" |
| | dialogueSentences | 95 | | tagDensity | 0.126 | | leniency | 0.253 | | rawRatio | 0.167 | | effectiveRatio | 0.042 | |