| 73.02% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 31 | | adverbTagCount | 4 | | adverbTags | | 0 | "he said finally [finally]" | | 1 | "Silas's jaw tightened almost [almost]" | | 2 | "She gestured vaguely [vaguely]" | | 3 | "she said again [again]" |
| | dialogueSentences | 63 | | tagDensity | 0.492 | | leniency | 0.984 | | rawRatio | 0.129 | | effectiveRatio | 0.127 | |
| 85.31% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1702 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slightly" | | 1 | "helplessly" | | 2 | "really" |
| |
| 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) | |
| 82.37% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1702 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "flickered" | | 1 | "warmth" | | 2 | "silence" | | 3 | "flicked" | | 4 | "shattered" | | 5 | "weight" |
| |
| 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 | 88 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 88 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 120 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 71 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 10 | | totalWords | 1684 | | ratio | 0.006 | | matches | | 0 | "Drinks. The Nest. 8pm. Don't make me come find you." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 1008 | | uniqueNames | 11 | | maxNameDensity | 1.29 | | worstName | "Silas" | | maxWindowNameDensity | 3 | | worstWindowName | "Silas" | | discoveredNames | | Dean | 1 | | Street | 1 | | Raven | 1 | | Nest | 2 | | Eva | 2 | | Rory | 9 | | Blackwood | 1 | | Wales | 1 | | Prague | 2 | | Cardiff | 1 | | Silas | 13 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Eva" | | 3 | "Rory" | | 4 | "Blackwood" | | 5 | "Silas" |
| | places | | 0 | "Dean" | | 1 | "Street" | | 2 | "Wales" | | 3 | "Prague" | | 4 | "Cardiff" |
| | globalScore | 0.855 | | windowScore | 0.667 | |
| 55.66% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 2 | | matches | | 0 | "not quite a smile" | | 1 | "felt like a beginning" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1684 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 120 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 49 | | mean | 34.37 | | std | 28.23 | | cv | 0.821 | | sampleLengths | | 0 | 62 | | 1 | 53 | | 2 | 9 | | 3 | 63 | | 4 | 86 | | 5 | 14 | | 6 | 32 | | 7 | 26 | | 8 | 44 | | 9 | 5 | | 10 | 3 | | 11 | 6 | | 12 | 10 | | 13 | 24 | | 14 | 66 | | 15 | 27 | | 16 | 17 | | 17 | 55 | | 18 | 11 | | 19 | 64 | | 20 | 2 | | 21 | 63 | | 22 | 62 | | 23 | 3 | | 24 | 51 | | 25 | 8 | | 26 | 52 | | 27 | 62 | | 28 | 11 | | 29 | 6 | | 30 | 114 | | 31 | 65 | | 32 | 73 | | 33 | 2 | | 34 | 92 | | 35 | 32 | | 36 | 23 | | 37 | 5 | | 38 | 64 | | 39 | 38 | | 40 | 18 | | 41 | 32 | | 42 | 62 | | 43 | 2 | | 44 | 13 | | 45 | 25 | | 46 | 16 | | 47 | 5 | | 48 | 6 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 88 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 184 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 120 | | ratio | 0.083 | | matches | | 0 | "Rory pushed through, shaking rain from her black hair, and the warmth of the Raven's Nest swallowed her whole—amber light, the low murmur of conversation, the particular scent of aged wood and spilled whiskey that she'd carried in her memory for three years." | | 1 | "She slid onto a stool at the far end of the bar, where the light fell kinder, and ordered a gin and tonic from the bartender—a young woman with a sleeve of constellations inked up her arm." | | 2 | "He wore a charcoal coat that cost more than Rory's monthly rent, and his left hand—resting on the bar beside his glass of something amber—bore the silver signet ring she remembered from childhood summers at his cottage in Wales." | | 3 | "His knee—she remembered the limp, the way he'd favored his left leg since Prague, though she'd never asked about Prague—shifted slightly, a small adjustment." | | 4 | "\"Same bar. Same secrets.\" A ghost of something moved across his face—not quite a smile." | | 5 | "\"I didn't know where to write.\" He looked at her then, really looked, and she saw the years in him—the lines around his eyes, the grey threading through his beard, the careful way he held himself that spoke of pain he'd learned to manage." | | 6 | "The man in front of her—grey-streaked, limping, wearing a coat that cost more than her bike—was not the Silas she'd known at nineteen." | | 7 | "Then he reached into his coat pocket and withdrew a phone—old, battered, not the smartphone everyone else carried—and slid it across the bar toward her." | | 8 | "He smiled then, really smiled, and it transformed his face—made him younger, made him the boy she'd known, the man she'd loved, the friend she'd lost." | | 9 | "Inside, the bar filled with the ordinary sounds of ordinary lives—glasses clinking, voices rising and falling, someone beginning a story that would be forgotten by morning." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1024 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 37 | | adverbRatio | 0.0361328125 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.0126953125 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 120 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 120 | | mean | 14.03 | | std | 12.73 | | cv | 0.907 | | sampleLengths | | 0 | 19 | | 1 | 43 | | 2 | 6 | | 3 | 22 | | 4 | 16 | | 5 | 2 | | 6 | 1 | | 7 | 6 | | 8 | 4 | | 9 | 5 | | 10 | 37 | | 11 | 6 | | 12 | 20 | | 13 | 13 | | 14 | 20 | | 15 | 14 | | 16 | 39 | | 17 | 6 | | 18 | 8 | | 19 | 5 | | 20 | 23 | | 21 | 4 | | 22 | 17 | | 23 | 9 | | 24 | 5 | | 25 | 15 | | 26 | 24 | | 27 | 5 | | 28 | 3 | | 29 | 6 | | 30 | 9 | | 31 | 1 | | 32 | 15 | | 33 | 9 | | 34 | 7 | | 35 | 43 | | 36 | 16 | | 37 | 7 | | 38 | 10 | | 39 | 10 | | 40 | 6 | | 41 | 11 | | 42 | 27 | | 43 | 8 | | 44 | 10 | | 45 | 10 | | 46 | 7 | | 47 | 4 | | 48 | 20 | | 49 | 42 |
| |
| 43.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.3416666666666667 | | totalSentences | 120 | | uniqueOpeners | 41 | |
| 44.44% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 75 | | matches | | 0 | "Then he reached into his" |
| | ratio | 0.013 | |
| 28.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 75 | | matches | | 0 | "She hadn't planned to come" | | 1 | "She'd planned to cycle home" | | 2 | "She slid onto a stool" | | 3 | "She'd finished half of it" | | 4 | "His auburn hair, streaked with" | | 5 | "He wore a charcoal coat" | | 6 | "She should have seen him" | | 7 | "She'd lived above his bar" | | 8 | "He didn't ask" | | 9 | "He settled onto the stool" | | 10 | "She touched her shoulder, where" | | 11 | "His knee—she remembered the limp," | | 12 | "She turned her glass, watching" | | 13 | "She met his eyes" | | 14 | "he said finally" | | 15 | "She watched the condensation on" | | 16 | "She gestured vaguely, helplessly" | | 17 | "She managed something that might" | | 18 | "She searched for the word" | | 19 | "He stopped, shook his head" |
| | ratio | 0.48 | |
| 13.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 75 | | matches | | 0 | "The green neon sign flickered" | | 1 | "Rory pushed through, shaking rain" | | 2 | "She hadn't planned to come" | | 3 | "She'd planned to cycle home" | | 4 | "Rory laughed despite herself." | | 5 | "Eva never made empty threats." | | 6 | "She slid onto a stool" | | 7 | "The gin arrived cold and" | | 8 | "She'd finished half of it" | | 9 | "Silas Blackwood moved through the" | | 10 | "His auburn hair, streaked with" | | 11 | "He wore a charcoal coat" | | 12 | "She should have seen him" | | 13 | "She'd lived above his bar" | | 14 | "He didn't ask" | | 15 | "He settled onto the stool" | | 16 | "She touched her shoulder, where" | | 17 | "The name hung between them." | | 18 | "Silas's hazel eyes flicked to" | | 19 | "His knee—she remembered the limp," |
| | ratio | 0.893 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 75 | | matches | (empty) | | ratio | 0 | |
| 10.58% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 5 | | matches | | 0 | "At fifty-eight, he still carried himself with the coiled stillness of someone who'd spent decades learning how to be unseen." | | 1 | "He wore a charcoal coat that cost more than Rory's monthly rent, and his left hand—resting on the bar beside his glass of something amber—bore the silver signet…" | | 2 | "The bright blue of hers, the hazel of his, the same as she'd drawn them in the margins of her notebooks at sixteen, when she'd thought she'd marry him, or someo…" | | 3 | "The man in front of her—grey-streaked, limping, wearing a coat that cost more than her bike—was not the Silas she'd known at nineteen." | | 4 | "Inside, the bar filled with the ordinary sounds of ordinary lives—glasses clinking, voices rising and falling, someone beginning a story that would be forgotten…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 31 | | uselessAdditionCount | 1 | | matches | | 0 | "She gestured vaguely, helplessly" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 2 | | fancyTags | | 0 | "He laughed (laugh)" | | 1 | "Silas repeated (repeat)" |
| | dialogueSentences | 63 | | tagDensity | 0.127 | | leniency | 0.254 | | rawRatio | 0.25 | | effectiveRatio | 0.063 | |