| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 77 | | tagDensity | 0.221 | | leniency | 0.442 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 97.41% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1929 | | 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) | |
| 81.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1929 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "scanned" | | 1 | "silk" | | 2 | "silence" | | 3 | "resolved" | | 4 | "sense of" | | 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 | 104 | | matches | (empty) | |
| 87.91% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 104 | | filterMatches | | | hedgeMatches | | 0 | "tended to" | | 1 | "started to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 164 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1901 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 0 | | matches | (empty) | |
| 16.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 86 | | wordCount | 1269 | | uniqueNames | 26 | | maxNameDensity | 2.29 | | worstName | "Rory" | | maxWindowNameDensity | 4.5 | | worstWindowName | "Rory" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Tuesday | 1 | | Rory | 29 | | Czech | 1 | | Silas | 8 | | Wales | 1 | | November | 1 | | Niamh | 25 | | Gallagher | 1 | | Carhartt | 1 | | Cardiff | 1 | | Central | 1 | | Library | 1 | | Boots | 1 | | Breton-stripe | 1 | | Arsenal | 2 | | Evan | 1 | | Jaffa | 1 | | Cakes | 1 | | Western | 1 | | Mail | 1 | | Recalibrated | 1 | | Drew | 1 | | Soho | 1 | | Jameson | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Rory" | | 3 | "Silas" | | 4 | "Niamh" | | 5 | "Gallagher" | | 6 | "Evan" | | 7 | "Drew" | | 8 | "Jameson" |
| | places | | 0 | "Wales" | | 1 | "Cardiff" | | 2 | "Central" | | 3 | "Library" | | 4 | "Boots" | | 5 | "Soho" |
| | globalScore | 0.357 | | windowScore | 0.167 | |
| 71.88% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like Wales" | | 1 | "as if sensing the shift in atmospheric pressure, pulled a bottle of whiskey from the shelf and poured two measures into short glasses" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1901 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 164 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 88 | | mean | 21.6 | | std | 22.58 | | cv | 1.045 | | sampleLengths | | 0 | 88 | | 1 | 53 | | 2 | 52 | | 3 | 7 | | 4 | 84 | | 5 | 17 | | 6 | 20 | | 7 | 8 | | 8 | 10 | | 9 | 1 | | 10 | 61 | | 11 | 8 | | 12 | 32 | | 13 | 5 | | 14 | 44 | | 15 | 7 | | 16 | 56 | | 17 | 27 | | 18 | 5 | | 19 | 3 | | 20 | 5 | | 21 | 36 | | 22 | 9 | | 23 | 53 | | 24 | 2 | | 25 | 17 | | 26 | 35 | | 27 | 10 | | 28 | 30 | | 29 | 4 | | 30 | 2 | | 31 | 22 | | 32 | 3 | | 33 | 4 | | 34 | 10 | | 35 | 3 | | 36 | 4 | | 37 | 8 | | 38 | 29 | | 39 | 70 | | 40 | 6 | | 41 | 16 | | 42 | 36 | | 43 | 41 | | 44 | 4 | | 45 | 4 | | 46 | 12 | | 47 | 81 | | 48 | 12 | | 49 | 15 |
| |
| 95.14% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 104 | | matches | | 0 | "been made" | | 1 | "were painted" | | 2 | "was gone" |
| |
| 82.01% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 226 | | matches | | 0 | "was going was spreading" | | 1 | "was processing" | | 2 | "was closing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 164 | | ratio | 0.073 | | matches | | 0 | "She perched on the second stool from the end of the bar—her stool, the one with the wobble that nobody else wanted—and peeled the label off a bottle of Czech lager while Silas wiped down glasses behind the counter." | | 1 | "Cold November air shouldered in and stirred the photographs on the nearest wall—their corners lifting, then settling." | | 2 | "Taller than Rory remembered, or maybe that was the boots—knee-high, leather, expensive." | | 3 | "She stopped a foot away, close enough that Rory could smell her perfume—something cedar and deliberate, nothing like the vanilla body spray from the Boots clearance shelf she used to drown herself in." | | 4 | "He caught Rory's eye for half a beat—a question in it, or an offer—and she gave the faintest shake of her head." | | 5 | "This was a thing she'd gotten good at—stating facts without offering the seams around them, without letting anyone pull the thread that led to Evan and the year she'd spent unlearning the dimensions of a room she'd been afraid to cross." | | 6 | "Niamh laughed—a real one, breaking through the varnish." | | 7 | "He set them between the women without comment and limped back to his end of the bar, favoring his left leg more than usual—the cold always made it worse." | | 8 | "The whiskey was Jameson—Silas always knew." | | 9 | "Not a cry—she held it back—but the precursor, the tectonic shift before the surface breaks." | | 10 | "It broke across her face before she could shape it into something more guarded, and she saw Niamh register it—the old, unmanaged version of her, surfacing." | | 11 | "Niamh stood, pulled her coat closed, and looked at Rory with an expression caught between the girl she'd been and the woman she'd made herself into—both of them visible at once, layered like a double exposure." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1291 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.022463206816421378 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.006196746707978312 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 164 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 164 | | mean | 11.59 | | std | 10.79 | | cv | 0.931 | | sampleLengths | | 0 | 12 | | 1 | 39 | | 2 | 37 | | 3 | 6 | | 4 | 47 | | 5 | 3 | | 6 | 17 | | 7 | 32 | | 8 | 7 | | 9 | 4 | | 10 | 12 | | 11 | 20 | | 12 | 48 | | 13 | 5 | | 14 | 2 | | 15 | 10 | | 16 | 4 | | 17 | 16 | | 18 | 8 | | 19 | 9 | | 20 | 1 | | 21 | 1 | | 22 | 19 | | 23 | 33 | | 24 | 9 | | 25 | 8 | | 26 | 10 | | 27 | 18 | | 28 | 4 | | 29 | 5 | | 30 | 2 | | 31 | 19 | | 32 | 23 | | 33 | 7 | | 34 | 17 | | 35 | 22 | | 36 | 17 | | 37 | 10 | | 38 | 9 | | 39 | 3 | | 40 | 5 | | 41 | 5 | | 42 | 3 | | 43 | 5 | | 44 | 3 | | 45 | 8 | | 46 | 5 | | 47 | 15 | | 48 | 5 | | 49 | 4 |
| |
| 47.97% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3353658536585366 | | totalSentences | 164 | | uniqueOpeners | 55 | |
| 38.76% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 86 | | matches | | 0 | "Then Niamh straightened her shoulders" |
| | ratio | 0.012 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 23 | | totalSentences | 86 | | matches | | 0 | "She perched on the second" | | 1 | "She hadn't intended to stay" | | 2 | "She'd come down from the" | | 3 | "Her copper hair had been" | | 4 | "She wore a camel-colored coat" | | 5 | "Her gaze passed over Rory," | | 6 | "She stopped a foot away," | | 7 | "Her coat fell open to" | | 8 | "She raised a hand toward" | | 9 | "He caught Rory's eye for" | | 10 | "He moved to the far" | | 11 | "Her nails were painted a" | | 12 | "She gestured at the room," | | 13 | "It was a different smile" | | 14 | "She kept her voice even." | | 15 | "She pointed at the ceiling." | | 16 | "He'd moved on to polishing" | | 17 | "She pressed her thumb into" | | 18 | "She caught herself" | | 19 | "He set them between the" |
| | ratio | 0.267 | |
| 0.70% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 79 | | totalSentences | 86 | | matches | | 0 | "The Raven's Nest sat half-empty" | | 1 | "She perched on the second" | | 2 | "The green neon from the" | | 3 | "She hadn't intended to stay" | | 4 | "She'd come down from the" | | 5 | "The door opened." | | 6 | "A woman stood in the" | | 7 | "Rory's fingers went still on" | | 8 | "The woman was tall." | | 9 | "Her copper hair had been" | | 10 | "She wore a camel-colored coat" | | 11 | "That was six years ago." | | 12 | "Rory had stopped counting sometime" | | 13 | "Niamh scanned the room." | | 14 | "Her gaze passed over Rory," | | 15 | "Neither of them spoke for" | | 16 | "Niamh let go of the" | | 17 | "Niamh crossed the room in" | | 18 | "She stopped a foot away," | | 19 | "Niamh pulled out the stool" |
| | ratio | 0.919 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 86 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 9 | | matches | | 0 | "The Raven's Nest sat half-empty on a Tuesday, which suited Rory fine." | | 1 | "She'd come down from the flat to grab a bag of crisps and ended up nursing the lager because the alternative was going back upstairs to stare at the damp patch …" | | 2 | "A woman stood in the doorway with a rolling suitcase and an expression that suggested she'd walked into the wrong place but wasn't entirely sure she wanted to l…" | | 3 | "He moved to the far end of the counter and began reorganizing bottles that didn't need reorganizing." | | 4 | "This was a thing she'd gotten good at—stating facts without offering the seams around them, without letting anyone pull the thread that led to Evan and the year…" | | 5 | "The girl who'd sat on Rory's bedroom floor at sixteen, eating Jaffa Cakes and reading out the most absurd personal ads from the back of the Western Mail in dram…" | | 6 | "The girl who'd held Rory's hand in the back of an ambulance when her mum had her first seizure, who'd driven her home after in a car she barely knew how to driv…" | | 7 | "Silas, as if sensing the shift in atmospheric pressure, pulled a bottle of whiskey from the shelf and poured two measures into short glasses." | | 8 | "Silas had moved to the far side of the room, adjusting a photograph on the wall, giving them space with the precision of a man who understood exactly what conve…" |
| |
| 95.59% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 1 | | matches | | 0 | "Niamh crossed, the suitcase abandoned by the door" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 77 | | tagDensity | 0.104 | | leniency | 0.208 | | rawRatio | 0 | | effectiveRatio | 0 | |