| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 22 | | tagDensity | 0.318 | | leniency | 0.636 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.83% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1579 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 55.67% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1579 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "fluttered" | | 1 | "silk" | | 2 | "flickered" | | 3 | "database" | | 4 | "unspoken" | | 5 | "silence" | | 6 | "disrupt" | | 7 | "etched" | | 8 | "disrupted" | | 9 | "flicked" | | 10 | "resolve" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 58 | | matches | | |
| 44.33% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | hedgeCount | 0 | | narrationSentences | 58 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 72 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 61 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 3 | | totalWords | 1557 | | ratio | 0.002 | | matches | | 0 | "Mesopotamian Warding Sigils" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 56 | | wordCount | 1126 | | uniqueNames | 17 | | maxNameDensity | 1.15 | | worstName | "Harlow" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Harlow" | | discoveredNames | | Harlow | 13 | | Camden | 2 | | Tube | 2 | | Met | 2 | | Veil | 2 | | Market | 2 | | Voss | 5 | | Eva | 13 | | Kowalski | 1 | | British | 1 | | Museum | 1 | | Oxford | 2 | | Ancient | 1 | | History | 1 | | Warding | 1 | | Morris | 6 | | Bloomsbury | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Camden" | | 2 | "Tube" | | 3 | "Met" | | 4 | "Market" | | 5 | "Voss" | | 6 | "Eva" | | 7 | "Kowalski" | | 8 | "Morris" |
| | places | | 0 | "Veil" | | 1 | "Oxford" | | 2 | "Ancient" |
| | globalScore | 0.923 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1557 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 72 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 23 | | mean | 67.7 | | std | 35.69 | | cv | 0.527 | | sampleLengths | | 0 | 133 | | 1 | 130 | | 2 | 131 | | 3 | 38 | | 4 | 55 | | 5 | 36 | | 6 | 75 | | 7 | 35 | | 8 | 21 | | 9 | 46 | | 10 | 88 | | 11 | 55 | | 12 | 33 | | 13 | 41 | | 14 | 56 | | 15 | 65 | | 16 | 108 | | 17 | 67 | | 18 | 73 | | 19 | 65 | | 20 | 21 | | 21 | 50 | | 22 | 135 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 58 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 189 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 72 | | ratio | 0.125 | | matches | | 0 | "Salt-and-pepper hair cropped tight to her sharp jaw, she moved with the military precision that had defined her 18 years with the Met, her worn leather watch ticking steady on her left wrist—until she stepped over the threshold." | | 1 | "Harlow’s boots crunched over broken glass—discarded vials of banned alchemical substances, she’d later learn—and a tattered silk scarf embroidered with glowing runes that flickered when she stepped too close." | | 2 | "A mundane murder couldn’t explain that—she’d seen enough slit throats to know the spray was unavoidable, even with a dull blade." | | 3 | "The Met’s database had flagged the British Museum research assistant’s Oxford master’s in Ancient History and access to restricted occult archives, a lead she’d chased after finding a dog-eared copy of *Mesopotamian Warding Sigils* in DS Morris’s old case file—Morris, whose unexplained death three years prior had left her with a gnawing, unspoken fear of things she couldn’t name." | | 4 | "She’d seen similar marks in Morris’s case file—scratched into the dashboard of his crashed car, but she’d dismissed them as graffiti." | | 5 | "This was nonsense—until she noticed the runes on the tattered silk scarf glowing brighter when she held her hand near it." | | 6 | "The broken sigil, the spinning compass, the missing trading token—all pieces that didn’t fit a mundane murder." | | 7 | "The Veil Market, the sigils, the compass—these were the clues she’d ignored, the pieces that tied Morris’s death to Voss’s." | | 8 | "She’d spent 18 years as a detective, but today she was starting over—chasing a killer who used bone tokens and rifts, not guns and knives, and a truth that would force her to confront the supernatural forces she’d spent so long denying." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1141 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 13 | | adverbRatio | 0.011393514460999123 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.0052585451358457495 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 72 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 72 | | mean | 21.63 | | std | 12.39 | | cv | 0.573 | | sampleLengths | | 0 | 24 | | 1 | 38 | | 2 | 12 | | 3 | 59 | | 4 | 19 | | 5 | 29 | | 6 | 30 | | 7 | 14 | | 8 | 17 | | 9 | 21 | | 10 | 6 | | 11 | 59 | | 12 | 28 | | 13 | 38 | | 14 | 12 | | 15 | 26 | | 16 | 18 | | 17 | 10 | | 18 | 27 | | 19 | 8 | | 20 | 28 | | 21 | 10 | | 22 | 18 | | 23 | 47 | | 24 | 18 | | 25 | 17 | | 26 | 12 | | 27 | 9 | | 28 | 4 | | 29 | 18 | | 30 | 21 | | 31 | 3 | | 32 | 11 | | 33 | 23 | | 34 | 18 | | 35 | 36 | | 36 | 3 | | 37 | 10 | | 38 | 21 | | 39 | 21 | | 40 | 9 | | 41 | 24 | | 42 | 11 | | 43 | 30 | | 44 | 3 | | 45 | 35 | | 46 | 9 | | 47 | 9 | | 48 | 20 | | 49 | 45 |
| |
| 68.06% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.4166666666666667 | | totalSentences | 72 | | uniqueOpeners | 30 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 58 | | matches | (empty) | | ratio | 0 | |
| 82.07% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 58 | | matches | | 0 | "She’d seized the token from" | | 1 | "She’d tracked Eva Kowalski by" | | 2 | "she said, her voice tight" | | 3 | "It wasn’t a question" | | 4 | "She knelt, her fingers hovering" | | 5 | "She’d seen similar marks in" | | 6 | "She unslung her satchel, pulling" | | 7 | "She’d spent 18 years trusting" | | 8 | "Her watch’s ticking stopped entirely," | | 9 | "she said, her voice quieter" | | 10 | "She pulled out the item" | | 11 | "She’d assumed the lack of" | | 12 | "She knelt beside Voss, her" | | 13 | "she said, connecting the dots" | | 14 | "she said, gesturing to the" | | 15 | "She’d spent three years blaming" | | 16 | "she asked, her voice steady" | | 17 | "Her watch started ticking again," | | 18 | "She’d spent 18 years as" | | 19 | "She glanced at Eva, whose" |
| | ratio | 0.345 | |
| 20.34% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 51 | | totalSentences | 58 | | matches | | 0 | "The bone token’s porous surface" | | 1 | "Salt-and-pepper hair cropped tight to" | | 2 | "The ticking stuttered, then surged," | | 3 | "She’d seized the token from" | | 4 | "Crime scene tape strung between" | | 5 | "Harlow’s boots crunched over broken" | | 6 | "Leo Voss, a known black" | | 7 | "The first oddity had hit" | | 8 | "A mundane murder couldn’t explain" | | 9 | "She’d tracked Eva Kowalski by" | | 10 | "The Met’s database had flagged" | | 11 | "Every few seconds, she tucked" | | 12 | "Harlow had called her then," | | 13 | "Eva’s freckled complexion paled at" | | 14 | "she said, her voice tight" | | 15 | "It wasn’t a question" | | 16 | "Harlow nodded, tapping the token" | | 17 | "Eva stepped closer, her satchel" | | 18 | "She knelt, her fingers hovering" | | 19 | "Harlow’s watch ticked faster, a" |
| | ratio | 0.879 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 58 | | matches | | 0 | "Now Eva stood at the" | | 1 | "Now she realized she’d been" | | 2 | "Even if it meant diving" |
| | ratio | 0.052 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 10 | | matches | | 0 | "Salt-and-pepper hair cropped tight to her sharp jaw, she moved with the military precision that had defined her 18 years with the Met, her worn leather watch ti…" | | 1 | "Crime scene tape strung between concrete pillars fluttered in a draft that had no business in a sealed station." | | 2 | "She knelt, her fingers hovering over the knife without touching it, as if afraid to contaminate something invisible." | | 3 | "Harlow’s watch ticked faster, a frantic beat that made her clench her left fist until her knuckles whitened." | | 4 | "Eva’s breath caught, and she leaned in, her fingers brushing the compass’s edge as if it were a live wire." | | 5 | "The broken sigil, the spinning compass, the missing trading token—all pieces that didn’t fit a mundane murder." | | 6 | "She knelt beside Voss, her boots crunching over a discarded alchemical vial that fizzed when she stepped on it, and brushed his neck with her fingers." | | 7 | "Eva tucked hair behind her ear, a small nod of approval that made Harlow’s jaw clench." | | 8 | "Her watch started ticking again, slow and steady this time, as if the supernatural disruption had ebbed, but she knew it was only a reprieve." | | 9 | "She’d spent 18 years as a detective, but today she was starting over—chasing a killer who used bone tokens and rifts, not guns and knives, and a truth that woul…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 3 | | matches | | 0 | "Harlow had, her voice sharp with urgency" | | 1 | "she said, her voice tight" | | 2 | "she said, her voice quieter than she intended" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 22 | | tagDensity | 0.318 | | leniency | 0.636 | | rawRatio | 0.143 | | effectiveRatio | 0.091 | |