| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 1 | | adverbTags | | 0 | "Herrera's hand flexed around [around]" |
| | dialogueSentences | 38 | | tagDensity | 0.526 | | leniency | 1 | | rawRatio | 0.05 | | effectiveRatio | 0.05 | |
| 91.88% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2462 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "sharply" | | 1 | "quickly" | | 2 | "slightly" | | 3 | "really" |
| |
| 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) | |
| 57.35% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2462 | | totalAiIsms | 21 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | word | "practiced ease" | | count | 1 |
| | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "jaw clenched" | | 1 | "glinting" | | 2 | "echoed" | | 3 | "cascading" | | 4 | "crystallized" | | 5 | "constructed" | | 6 | "silk" | | 7 | "scanned" | | 8 | "practiced ease" | | 9 | "pulse" | | 10 | "velvet" | | 11 | "flickered" | | 12 | "pulsed" | | 13 | "dancing" | | 14 | "weight" | | 15 | "vibrated" | | 16 | "raced" | | 17 | "unravel" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
| | 1 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | 0 | "eyes widened" | | 1 | "jaw clenched" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 206 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 4 | | narrationSentences | 206 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 224 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 32 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 7 | | totalWords | 2444 | | ratio | 0.003 | | matches | | 0 | "Don't lose him, Harlow. Not like me." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 86 | | wordCount | 2069 | | uniqueNames | 24 | | maxNameDensity | 1.4 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Harlow | 2 | | Quinn | 29 | | German | 1 | | Charing | 1 | | Cross | 1 | | Road | 2 | | Morris | 5 | | Tomás | 2 | | Herrera | 18 | | Raven | 1 | | Nest | 1 | | Tottenham | 1 | | Court | 1 | | Seville | 1 | | Saint | 3 | | Christopher | 3 | | Veil | 2 | | Market | 2 | | Tube | 3 | | Camden | 1 | | Spanish | 1 | | Merchants | 2 | | London | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Morris" | | 3 | "Tomás" | | 4 | "Herrera" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Market" | | 8 | "Merchants" |
| | places | | 0 | "Soho" | | 1 | "Charing" | | 2 | "Cross" | | 3 | "Road" | | 4 | "Raven" | | 5 | "Tottenham" | | 6 | "Court" | | 7 | "Seville" | | 8 | "London" |
| | globalScore | 0.799 | | windowScore | 0.667 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 147 | | glossingSentenceCount | 9 | | matches | | 0 | "quite see" | | 1 | "looked like he'd stepped out of a Seville" | | 2 | "robes that seemed to swallow light" | | 3 | "looked like a captured thunderstorm" | | 4 | "something like pity" | | 5 | "seemed absolute hungry" | | 6 | "as if landing on something hot" | | 7 | "looked like petrified wood, carved with s" | | 8 | "looked like intertwined femurs and ribcag" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.409 | | wordCount | 2444 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 224 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 75 | | mean | 32.59 | | std | 17.71 | | cv | 0.544 | | sampleLengths | | 0 | 67 | | 1 | 16 | | 2 | 10 | | 3 | 91 | | 4 | 28 | | 5 | 36 | | 6 | 74 | | 7 | 50 | | 8 | 58 | | 9 | 33 | | 10 | 6 | | 11 | 41 | | 12 | 2 | | 13 | 35 | | 14 | 4 | | 15 | 36 | | 16 | 45 | | 17 | 3 | | 18 | 36 | | 19 | 46 | | 20 | 52 | | 21 | 4 | | 22 | 43 | | 23 | 45 | | 24 | 49 | | 25 | 42 | | 26 | 3 | | 27 | 64 | | 28 | 35 | | 29 | 22 | | 30 | 22 | | 31 | 27 | | 32 | 49 | | 33 | 36 | | 34 | 5 | | 35 | 26 | | 36 | 26 | | 37 | 27 | | 38 | 17 | | 39 | 18 | | 40 | 48 | | 41 | 34 | | 42 | 43 | | 43 | 26 | | 44 | 31 | | 45 | 45 | | 46 | 24 | | 47 | 60 | | 48 | 29 | | 49 | 32 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 206 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 368 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 224 | | ratio | 0.067 | | matches | | 0 | "The suspect ahead—some slick bastard in a hooded jacket—dodged between late-night revelers spilling out of pubs, his silhouette cutting sharp against the neon blur." | | 1 | "And right now, every instinct screamed that this chase connected to the pattern she'd been tracking for months—the clique, that shadowy network of freaks and enablers operating just beyond her reach." | | 2 | "She could hear her partner's voice in her head—DS Morris, three years gone now." | | 3 | "This one looked like he'd stepped out of a Seville postcard—warm brown eyes that held secrets older than his twenty-nine years suggested." | | 4 | "Distant sounds drifted up—voices, strange chimes, the shuffle of many feet." | | 5 | "The market was dangerous territory—enchanted goods, banned alchemical substances, information that could get a person killed." | | 6 | "The air hung thick with the scent of myrrh and something sharper—magic, her mind supplied before she could stop it." | | 7 | "There—moving through the throng with practiced ease, Saint Christopher medallion catching the weird light." | | 8 | "A vendor thrust something at her—a necklace of finger bones that clattered like wind chimes." | | 9 | "Eyes—some with vertical pupils, some with no pupils at all—fixed on her rain-soaked form." | | 10 | "Something flickered across Herrera's face—regret, perhaps." | | 11 | "Part of her—the rational detective who'd built her career on evidence and procedure—screamed to call for backup, to retreat, to pretend none of this existed." | | 12 | "The gesture spoke volumes—the weight of secrets, the exhaustion of running." | | 13 | "Light spilled through it—cold, blue, unforgiving." | | 14 | "This was it—the thread that could unravel everything." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 559 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 14 | | adverbRatio | 0.025044722719141325 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.005366726296958855 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 224 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 224 | | mean | 10.91 | | std | 6.12 | | cv | 0.561 | | sampleLengths | | 0 | 14 | | 1 | 13 | | 2 | 16 | | 3 | 24 | | 4 | 9 | | 5 | 7 | | 6 | 3 | | 7 | 4 | | 8 | 3 | | 9 | 21 | | 10 | 14 | | 11 | 10 | | 12 | 5 | | 13 | 10 | | 14 | 31 | | 15 | 6 | | 16 | 22 | | 17 | 4 | | 18 | 11 | | 19 | 14 | | 20 | 4 | | 21 | 3 | | 22 | 5 | | 23 | 4 | | 24 | 4 | | 25 | 26 | | 26 | 21 | | 27 | 4 | | 28 | 10 | | 29 | 10 | | 30 | 19 | | 31 | 9 | | 32 | 12 | | 33 | 7 | | 34 | 15 | | 35 | 9 | | 36 | 10 | | 37 | 17 | | 38 | 11 | | 39 | 18 | | 40 | 4 | | 41 | 6 | | 42 | 3 | | 43 | 11 | | 44 | 5 | | 45 | 22 | | 46 | 2 | | 47 | 6 | | 48 | 9 | | 49 | 20 |
| |
| 54.76% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.36607142857142855 | | totalSentences | 224 | | uniqueOpeners | 82 | |
| 68.38% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 195 | | matches | | 0 | "Of course he didn't." | | 1 | "Instead he straightened, scar on" | | 2 | "Just hundreds of unnatural eyes" | | 3 | "Then she thought of the" |
| | ratio | 0.021 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 45 | | totalSentences | 195 | | matches | | 0 | "He didn't stop." | | 1 | "They never did." | | 2 | "She vaulted over a puddle" | | 3 | "Her worn leather watch dug" | | 4 | "She could hear her partner's" | | 5 | "She shoved the memory down." | | 6 | "He'd been meeting with Tomás" | | 7 | "She'd seen one before, during" | | 8 | "Her sharp jaw clenched against" | | 9 | "He wasn't heading for the" | | 10 | "Her breath came in controlled" | | 11 | "She raised her baton." | | 12 | "He looked up." | | 13 | "She recognized him from the" | | 14 | "He didn't wait for the" | | 15 | "It swung open with a" | | 16 | "She reached the opening seconds" | | 17 | "She hesitated on the rim," | | 18 | "Her partner's face flashed before" | | 19 | "She couldn't let him vanish." |
| | ratio | 0.231 | |
| 52.31% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 159 | | totalSentences | 195 | | matches | | 0 | "The rain hammered down on" | | 1 | "Detective Harlow Quinn sprinted through" | | 2 | "Water streamed off her closely" | | 3 | "The suspect ahead—some slick bastard" | | 4 | "Quinn shouted, voice raw" | | 5 | "The words barely cut through" | | 6 | "He didn't stop." | | 7 | "They never did." | | 8 | "She vaulted over a puddle" | | 9 | "Her worn leather watch dug" | | 10 | "The hooded figure glanced back" | | 11 | "Lightning flashed, illuminating a brief" | | 12 | "Quinn followed, lungs burning." | | 13 | "The rain plastered her coat" | | 14 | "She could hear her partner's" | | 15 | "She shoved the memory down." | | 16 | "The suspect had information." | | 17 | "He'd been meeting with Tomás" | | 18 | "Quinn had watched from across" | | 19 | "A bone token, perhaps?" |
| | ratio | 0.815 | |
| 51.28% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 195 | | matches | | 0 | "Before Quinn could close the" | | 1 | "Now it sprawled into an" |
| | ratio | 0.01 | |
| 57.99% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 101 | | technicalSentenceCount | 12 | | matches | | 0 | "She vaulted over a puddle the size of a small pond, shoulder clipping a stumbling tourist who cursed in thick German." | | 1 | "This one looked like he'd stepped out of a Seville postcard—warm brown eyes that held secrets older than his twenty-nine years suggested." | | 2 | "An underground black market that shifted locations with every full moon, currently squatting in an abandoned Tube station beneath Camden." | | 3 | "The market was dangerous territory—enchanted goods, banned alchemical substances, information that could get a person killed." | | 4 | "The ladder ended in a maintenance tunnel lit by flickering bulbs that shouldn't exist in an abandoned station." | | 5 | "Now it sprawled into an impossible bazaar that stretched far beyond the physical bounds of any Tube station." | | 6 | "The market seemed to pulse with awareness, as if the place itself watched her intrusion." | | 7 | "She was close enough now to see the rain still beading on his olive skin, to smell the antiseptic tang that clung to him from his days as a paramedic." | | 8 | "His short curly hair caught highlights from the floating orbs that drifted through the market like willful fireflies." | | 9 | "Quinn's eyes widened despite herself at the sight of a map showing London overlaid with glowing lines that shifted and realigned like living veins." | | 10 | "The connection between Morris's death, the clique, this impossible market that shouldn't exist beneath London's streets." | | 11 | "The rain continued falling on the streets above, oblivious to the detective who'd just traded her safety for answers in the dark heart of the city." |
| |
| 50.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 3 | | matches | | 0 | "Quinn shouted, voice raw" | | 1 | "he called, voice carrying despite the distance" | | 2 | "she said, voice steady despite the fear clawing up her throat" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 7 | | fancyTags | | 0 | "Quinn shouted (shout)" | | 1 | "she muttered (mutter)" | | 2 | "the vendor hissed (hiss)" | | 3 | "Quinn growled (growl)" | | 4 | "Herrera continued (continue)" | | 5 | "Quinn pressed (press)" | | 6 | "she demanded (demand)" |
| | dialogueSentences | 38 | | tagDensity | 0.342 | | leniency | 0.684 | | rawRatio | 0.538 | | effectiveRatio | 0.368 | |