| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said quietly [quietly]" | | 1 | "His hands tightened around [around]" |
| | dialogueSentences | 49 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0.095 | | effectiveRatio | 0.082 | |
| 89.90% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1981 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "deliberately" | | count | 1 |
| | 2 | | | 3 | |
| | highlights | | 0 | "lightly" | | 1 | "deliberately" | | 2 | "suddenly" | | 3 | "carefully" |
| |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 69.71% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1981 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "flicked" | | 1 | "silence" | | 2 | "pulse" | | 3 | "stomach" | | 4 | "rhythmic" | | 5 | "unreadable" | | 6 | "tension" | | 7 | "unspoken" | | 8 | "perfect" | | 9 | "traced" | | 10 | "glistening" |
| |
| 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 | 105 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 105 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 132 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1967 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 44 | | wordCount | 1473 | | uniqueNames | 18 | | maxNameDensity | 0.75 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 8 | | Moreau | 1 | | Heat | 1 | | Eva | 4 | | Evan | 1 | | Lucien | 11 | | Soho | 1 | | Shoreditch | 1 | | Ptolemy | 5 | | Silas | 1 | | Whitechapel | 1 | | Latin | 1 | | English | 1 | | Brick | 2 | | Lane | 2 | | French | 1 | | London | 1 | | Turkish | 1 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Heat" | | 3 | "Eva" | | 4 | "Evan" | | 5 | "Lucien" | | 6 | "Ptolemy" | | 7 | "Silas" | | 8 | "English" |
| | places | | 0 | "Soho" | | 1 | "Whitechapel" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 79 | | glossingSentenceCount | 1 | | matches | | 0 | "not quite a smile, but something warmer" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.508 | | wordCount | 1967 | | matches | | 0 | "not quite a smile, but something warmer" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 132 | | matches | | 0 | "hated that he do that—walk" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 38.57 | | std | 25.14 | | cv | 0.652 | | sampleLengths | | 0 | 25 | | 1 | 64 | | 2 | 26 | | 3 | 52 | | 4 | 72 | | 5 | 44 | | 6 | 42 | | 7 | 65 | | 8 | 16 | | 9 | 50 | | 10 | 67 | | 11 | 7 | | 12 | 27 | | 13 | 5 | | 14 | 32 | | 15 | 113 | | 16 | 13 | | 17 | 8 | | 18 | 13 | | 19 | 66 | | 20 | 26 | | 21 | 10 | | 22 | 43 | | 23 | 3 | | 24 | 35 | | 25 | 69 | | 26 | 32 | | 27 | 58 | | 28 | 21 | | 29 | 81 | | 30 | 49 | | 31 | 29 | | 32 | 26 | | 33 | 74 | | 34 | 3 | | 35 | 21 | | 36 | 49 | | 37 | 19 | | 38 | 48 | | 39 | 17 | | 40 | 66 | | 41 | 19 | | 42 | 54 | | 43 | 85 | | 44 | 12 | | 45 | 18 | | 46 | 59 | | 47 | 41 | | 48 | 4 | | 49 | 62 |
| |
| 98.58% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 105 | | matches | | 0 | "been poured" | | 1 | "been distracted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 239 | | matches | | 0 | "was slamming" | | 1 | "was learning" | | 2 | "was happening" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 5 | | flaggedSentences | 18 | | totalSentences | 132 | | ratio | 0.136 | | matches | | 0 | "Lucien Moreau stood on the landing as if he had been poured there—immaculate charcoal suit, platinum hair slicked back without a single strand escaping, ivory-handled cane resting lightly against one polished shoe." | | 1 | "The amber of his left eye caught the weak yellow bulb overhead; the black of his right swallowed it whole." | | 2 | "She hated that he could still do that—walk in like the last six months had been a polite interval rather than the freefall they both knew it was." | | 3 | "Eva had begged her to stay after the last run-in with Evan’s old crew; Rory had packed a bag that same night and never quite left." | | 4 | "Or maybe she had been distracted by the newspaper clipping Eva left on the kitchen counter—Lucien’s name, a blurry photograph outside a Soho club, the caption hinting at another of his quietly lethal deals." | | 5 | "The three deadbolts clicked shut behind him one after another; she set each one deliberately, the heavy thunks filling the silence." | | 6 | "Underneath he wore the usual—tailored waistcoat, white shirt open at the throat, the glimpse of collarbone that always made her look away a half-second too late." | | 7 | "She remembered the last time they had stood this close—his flat near Shoreditch, rain hammering the windows, her mouth against the pulse of his throat while his hands mapped her spine like he was learning a language only she spoke." | | 8 | "Rory bent to retrieve it, grateful for the motion, and when she straightened Lucien had moved closer—only a step, but enough that she could see the faint scar along the edge of his jaw he usually hid with shadow." | | 9 | "Instead she felt the old pull—the one that had started the night he first appeared at Silas’s bar with a bonus for information and a smile that never quite reached both eyes the same way." | | 10 | "Lucien’s mouth curved—not quite a smile, but something warmer." | | 11 | "Their fingers brushed around the ceramic; neither pulled away immediately." | | 12 | "His voice stayed low and steady, four languages braided together whenever English failed him, and she watched the way his hands moved—precise, elegant, capable of writing beauty or drawing a blade from a cane and ending a life without either gesture changing." | | 13 | "When Lucien finished, silence settled again—thicker this time, full of everything they had buried under those six months of careful distance." | | 14 | "Rory set her mug down too hard; tea sloshed over her knuckles and she wiped it on her jeans without looking." | | 15 | "His hand lifted—slow, giving her every chance to step back—and brushed a strand of black hair from her cheek." | | 16 | "Then his mouth found hers—careful at first, then deeper when she rose onto her toes and answered." | | 17 | "Lucien’s smile this time reached both eyes—amber bright, black deep and softer somehow." |
| |
| 88.70% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1493 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 79 | | adverbRatio | 0.05291359678499665 | | lyAdverbCount | 20 | | lyAdverbRatio | 0.013395847287340924 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 132 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 132 | | mean | 14.9 | | std | 10.97 | | cv | 0.736 | | sampleLengths | | 0 | 25 | | 1 | 32 | | 2 | 20 | | 3 | 12 | | 4 | 12 | | 5 | 14 | | 6 | 4 | | 7 | 28 | | 8 | 15 | | 9 | 5 | | 10 | 63 | | 11 | 9 | | 12 | 9 | | 13 | 26 | | 14 | 9 | | 15 | 14 | | 16 | 28 | | 17 | 6 | | 18 | 3 | | 19 | 1 | | 20 | 34 | | 21 | 21 | | 22 | 12 | | 23 | 4 | | 24 | 13 | | 25 | 21 | | 26 | 15 | | 27 | 1 | | 28 | 29 | | 29 | 26 | | 30 | 12 | | 31 | 7 | | 32 | 27 | | 33 | 5 | | 34 | 27 | | 35 | 5 | | 36 | 29 | | 37 | 40 | | 38 | 5 | | 39 | 6 | | 40 | 6 | | 41 | 27 | | 42 | 3 | | 43 | 10 | | 44 | 8 | | 45 | 7 | | 46 | 6 | | 47 | 12 | | 48 | 6 | | 49 | 39 |
| |
| 62.88% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.4090909090909091 | | totalSentences | 132 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 95 | | matches | | 0 | "Then the call had come." | | 1 | "Instead she felt the old" | | 2 | "Somewhere a siren wailed and" | | 3 | "Almost something that belonged only" | | 4 | "Then his mouth found hers—careful" |
| | ratio | 0.053 | |
| 51.58% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 95 | | matches | | 0 | "He smelled faintly of cedar" | | 1 | "His accent turned the nickname" | | 2 | "She hated that he could" | | 3 | "She kept her hand on" | | 4 | "His gaze flicked past her" | | 5 | "He tilted his head, the" | | 6 | "She had checked." | | 7 | "She stepped back only because" | | 8 | "she said, and hated how" | | 9 | "He moved past her with" | | 10 | "He turned, and the flat" | | 11 | "She crossed her arms, feeling" | | 12 | "She remembered the last time" | | 13 | "He had left before dawn" | | 14 | "His heterochromatic eyes held hers" | | 15 | "She should have laughed." | | 16 | "It was the leaving that" | | 17 | "she said at last, gesturing" | | 18 | "He sat, folding his long" | | 19 | "She poured two mugs of" |
| | ratio | 0.421 | |
| 49.47% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 78 | | totalSentences | 95 | | matches | | 0 | "The third deadbolt scraped free" | | 1 | "Lucien Moreau stood on the" | | 2 | "The amber of his left" | | 3 | "He smelled faintly of cedar" | | 4 | "His accent turned the nickname" | | 5 | "Heat flooded her cheeks." | | 6 | "She hated that he could" | | 7 | "She kept her hand on" | | 8 | "His gaze flicked past her" | | 9 | "The lie sat thin on" | | 10 | "Eva had begged her to" | | 11 | "He tilted his head, the" | | 12 | "Rory’s fingers tightened on the" | | 13 | "She had checked." | | 14 | "She stepped back only because" | | 15 | "she said, and hated how" | | 16 | "He moved past her with" | | 17 | "The three deadbolts clicked shut" | | 18 | "Ptolemy leapt from the armchair" | | 19 | "Lucien set the cane against" |
| | ratio | 0.821 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 95 | | matches | (empty) | | ratio | 0 | |
| 48.52% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 7 | | matches | | 0 | "Lucien Moreau stood on the landing as if he had been poured there—immaculate charcoal suit, platinum hair slicked back without a single strand escaping, ivory-h…" | | 1 | "The space between them smelled of curry spice seeping up through the floorboards and old paper and the faint ozone that clung to him whenever he was wound tight…" | | 2 | "He sat, folding his long frame into the worn cushions as if the flat had always been waiting for him." | | 3 | "He spoke of a ledger recovered from a collector in Whitechapel, of a name written in a dialect that predated Latin, of a creature that wore faces like coats and…" | | 4 | "She tasted citrus and smoke and the particular bitterness of someone who had rehearsed this moment and still found himself unprepared." | | 5 | "His hands spanned her waist, steady and certain, as if he had been measuring the shape of her remembrance all this time." | | 6 | "She turned toward the beam of floorboards near the scuffed skirting board, heart still hammering a rhythm that had nothing to do with fear." |
| |
| 77.38% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 2 | | matches | | 0 | "She kept, body blocking the threshold" | | 1 | "Rory’s thumb traced, found that faint scar" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 49 | | tagDensity | 0.184 | | leniency | 0.367 | | rawRatio | 0.111 | | effectiveRatio | 0.041 | |