| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 13 | | tagDensity | 0.077 | | leniency | 0.154 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1056 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 52.65% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1056 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "echoed" | | 1 | "pulse" | | 2 | "clandestine" | | 3 | "raced" | | 4 | "flicker" | | 5 | "glistening" | | 6 | "scanned" | | 7 | "flickered" | | 8 | "tension" | | 9 | "echoing" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "clenched jaw/fists" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "clenched her fist" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 45 | | matches | | |
| 47.62% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 0 | | narrationSentences | 45 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 57 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1030 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 6 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 893 | | uniqueNames | 13 | | maxNameDensity | 1.12 | | worstName | "Harlow" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Tomás" | | discoveredNames | | Soho | 1 | | Raven | 1 | | Nest | 1 | | Camden | 1 | | Tube | 3 | | Veil | 1 | | Market | 1 | | Morris | 3 | | Herrera | 1 | | Saint | 1 | | Christopher | 1 | | Harlow | 10 | | Tomás | 7 |
| | persons | | 0 | "Raven" | | 1 | "Camden" | | 2 | "Morris" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Harlow" | | 7 | "Tomás" |
| | places | | | globalScore | 0.94 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 42 | | 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 | 1030 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 57 | | matches | (empty) | |
| 58.21% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 14 | | mean | 73.57 | | std | 26.02 | | cv | 0.354 | | sampleLengths | | 0 | 16 | | 1 | 111 | | 2 | 107 | | 3 | 71 | | 4 | 100 | | 5 | 72 | | 6 | 51 | | 7 | 107 | | 8 | 69 | | 9 | 47 | | 10 | 73 | | 11 | 84 | | 12 | 52 | | 13 | 70 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 45 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 147 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 4 | | flaggedSentences | 13 | | totalSentences | 57 | | ratio | 0.228 | | matches | | 0 | "Rain plastered her cropped salt-and-pepper hair to her sharp jaw; her worn leather watch dug into her left wrist as she clenched her fist—an old military precision habit when closing in." | | 1 | "The bar’s black-and-white photograph-lined walls glinted through fogged windows; she spotted a heavy oak bookshelf tucked by the back door—rumors of a secret room for clandestine meetings pricked her memory, but she couldn’t afford a detour." | | 2 | "Harlow skidded to a halt at the metal gate blocking the stairs—rusted bars twisted into jagged shapes, damp concrete reeking of mildew and copper." | | 3 | "She’d heard whispers of the Veil Market—an underground supernatural black market that moved locations every full moon, accessible only to those with a bone token." | | 4 | "Tomás Herrera—she’d identified him weeks ago as the former NHS paramedic who provided off-the-books care for the clique she suspected of criminal activity." | | 5 | "\"I don’t care about your clique’s hierarchies; I’m taking him in.\"" | | 6 | "He nodded at the wounded goer, his fingers brushing the medallion around his neck—a nervous habit she’d noted in surveillance reports." | | 7 | "The gate creaked behind her, and she spun—shadowy figures had emerged from the Tube stairs, their forms indistinct, their breaths hissing in the damp air." | | 8 | "Morris’s face flickered in her mind—his laugh, the way he’d tapped his own watch before he vanished—and she tensed her wrist, the leather strap digging deeper." | | 9 | "\"Then talk to them. You’ve got the token; they’ll listen to anyone who holds one.\"" | | 10 | "She’d spent 18 years chasing criminals, solving cases with logic and evidence—not bargaining with creatures from a black market rumor." | | 11 | "The copper stench intensified, mixing with the mildew of the Tube, and she felt her military precision slip—for a split second, she was back in the alley where Morris vanished, the same copper stench in the air, the same tick-tock of boots echoing." | | 12 | "The figure holding it whispered a word she didn’t recognize—one that made the hair on the back of her neck stand on end—and she felt the bone token slip from her hand, clattering to the ground as the shadowy figures advanced again." |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 917 | | adjectiveStacks | 2 | | stackExamples | | 0 | "white photograph-lined walls" | | 1 | "underground supernatural black market" |
| | adverbCount | 12 | | adverbRatio | 0.013086150490730643 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.0054525627044711015 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 57 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 57 | | mean | 18.07 | | std | 8.87 | | cv | 0.491 | | sampleLengths | | 0 | 16 | | 1 | 31 | | 2 | 15 | | 3 | 29 | | 4 | 36 | | 5 | 17 | | 6 | 22 | | 7 | 24 | | 8 | 27 | | 9 | 17 | | 10 | 5 | | 11 | 25 | | 12 | 19 | | 13 | 22 | | 14 | 23 | | 15 | 23 | | 16 | 34 | | 17 | 20 | | 18 | 8 | | 19 | 9 | | 20 | 11 | | 21 | 16 | | 22 | 6 | | 23 | 14 | | 24 | 8 | | 25 | 8 | | 26 | 21 | | 27 | 22 | | 28 | 3 | | 29 | 15 | | 30 | 25 | | 31 | 20 | | 32 | 23 | | 33 | 21 | | 34 | 25 | | 35 | 26 | | 36 | 18 | | 37 | 11 | | 38 | 9 | | 39 | 6 | | 40 | 15 | | 41 | 6 | | 42 | 11 | | 43 | 20 | | 44 | 19 | | 45 | 23 | | 46 | 2 | | 47 | 20 | | 48 | 19 | | 49 | 43 |
| |
| 44.74% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.2982456140350877 | | totalSentences | 57 | | uniqueOpeners | 17 | |
| 75.76% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 44 | | matches | | 0 | "Then, a hidden door slammed" |
| | ratio | 0.023 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 12 | | totalSentences | 44 | | matches | | 0 | "She rounded the corner to" | | 1 | "She raced after him, her" | | 2 | "She’d heard whispers of the" | | 3 | "Her partner, DS Morris, had" | | 4 | "She tensed her watch strap," | | 5 | "His scar ran along his" | | 6 | "He nodded at the wounded" | | 7 | "She bent to pick up" | | 8 | "She tested the bone token" | | 9 | "He swung it at the" | | 10 | "She’d spent 18 years chasing" | | 11 | "She raised the bone token," |
| | ratio | 0.273 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 42 | | totalSentences | 44 | | matches | | 0 | "Harlow’s fingers scraped the suspect’s" | | 1 | "Rain plastered her cropped salt-and-pepper" | | 2 | "The suspect’s boots thudded ahead," | | 3 | "She rounded the corner to" | | 4 | "The bar’s black-and-white photograph-lined walls" | | 5 | "She raced after him, her" | | 6 | "The suspect’s pace picked up" | | 7 | "Harlow skidded to a halt" | | 8 | "The suspect paused just beyond" | | 9 | "The object clattered at her" | | 10 | "Harlow stared at the token." | | 11 | "She’d heard whispers of the" | | 12 | "Her partner, DS Morris, had" | | 13 | "She tensed her watch strap," | | 14 | "A figure stepped from the" | | 15 | "Tomás Herrera—she’d identified him weeks" | | 16 | "His scar ran along his" | | 17 | "A wounded market goer leaned" | | 18 | "Tomás stepped closer, his warm" | | 19 | "He nodded at the wounded" |
| | ratio | 0.955 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 44 | | matches | (empty) | | ratio | 0 | |
| 17.86% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 7 | | matches | | 0 | "The suspect’s boots thudded ahead, a quick tick-tock that echoed the pulse in her temples." | | 1 | "She’d heard whispers of the Veil Market—an underground supernatural black market that moved locations every full moon, accessible only to those with a bone toke…" | | 2 | "A wounded market goer leaned against the wall behind him, gash on their neck oozing blood that stung Harlow’s nostrils." | | 3 | "The wounded market goer whimpered, and Tomás’s hand darted to his medallion again, a silent plea that didn’t escape her notice." | | 4 | "She tested the bone token in her fist, weighing the risk of stepping into the market against the cost of letting the suspect slip away." | | 5 | "The shadowy figures moved closer, their boots thudding a slow tick-tock that mirrored the dread in her chest." | | 6 | "The figure holding it whispered a word she didn’t recognize—one that made the hair on the back of her neck stand on end—and she felt the bone token slip from he…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 1 | | matches | | 0 | "He swung, the wood cracking against its shoulder, and yelled at Harlow:" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |