| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said quietly [quietly]" |
| | dialogueSentences | 43 | | tagDensity | 0.233 | | leniency | 0.465 | | rawRatio | 0.1 | | effectiveRatio | 0.047 | |
| 86.20% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1087 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slowly" | | 1 | "really" | | 2 | "slightly" |
| |
| 80.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 35.60% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1087 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "familiar" | | 1 | "sanctuary" | | 2 | "tension" | | 3 | "weight" | | 4 | "traced" | | 5 | "silence" | | 6 | "mechanical" | | 7 | "effortless" | | 8 | "measured" | | 9 | "chill" |
| |
| 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 | 1 | | narrationSentences | 47 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 47 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 80 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1081 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 663 | | uniqueNames | 11 | | maxNameDensity | 1.51 | | worstName | "Marcus" | | maxWindowNameDensity | 3 | | worstWindowName | "Marcus" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Rory | 3 | | Silas | 5 | | London | 3 | | Sullivan | 1 | | Cardiff | 1 | | Welsh | 1 | | Marcus | 10 | | Evan | 2 | | October | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Rory" | | 3 | "Silas" | | 4 | "Sullivan" | | 5 | "Marcus" | | 6 | "Evan" | | 7 | "October" |
| | places | | | globalScore | 0.746 | | windowScore | 0.667 | |
| 91.86% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 43 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.925 | | wordCount | 1081 | | matches | | 0 | "not surprise, exactly, but the confirmation of fears she'd buried deep" |
| |
| 41.67% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 80 | | matches | | 0 | "marks that makeup" | | 1 | "convinced that leaving" | | 2 | "learned that growing" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 23 | | std | 17.21 | | cv | 0.748 | | sampleLengths | | 0 | 63 | | 1 | 4 | | 2 | 55 | | 3 | 1 | | 4 | 24 | | 5 | 19 | | 6 | 35 | | 7 | 15 | | 8 | 40 | | 9 | 5 | | 10 | 29 | | 11 | 23 | | 12 | 46 | | 13 | 9 | | 14 | 14 | | 15 | 31 | | 16 | 13 | | 17 | 41 | | 18 | 24 | | 19 | 1 | | 20 | 23 | | 21 | 3 | | 22 | 10 | | 23 | 38 | | 24 | 3 | | 25 | 34 | | 26 | 52 | | 27 | 3 | | 28 | 6 | | 29 | 31 | | 30 | 10 | | 31 | 19 | | 32 | 5 | | 33 | 33 | | 34 | 2 | | 35 | 56 | | 36 | 3 | | 37 | 19 | | 38 | 47 | | 39 | 5 | | 40 | 27 | | 41 | 2 | | 42 | 23 | | 43 | 16 | | 44 | 33 | | 45 | 39 | | 46 | 47 |
| |
| 97.80% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 47 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 113 | | matches | (empty) | |
| 35.71% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 80 | | ratio | 0.038 | | matches | | 0 | "The boy who'd scaled Cardiff's rooftops with her, who'd shared stolen cigarettes behind the university library, who'd sworn they'd conquer the world together—that boy had been replaced by something hollowed out and careful." | | 1 | "Rory felt something crack in her chest—not surprise, exactly, but the confirmation of fears she'd buried deep." | | 2 | "Instead, she found herself studying the photographs on the wall behind Marcus—black and white faces from decades past, frozen in moments of supposed happiness." |
| |
| 99.69% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 669 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 27 | | adverbRatio | 0.04035874439461883 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.013452914798206279 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 80 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 80 | | mean | 13.51 | | std | 9.28 | | cv | 0.687 | | sampleLengths | | 0 | 23 | | 1 | 25 | | 2 | 15 | | 3 | 4 | | 4 | 22 | | 5 | 33 | | 6 | 1 | | 7 | 18 | | 8 | 6 | | 9 | 15 | | 10 | 4 | | 11 | 9 | | 12 | 26 | | 13 | 9 | | 14 | 6 | | 15 | 10 | | 16 | 30 | | 17 | 5 | | 18 | 11 | | 19 | 18 | | 20 | 11 | | 21 | 12 | | 22 | 7 | | 23 | 39 | | 24 | 9 | | 25 | 14 | | 26 | 15 | | 27 | 16 | | 28 | 13 | | 29 | 9 | | 30 | 32 | | 31 | 7 | | 32 | 17 | | 33 | 1 | | 34 | 10 | | 35 | 13 | | 36 | 3 | | 37 | 10 | | 38 | 7 | | 39 | 18 | | 40 | 13 | | 41 | 3 | | 42 | 34 | | 43 | 28 | | 44 | 24 | | 45 | 3 | | 46 | 6 | | 47 | 7 | | 48 | 24 | | 49 | 5 |
| |
| 94.17% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.5875 | | totalSentences | 80 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 47 | | matches | | 0 | "Then she saw him." | | 1 | "Then something shuttered behind his" | | 2 | "Instead, she found herself studying" |
| | ratio | 0.064 | |
| 49.79% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 47 | | matches | | 0 | "She'd come down from her" | | 1 | "He turned at her voice," | | 2 | "His Welsh accent had flattened" | | 3 | "She approached slowly, reading the" | | 4 | "He gestured to the empty" | | 5 | "She perched on the edge" | | 6 | "He drained his glass and" | | 7 | "She traced the rim of" | | 8 | "He'd been in intelligence long" | | 9 | "His voice carried an edge" | | 10 | "She'd never told Marcus about" | | 11 | "She wanted to explain about" | | 12 | "She'd been so deep in" | | 13 | "she said quietly" | | 14 | "He stood, swaying slightly." | | 15 | "He buttoned his coat with" | | 16 | "She watched him move toward" | | 17 | "He paused at the threshold," | | 18 | "She pushed her half-empty pint" | | 19 | "She looked up at him," |
| | ratio | 0.426 | |
| 66.38% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 37 | | totalSentences | 47 | | matches | | 0 | "The door chime of The" | | 1 | "She'd come down from her" | | 2 | "The bar's dim lighting and" | | 3 | "Marcus Sullivan sat hunched over" | | 4 | "The boy who'd scaled Cardiff's" | | 5 | "He turned at her voice," | | 6 | "His Welsh accent had flattened" | | 7 | "She approached slowly, reading the" | | 8 | "He gestured to the empty" | | 9 | "She perched on the edge" | | 10 | "He drained his glass and" | | 11 | "She traced the rim of" | | 12 | "Marcus laughed, but it came" | | 13 | "Silas appeared with Marcus's refill," | | 14 | "He'd been in intelligence long" | | 15 | "Rory kept her voice neutral," | | 16 | "Marcus stared into his whisky" | | 17 | "The admission hung between them" | | 18 | "Rory felt something crack in" | | 19 | "His voice carried an edge" |
| | ratio | 0.787 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 47 | | matches | | 0 | "Now they were just two" |
| | ratio | 0.021 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 3 | | matches | | 0 | "The boy who'd scaled Cardiff's rooftops with her, who'd shared stolen cigarettes behind the university library, who'd sworn they'd conquer the world together—th…" | | 1 | "Up close, she could see the fine lines around his eyes, the way his expensive suit hung loose on a frame that had lost weight it couldn't afford to lose." | | 2 | "But Marcus was already reaching for his wallet, pulling out notes with the mechanical precision of someone who'd practised the gesture of leaving." |
| |
| 75.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 1 | | matches | | 0 | "Rory kept, but her grip tightened on her glass" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 43 | | tagDensity | 0.023 | | leniency | 0.047 | | rawRatio | 0 | | effectiveRatio | 0 | |