| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 36 | | tagDensity | 0.444 | | leniency | 0.889 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.52% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1381 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "suddenly" | | 1 | "very" | | 2 | "completely" |
| |
| 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) | |
| 45.69% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1381 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "shattered" | | 1 | "crystal" | | 2 | "etched" | | 3 | "lilt" | | 4 | "silk" | | 5 | "trembled" | | 6 | "perfect" | | 7 | "sense of" | | 8 | "weight" | | 9 | "flicked" | | 10 | "calculating" | | 11 | "echoed" | | 12 | "pulsed" |
| |
| 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 | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 69 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1372 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 52 | | wordCount | 915 | | uniqueNames | 16 | | maxNameDensity | 1.86 | | worstName | "Eva" | | maxWindowNameDensity | 4 | | worstWindowName | "Eva" | | discoveredNames | | Rory | 14 | | Cardiff | 2 | | Pilates | 1 | | Kensington | 1 | | London | 1 | | Silas | 6 | | Prague | 2 | | Soho | 1 | | Eva | 17 | | Hard | 1 | | Carter | 1 | | Bute | 1 | | Park | 1 | | French | 1 | | Abercrombie | 1 | | Fitch | 1 |
| | persons | | 0 | "Rory" | | 1 | "Silas" | | 2 | "Eva" | | 3 | "Carter" |
| | places | | 0 | "Cardiff" | | 1 | "Kensington" | | 2 | "London" | | 3 | "Prague" | | 4 | "Soho" | | 5 | "Bute" | | 6 | "Park" |
| | globalScore | 0.571 | | windowScore | 0.333 | |
| 55.66% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 2 | | matches | | 0 | "sounded like cocking mechanisms" | | 1 | "quite mask the sour adrenaline sweating through her pores" |
| |
| 54.23% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.458 | | wordCount | 1372 | | matches | | 0 | "Not just the years, but the specific gravity of choices" | | 1 | "not cigarettes but a snub-nosed revolver" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 90 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 50.81 | | std | 30.3 | | cv | 0.596 | | sampleLengths | | 0 | 118 | | 1 | 6 | | 2 | 54 | | 3 | 37 | | 4 | 97 | | 5 | 52 | | 6 | 63 | | 7 | 42 | | 8 | 90 | | 9 | 30 | | 10 | 56 | | 11 | 1 | | 12 | 41 | | 13 | 53 | | 14 | 40 | | 15 | 45 | | 16 | 2 | | 17 | 86 | | 18 | 25 | | 19 | 96 | | 20 | 30 | | 21 | 65 | | 22 | 38 | | 23 | 60 | | 24 | 34 | | 25 | 97 | | 26 | 14 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 69 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 150 | | matches | | 0 | "wasn't looking" | | 1 | "was looking" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 90 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 761 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 26 | | adverbRatio | 0.03416557161629435 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005256241787122208 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 15.24 | | std | 10.87 | | cv | 0.713 | | sampleLengths | | 0 | 14 | | 1 | 27 | | 2 | 22 | | 3 | 27 | | 4 | 28 | | 5 | 6 | | 6 | 26 | | 7 | 28 | | 8 | 12 | | 9 | 20 | | 10 | 5 | | 11 | 2 | | 12 | 17 | | 13 | 14 | | 14 | 18 | | 15 | 31 | | 16 | 15 | | 17 | 5 | | 18 | 15 | | 19 | 13 | | 20 | 19 | | 21 | 13 | | 22 | 12 | | 23 | 3 | | 24 | 17 | | 25 | 18 | | 26 | 8 | | 27 | 31 | | 28 | 3 | | 29 | 9 | | 30 | 15 | | 31 | 11 | | 32 | 21 | | 33 | 34 | | 34 | 9 | | 35 | 17 | | 36 | 4 | | 37 | 20 | | 38 | 36 | | 39 | 1 | | 40 | 13 | | 41 | 1 | | 42 | 27 | | 43 | 24 | | 44 | 19 | | 45 | 10 | | 46 | 5 | | 47 | 18 | | 48 | 17 | | 49 | 15 |
| |
| 62.22% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.4 | | totalSentences | 90 | | uniqueOpeners | 36 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 61 | | matches | (empty) | | ratio | 0 | |
| 69.18% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 23 | | totalSentences | 61 | | matches | | 0 | "Her hair, once dyed mermaid" | | 1 | "It was the voice that" | | 2 | "She set the surviving glasses" | | 3 | "It didn't reach her eyes," | | 4 | "She crossed the room with" | | 5 | "She didn't look at the" | | 6 | "They all knew Silas was" | | 7 | "His right hand, heavy with" | | 8 | "His limp was barely perceptible" | | 9 | "She ran a manicured nail" | | 10 | "She stepped out from behind" | | 11 | "Her fingers trembled, just once," | | 12 | "She covered it by drinking," | | 13 | "He said nothing, but his" | | 14 | "His gaze flicked to the" | | 15 | "Her voice came out level," | | 16 | "She'd taken Rory's surname as" | | 17 | "She opened the cigarette case" | | 18 | "She wasn't looking at the" | | 19 | "She was looking at her" |
| | ratio | 0.377 | |
| 25.57% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 61 | | matches | | 0 | "The glass shattered against the" | | 1 | "Rory didn't flinch at the" | | 2 | "The woman standing beneath the" | | 3 | "Her hair, once dyed mermaid" | | 4 | "The voice carried Kensington polish" | | 5 | "It was the voice that" | | 6 | "She set the surviving glasses" | | 7 | "The crescent scar on her" | | 8 | "It didn't reach her eyes," | | 9 | "She crossed the room with" | | 10 | "She didn't look at the" | | 11 | "They all knew Silas was" | | 12 | "Silas set down his cloth." | | 13 | "His right hand, heavy with" | | 14 | "His limp was barely perceptible" | | 15 | "Eva shed her coat onto" | | 16 | "The silk blouse beneath was" | | 17 | "She ran a manicured nail" | | 18 | "Rory felt the heat rise" | | 19 | "She stepped out from behind" |
| | ratio | 0.869 | |
| 81.97% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 61 | | matches | | 0 | "When they were going to" |
| | ratio | 0.016 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 8 | | matches | | 0 | "Three years had carved away the softness of shared bedsits and whispered secrets, replacing them with angles that spoke of Pilates studios and appointments kept…" | | 1 | "It was the voice that had once read poetry aloud in the rain, that had screamed into a telephone receiver three winters ago, promising London would fix everythi…" | | 2 | "She covered it by drinking, her throat working in sharp swallows." | | 3 | "Silas shifted his weight, favouring his left leg, the old knee injury from Prague making its presence known through the subtle redistribution of balance." | | 4 | "She was looking at her own reflection in the mirror behind the bar, at the woman who had replaced the girl who'd once sworn loyalty over cheap cider in Bute Par…" | | 5 | "In the dim light, beneath the old black-and-white photographs of men in hats who had plotted coups in this very room decades before, Rory saw the truth." | | 6 | "But the draught carried the scent of Abercrombie & Fitch cologne, the specific musk that had once meant safety and later meant lock your doors." | | 7 | "She saw it in Silas's face, in the way his hand moved from the panic button to the shotgun mounted beneath the bar, in the way Eva reached into her pocket again…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 1 | | fancyTags | | 0 | "Eva whispered (whisper)" |
| | dialogueSentences | 36 | | tagDensity | 0.139 | | leniency | 0.278 | | rawRatio | 0.2 | | effectiveRatio | 0.056 | |