| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 24 | | tagDensity | 0.458 | | leniency | 0.917 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1399 | | 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) | |
| 78.56% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1399 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "flicker" | | 1 | "shattered" | | 2 | "etched" | | 3 | "echo" | | 4 | "raced" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 2 |
|
| | highlights | | 0 | "eyes narrowed" | | 1 | "eyes widened" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 39 | | matches | | |
| 69.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 39 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 50 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 135 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1370 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 79.99% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 52 | | wordCount | 857 | | uniqueNames | 18 | | maxNameDensity | 1.4 | | worstName | "Harlow" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Harlow" | | discoveredNames | | Harlow | 12 | | Camden | 1 | | Tube | 1 | | Metropolitan | 1 | | Police | 1 | | Shade | 3 | | Veil | 5 | | Market | 2 | | Morris | 4 | | Kowalski | 1 | | British | 3 | | Museum | 3 | | Eva | 9 | | Oxford | 1 | | Ancient | 1 | | History | 1 | | Compasses | 2 | | Compass | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Police" | | 2 | "Market" | | 3 | "Morris" | | 4 | "Kowalski" | | 5 | "Museum" | | 6 | "Eva" | | 7 | "Oxford" | | 8 | "Compass" |
| | places | | | globalScore | 0.8 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 32 | | 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 | 1370 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 50 | | matches | (empty) | |
| 45.97% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 14 | | mean | 97.86 | | std | 30.42 | | cv | 0.311 | | sampleLengths | | 0 | 161 | | 1 | 118 | | 2 | 105 | | 3 | 129 | | 4 | 103 | | 5 | 69 | | 6 | 42 | | 7 | 99 | | 8 | 72 | | 9 | 123 | | 10 | 81 | | 11 | 117 | | 12 | 58 | | 13 | 93 |
| |
| 78.27% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 39 | | matches | | 0 | "was roped" | | 1 | "been found" | | 2 | "being hunted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 145 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 2 | | flaggedSentences | 7 | | totalSentences | 50 | | ratio | 0.14 | | matches | | 0 | "At 5’9”, she towered over the rusted turnstile that marked the Veil Market’s entry, and she fished a weathered raven’s talon from her coat pocket—her bone token, plucked from a busted enforcer six months prior—and pressed it into the metal. The turnstile groaned, a secret door swinging open to reveal the market’s current husk: stalls stripped of enchanted trinkets, banned alchemical vials shattered on the platform, the air thick with burnt sage (a sign of imminent relocation—full moon was tomorrow, per its unyielding schedule). Her worn leather watch ticked against her left wrist, 3:17 a.m., and she set her sharp jaw, military precision coiling in her shoulders; this was the third supernatural-related death in as many weeks, and the clique she’d shadowed for months was supposed to be tied to it." | | 1 | "Harlow’s brown eyes narrowed as she stepped over a shard of fading enchanted glass, her 18 years of Metropolitan Police service humming in her bones. The crime scene was roped off at the platform’s far end, a Shade artisan’s stall huddled between discarded bone amulets and crated banned grimoires. She knelt beside the body: a gaunt figure slumped over a splintered workbench, throat slit with a blade that left a faint iridescent residue—trace of a banned alchemical solvent sold only here. The rookie forensics tech she’d brought along, a kid who still flinched at supernatural evidence, handed her a report. “No signs of struggle, Detective." | | 2 | "Stall’s locked from the inside, but the window’s gone—no prints, no fiber evidence.”" | | 3 | "That didn’t add up. The Veil Market’s enforcers patrolled every corridor during relocation, their senses tuned to even the faintest flicker of violence. They would have intervened before the killer could escape. Yet their post by the turnstile was empty save for a crumpled note scrawled with the clique’s twisted raven’s wing symbol. Harlow’s mind flashed to DS Morris three years prior: his body found in a similar abandoned transit hub, his throat marked with the same iridescent residue, no explanation for how the killer had vanished. She’d never understood the supernatural threads back then; now, she chased them like a dog after a fox." | | 4 | "The freckles across her nose stood out against her flushed complexion—she’d run from the British Museum’s restricted archives, where she worked as a research assistant, after Harlow’s urgent call." | | 5 | "Harlow checked her worn leather watch again—3:42 a.m., two hours until the full moon." | | 6 | "Harlow stared at the workbench, Morris’s final words—“There’s something we’re missing, Harlow. Something we can’t see”—ringing in her ears." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 540 | | adjectiveStacks | 1 | | stackExamples | | 0 | "thick leather-bound book" |
| | adverbCount | 7 | | adverbRatio | 0.012962962962962963 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.003703703703703704 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 50 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 50 | | mean | 27.4 | | std | 24.91 | | cv | 0.909 | | sampleLengths | | 0 | 30 | | 1 | 131 | | 2 | 105 | | 3 | 13 | | 4 | 105 | | 5 | 42 | | 6 | 29 | | 7 | 36 | | 8 | 22 | | 9 | 7 | | 10 | 47 | | 11 | 27 | | 12 | 22 | | 13 | 22 | | 14 | 20 | | 15 | 10 | | 16 | 17 | | 17 | 16 | | 18 | 26 | | 19 | 15 | | 20 | 20 | | 21 | 64 | | 22 | 16 | | 23 | 22 | | 24 | 34 | | 25 | 25 | | 26 | 19 | | 27 | 5 | | 28 | 28 | | 29 | 16 | | 30 | 13 | | 31 | 17 | | 32 | 20 | | 33 | 22 | | 34 | 39 | | 35 | 14 | | 36 | 43 | | 37 | 35 | | 38 | 7 | | 39 | 18 | | 40 | 23 | | 41 | 14 | | 42 | 21 | | 43 | 19 | | 44 | 5 | | 45 | 7 | | 46 | 31 | | 47 | 21 | | 48 | 4 | | 49 | 6 |
| |
| 76.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.48 | | totalSentences | 50 | | uniqueOpeners | 24 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 37 | | matches | (empty) | | ratio | 0 | |
| 57.84% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 37 | | matches | | 0 | "She tucked a strand of" | | 1 | "she said, tapping an illustration" | | 2 | "She ran a gloved finger" | | 3 | "she said, sharp" | | 4 | "she said, her voice rising" | | 5 | "She’d dismissed the supernatural hints" | | 6 | "She crushed the clique’s note" | | 7 | "she said, her voice low" | | 8 | "she said, tapping a line" | | 9 | "She stared at the verdigris" | | 10 | "She turned to the rookie" | | 11 | "she said, typing quickly" | | 12 | "She’d found the missing thread." | | 13 | "She’d finally understand what happened" | | 14 | "Her military precision coiled tighter," |
| | ratio | 0.405 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 36 | | totalSentences | 37 | | matches | | 0 | "The tunnel’s damp breath curled" | | 1 | "Harlow’s brown eyes narrowed as" | | 2 | "Stall’s locked from the inside," | | 3 | "That didn’t add up. The" | | 4 | "A soft scuff from the" | | 5 | "The freckles across her nose" | | 6 | "She tucked a strand of" | | 7 | "Harlow nodded, leading her to" | | 8 | "Eva’s green eyes widened behind" | | 9 | "she said, tapping an illustration" | | 10 | "Harlow’s headlamp caught something Eva" | | 11 | "She ran a gloved finger" | | 12 | "she said, sharp" | | 13 | "Eva tucked another strand of" | | 14 | "Harlow cut in, gesturing to" | | 15 | "A faint scratch scored one" | | 16 | "Eva flipped through her book," | | 17 | "she said, her voice rising" | | 18 | "Harlow’s mind raced back to" | | 19 | "She’d dismissed the supernatural hints" |
| | ratio | 0.973 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 37 | | matches | (empty) | | ratio | 0 | |
| 74.83% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 21 | | technicalSentenceCount | 2 | | matches | | 0 | "The real killer was someone who’d been using Veil Compasses to open rifts and commit untraceable violence, eliminating the Shade artisans who could link them to…" | | 1 | "The evidence had been right in front of her all along: the supernatural threads she’d refused to confront, the false trails meant to distract her, the Veil Comp…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 3 | | matches | | 0 | "she said, sharp" | | 1 | "she said, her voice rising" | | 2 | "she said, her voice low and tight" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 24 | | tagDensity | 0.292 | | leniency | 0.583 | | rawRatio | 0 | | effectiveRatio | 0 | |