| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1671 | | 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) | |
| 34.17% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1671 | | totalAiIsms | 22 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | |
| | highlights | | 0 | "silence" | | 1 | "loomed" | | 2 | "standard" | | 3 | "gloom" | | 4 | "searing" | | 5 | "scanned" | | 6 | "weight" | | 7 | "flicker" | | 8 | "navigated" | | 9 | "treacherous" | | 10 | "rhythmic" | | 11 | "echoing" | | 12 | "stark" | | 13 | "resolve" | | 14 | "echoed" | | 15 | "resonated" | | 16 | "vibrated" | | 17 | "chaotic" | | 18 | "etched" |
| |
| 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 | 0 | | narrationSentences | 144 | | matches | (empty) | |
| 93.25% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 3 | | narrationSentences | 144 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 147 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 5 | | totalWords | 1655 | | ratio | 0.003 | | matches | | 0 | "drip-drip-drip" | | 1 | "Entry requirement: bone token." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 88.88% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 1636 | | uniqueNames | 12 | | maxNameDensity | 1.22 | | worstName | "Harlow" | | maxWindowNameDensity | 2 | | worstWindowName | "Harlow" | | discoveredNames | | Soho | 1 | | Harlow | 20 | | Quinn | 2 | | Old | 1 | | Compton | 1 | | Street | 1 | | Olympic | 1 | | Morris | 2 | | Camden | 1 | | Tube | 1 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Morris" |
| | places | | 0 | "Soho" | | 1 | "Old" | | 2 | "Compton" | | 3 | "Street" | | 4 | "Camden" |
| | globalScore | 0.889 | | windowScore | 1 | |
| 7.14% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 105 | | glossingSentenceCount | 6 | | matches | | 0 | "ople aside; he seemingly passed through the" | | 1 | "seemed impenetrable but Harlow felt the weight of his gaze" | | 2 | "felt like static electricity brushing a" | | 3 | "looked like an exposed section of the old" | | 4 | "looked like letters but refused to resolv" | | 5 | "looked like a ticket booth reforged from" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1655 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 147 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 58 | | mean | 28.53 | | std | 18.85 | | cv | 0.661 | | sampleLengths | | 0 | 43 | | 1 | 6 | | 2 | 65 | | 3 | 24 | | 4 | 2 | | 5 | 55 | | 6 | 81 | | 7 | 61 | | 8 | 61 | | 9 | 40 | | 10 | 27 | | 11 | 63 | | 12 | 29 | | 13 | 27 | | 14 | 20 | | 15 | 42 | | 16 | 2 | | 17 | 22 | | 18 | 42 | | 19 | 38 | | 20 | 45 | | 21 | 17 | | 22 | 32 | | 23 | 40 | | 24 | 43 | | 25 | 28 | | 26 | 33 | | 27 | 37 | | 28 | 9 | | 29 | 61 | | 30 | 21 | | 31 | 22 | | 32 | 13 | | 33 | 2 | | 34 | 29 | | 35 | 33 | | 36 | 40 | | 37 | 3 | | 38 | 38 | | 39 | 18 | | 40 | 4 | | 41 | 9 | | 42 | 2 | | 43 | 16 | | 44 | 4 | | 45 | 44 | | 46 | 13 | | 47 | 28 | | 48 | 10 | | 49 | 29 |
| |
| 97.95% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 144 | | matches | | 0 | "were gone" | | 1 | "was mounted" | | 2 | "was locked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 270 | | matches | | 0 | "was sealing" | | 1 | "was disappearing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 3 | | flaggedSentences | 12 | | totalSentences | 147 | | ratio | 0.082 | | matches | | 0 | "He didn't shove people aside; he seemingly passed through the gaps in their attention, a ghost in a tracksuit." | | 1 | "The alley was a dead end—or should have been." | | 2 | "A memory flashed—flashbulb bright and searing hot." | | 3 | "He didn't climb down; he stepped off the edge of a concrete precipice and plummeted into the darkness of the excavation pit." | | 4 | "A makeshift ramp of plywood and scaffolding led down into the earth, spiraling toward what looked like an exposed section of the old Tube network—tunnels abandoned decades ago, sealed off from the public." | | 5 | "The noise of the city above—the sirens, the traffic, the shouting—faded, replaced by the rhythmic *drip-drip-drip* of water echoing through subterranean chambers." | | 6 | "Faded tiles clung to the walls, covered in graffiti that twisted the eyes—shapes that looked like letters but refused to resolve into words." | | 7 | "Instead, a skeletal hand—human, by the look of the carpals—was mounted to the center of the iron bars, palm open, waiting." | | 8 | "The iron gate didn't swing open on hinges; it seemed to dissolve, the metal twisting and folding in on itself like burning paper, revealing a corridor bathed in a sickly, pulsating violet light." | | 9 | "Smells wafted out—spices she couldn't name, roasting meat that smelled too sweet, and underneath it all, the copper tang of magic." | | 10 | "Noise drifted back to her—a chaotic bazaar, shouts, bartering, the hiss of steam." | | 11 | "The connection to the clique, the reason for the bodies piling up in the morgue with unexplained tox screens—it all walked away." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1652 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.01937046004842615 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.004842615012106538 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 147 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 147 | | mean | 11.26 | | std | 7.16 | | cv | 0.636 | | sampleLengths | | 0 | 22 | | 1 | 21 | | 2 | 6 | | 3 | 20 | | 4 | 26 | | 5 | 19 | | 6 | 5 | | 7 | 19 | | 8 | 2 | | 9 | 11 | | 10 | 8 | | 11 | 12 | | 12 | 24 | | 13 | 23 | | 14 | 9 | | 15 | 3 | | 16 | 19 | | 17 | 8 | | 18 | 2 | | 19 | 7 | | 20 | 10 | | 21 | 10 | | 22 | 16 | | 23 | 13 | | 24 | 9 | | 25 | 13 | | 26 | 5 | | 27 | 17 | | 28 | 16 | | 29 | 23 | | 30 | 11 | | 31 | 6 | | 32 | 1 | | 33 | 22 | | 34 | 7 | | 35 | 20 | | 36 | 5 | | 37 | 4 | | 38 | 11 | | 39 | 23 | | 40 | 6 | | 41 | 14 | | 42 | 18 | | 43 | 11 | | 44 | 3 | | 45 | 24 | | 46 | 20 | | 47 | 3 | | 48 | 4 | | 49 | 4 |
| |
| 49.89% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3401360544217687 | | totalSentences | 147 | | uniqueOpeners | 50 | |
| 74.63% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 134 | | matches | | 0 | "Just for a heartbeat." | | 1 | "Instead, a skeletal hand—human, by" | | 2 | "Then she saw it." |
| | ratio | 0.022 | |
| 97.61% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 134 | | matches | | 0 | "He didn't shove people aside;" | | 1 | "She didn't have that luxury." | | 2 | "She didn't stop to check" | | 3 | "Her eyes locked on the" | | 4 | "He vaulted a parked taxi," | | 5 | "She landed heavy, water splashing" | | 6 | "She forced her body back" | | 7 | "He hit the vertical surface," | | 8 | "She stared up at the" | | 9 | "She scanned the alley." | | 10 | "She scrambled up the side," | | 11 | "She climbed, vaulting the railing" | | 12 | "She spotted movement." | | 13 | "He turned his head." | | 14 | "It felt like static electricity" | | 15 | "He didn't climb down; he" | | 16 | "She navigated the treacherous descent," | | 17 | "Her boots hit the floor" | | 18 | "She entered the tunnel." | | 19 | "She drew her weapon again," |
| | ratio | 0.306 | |
| 45.82% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 111 | | totalSentences | 134 | | matches | | 0 | "Techno music engaged in a" | | 1 | "Rain sheeted down in aggressive" | | 2 | "Harlow Quinn rounded the corner" | | 3 | "The suspect was fifty yards" | | 4 | "He didn't shove people aside;" | | 5 | "She didn't have that luxury." | | 6 | "Harlow slammed her shoulder into" | | 7 | "The command ripped from her" | | 8 | "She didn't stop to check" | | 9 | "Her eyes locked on the" | | 10 | "He vaulted a parked taxi," | | 11 | "Harlow planted her hand on" | | 12 | "She landed heavy, water splashing" | | 13 | "The knees complained, a sharp," | | 14 | "She forced her body back" | | 15 | "The chase bled into the" | | 16 | "The suspect hooked a sharp" | | 17 | "Harlow followed, her hand instinctively" | | 18 | "The alley was a dead" | | 19 | "A ten-foot brick wall loomed" |
| | ratio | 0.828 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 134 | | matches | | 0 | "Even at this distance, through" | | 1 | "Before her lay a jagged" | | 2 | "If she let him go," |
| | ratio | 0.022 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 79 | | technicalSentenceCount | 4 | | matches | | 0 | "The knees complained, a sharp, grinding protest that shot up her thighs, but the adrenaline flooded the pain receptors." | | 1 | "With a heave that defied standard physiology, he swung up and over the wall, disappearing into the gloom of the adjacent construction site." | | 2 | "DS Morris, eyes wide, blood pooling black in the moonlight, screaming about things that moved too fast to be human." | | 3 | "Smells wafted out—spices she couldn't name, roasting meat that smelled too sweet, and underneath it all, the copper tang of magic." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 1 | | matches | | 0 | "Harlow leveled, the cold steel steady despite the heaving of her chest" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 5 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 1 | | effectiveRatio | 0.4 | |