| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 79 | | tagDensity | 0.177 | | leniency | 0.354 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 97.85% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2323 | | totalAiIsmAdverbs | 1 | | 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) | |
| 65.56% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2323 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "warmth" | | 1 | "footsteps" | | 2 | "familiar" | | 3 | "silence" | | 4 | "flickered" | | 5 | "traced" | | 6 | "could feel" | | 7 | "weight" | | 8 | "intensity" | | 9 | "eyebrow" | | 10 | "measured" | | 11 | "tension" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 138 | | matches | (empty) | |
| 91.10% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 3 | | narrationSentences | 138 | | filterMatches | | | hedgeMatches | | 0 | "appeared to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 203 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 62 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 5 | | markdownWords | 9 | | totalWords | 2296 | | ratio | 0.004 | | matches | | 0 | "different" | | 1 | "disappear" | | 2 | "Safe." | | 3 | "you look tired" | | 4 | "have you eaten." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 102 | | wordCount | 1782 | | uniqueNames | 21 | | maxNameDensity | 1.91 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Raven | 1 | | Nest | 2 | | Golden | 2 | | Empress | 2 | | Yu-Fei | 2 | | Rory | 34 | | Soho | 1 | | Thursday | 1 | | Strait | 1 | | Malacca | 1 | | Berlin | 2 | | Silas | 10 | | Gallagher | 1 | | Niamh | 31 | | Cardiff | 4 | | London | 1 | | Past | 2 | | Michaelmas | 1 | | Evan | 1 | | Hackney | 1 | | Two | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Empress" | | 3 | "Yu-Fei" | | 4 | "Rory" | | 5 | "Silas" | | 6 | "Gallagher" | | 7 | "Niamh" | | 8 | "Evan" | | 9 | "Two" |
| | places | | 0 | "Golden" | | 1 | "Soho" | | 2 | "Strait" | | 3 | "Malacca" | | 4 | "Berlin" | | 5 | "Cardiff" | | 6 | "London" | | 7 | "Hackney" |
| | globalScore | 0.546 | | windowScore | 0.5 | |
| 47.96% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 98 | | glossingSentenceCount | 4 | | matches | | 0 | "felt like an accusation" | | 1 | "not quite a laugh, but close" | | 2 | "felt like too much to manage" | | 3 | "looked like it cost her something" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 0.871 | | wordCount | 2296 | | matches | | 0 | "not a boast but a fact stated with the same flatness Niamh might have used t" | | 1 | "not quite a laugh, but close" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 203 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 103 | | mean | 22.29 | | std | 25.27 | | cv | 1.134 | | sampleLengths | | 0 | 89 | | 1 | 61 | | 2 | 9 | | 3 | 7 | | 4 | 56 | | 5 | 4 | | 6 | 13 | | 7 | 82 | | 8 | 4 | | 9 | 32 | | 10 | 1 | | 11 | 43 | | 12 | 93 | | 13 | 6 | | 14 | 3 | | 15 | 41 | | 16 | 14 | | 17 | 16 | | 18 | 72 | | 19 | 9 | | 20 | 8 | | 21 | 35 | | 22 | 17 | | 23 | 5 | | 24 | 18 | | 25 | 10 | | 26 | 41 | | 27 | 8 | | 28 | 7 | | 29 | 7 | | 30 | 6 | | 31 | 62 | | 32 | 5 | | 33 | 3 | | 34 | 2 | | 35 | 11 | | 36 | 51 | | 37 | 8 | | 38 | 23 | | 39 | 6 | | 40 | 32 | | 41 | 37 | | 42 | 5 | | 43 | 25 | | 44 | 9 | | 45 | 19 | | 46 | 1 | | 47 | 7 | | 48 | 25 | | 49 | 1 |
| |
| 97.64% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 138 | | matches | | 0 | "being asked" | | 1 | "being debriefed" | | 2 | "been asked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 313 | | matches | | 0 | "was turning" | | 1 | "was listening" | | 2 | "was looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 203 | | ratio | 0.059 | | matches | | 0 | "She heard the footsteps—heavy, deliberate, the kind made by someone who'd learned to walk into rooms like they belonged there—and then the sharp intake of breath that wasn't hers." | | 1 | "Her eyes—the same sea-glass green Rory remembered—moved over Rory's face with the careful attention of someone cataloging damage." | | 2 | "Rory watched him pour and watched Niamh watch him pour and felt the strange vertigo of two worlds colliding—the London life she'd built brick by careful brick, and the Cardiff life she'd fled." | | 3 | "The place where a smile would have been if things between them hadn't calcified into whatever this was—two women on barstools performing the archaeology of a friendship." | | 4 | "She could feel Niamh watching her, could feel the weight of all the things Niamh had probably pieced together in the years since—the cancelled plans, the bruise on Rory's collarbone she'd blamed on a door frame, the way Rory had stopped coming to pub nights and then stopped answering texts and then stopped existing in any way that could be reached." | | 5 | "She frowned, working through it, and Rory recognized the expression—the same one she'd worn in the Cardiff library hunched over tax codes, worrying a problem like a dog with a knot of rope." | | 6 | "His limp was barely perceptible as he shifted his weight from one foot to the other—a tell Rory had learned to read in the months since she'd moved in." | | 7 | "A sound escaped Niamh—not quite a laugh, but close." | | 8 | "They still carried that particular intensity—the look Niamh had given her across a crowded lecture hall the first day of Michaelmas term, half curious and half decided, as though she'd already made up her mind about something Rory hadn't yet been asked." | | 9 | "She thought of the months after she'd left Evan—the blank stretch of days when alive was, in fact, the bare minimum and even that had felt like too much to manage." | | 10 | "They sat with that for a moment—the impossible request and the honest refusal, balanced between them like a glass on the edge of a table." | | 11 | "Niamh glanced around the Nest—at the old maps, the black-and-white photographs, the dim amber light that made everything look like a memory of itself." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1696 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 51 | | adverbRatio | 0.030070754716981132 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.006485849056603774 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 203 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 203 | | mean | 11.31 | | std | 9.77 | | cv | 0.863 | | sampleLengths | | 0 | 20 | | 1 | 24 | | 2 | 32 | | 3 | 7 | | 4 | 6 | | 5 | 7 | | 6 | 21 | | 7 | 25 | | 8 | 8 | | 9 | 9 | | 10 | 7 | | 11 | 13 | | 12 | 30 | | 13 | 9 | | 14 | 4 | | 15 | 4 | | 16 | 13 | | 17 | 20 | | 18 | 15 | | 19 | 13 | | 20 | 12 | | 21 | 6 | | 22 | 16 | | 23 | 4 | | 24 | 3 | | 25 | 29 | | 26 | 1 | | 27 | 11 | | 28 | 27 | | 29 | 5 | | 30 | 28 | | 31 | 12 | | 32 | 32 | | 33 | 5 | | 34 | 16 | | 35 | 3 | | 36 | 1 | | 37 | 2 | | 38 | 3 | | 39 | 17 | | 40 | 18 | | 41 | 6 | | 42 | 12 | | 43 | 2 | | 44 | 16 | | 45 | 14 | | 46 | 10 | | 47 | 36 | | 48 | 12 | | 49 | 4 |
| |
| 52.38% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 17 | | diversityRatio | 0.3645320197044335 | | totalSentences | 203 | | uniqueOpeners | 74 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 126 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 126 | | matches | | 0 | "Her jacket was damp at" | | 1 | "Her fingers smelled of sesame" | | 2 | "He glanced up when the" | | 3 | "She dropped the bag on" | | 4 | "She'd memorized most of them" | | 5 | "She'd asked Silas about them" | | 6 | "He'd changed the subject with" | | 7 | "She heard the footsteps—heavy, deliberate," | | 8 | "She knew it the way" | | 9 | "She turned on the stool." | | 10 | "Her red hair, once a" | | 11 | "Her eyes—the same sea-glass green" | | 12 | "She trailed off because the" | | 13 | "She moved with an economy" | | 14 | "She took a sip of" | | 15 | "He couldn't help it." | | 16 | "Her nails were clean, filed" | | 17 | "She traced the rim of" | | 18 | "She didn't look up." | | 19 | "She could feel Niamh watching" |
| | ratio | 0.27 | |
| 15.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 112 | | totalSentences | 126 | | matches | | 0 | "The green neon of The" | | 1 | "Rory pushed through the door" | | 2 | "The dinner rush at the" | | 3 | "Her jacket was damp at" | | 4 | "Her fingers smelled of sesame" | | 5 | "The bar sat quiet for" | | 6 | "A couple murmured in the" | | 7 | "Silas stood behind the bar" | | 8 | "He glanced up when the" | | 9 | "She dropped the bag on" | | 10 | "Silas set a whiskey in" | | 11 | "Rory wrapped both hands around" | | 12 | "The warmth was enough." | | 13 | "Rory let her gaze wander" | | 14 | "She'd memorized most of them" | | 15 | "The one nearest the door" | | 16 | "Another pinned behind the bar" | | 17 | "She'd asked Silas about them" | | 18 | "He'd changed the subject with" | | 19 | "The door opened again." |
| | ratio | 0.889 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 126 | | matches | (empty) | | ratio | 0 | |
| 4.61% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 62 | | technicalSentenceCount | 12 | | matches | | 0 | "Silas stood behind the bar drying a glass with the unhurried rotation of a man who had nowhere pressing to be and hadn't in years." | | 1 | "She heard the footsteps—heavy, deliberate, the kind made by someone who'd learned to walk into rooms like they belonged there—and then the sharp intake of breat…" | | 2 | "Niamh Gallagher stood just inside the doorway, rain beading on the shoulders of a charcoal coat that fit her like it had been cut specifically for her frame." | | 3 | "The Niamh she'd known at Cardiff had been all angles and restlessness, knees bouncing under lecture desks, fingers drumming on table edges, a girl who couldn't …" | | 4 | "Rory thought of her delivery bag slumped on the stool beside her, the lingering smell of char siu, the flat upstairs with its radiator that clanked like a priso…" | | 5 | "She could feel Niamh watching her, could feel the weight of all the things Niamh had probably pieced together in the years since—the cancelled plans, the bruise…" | | 6 | "She pressed her fingers to her mouth as though to catch it." | | 7 | "Past the composure and the corporate polish and the new way Niamh held her shoulders, squared and braced, as if the world had taught her that softness was a lia…" | | 8 | "They still carried that particular intensity—the look Niamh had given her across a crowded lecture hall the first day of Michaelmas term, half curious and half …" | | 9 | "Silas offering the flat upstairs at a rent that was almost certainly below market, his only condition being that she not ask questions about the bookshelf in th…" | | 10 | "They came out raw, unvarnished, stripped of the defensive wit she'd used as mortar between herself and everyone who'd ever gotten close enough to matter." | | 11 | "Niamh glanced around the Nest—at the old maps, the black-and-white photographs, the dim amber light that made everything look like a memory of itself." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 79 | | tagDensity | 0.089 | | leniency | 0.177 | | rawRatio | 0 | | effectiveRatio | 0 | |