| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 0 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1345 | | 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) | |
| 73.98% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1345 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "echoing" | | 1 | "familiar" | | 2 | "dancing" | | 3 | "flicker" | | 4 | "silence" | | 5 | "scanned" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 94 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 94 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 94 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1322 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 1321 | | uniqueNames | 11 | | maxNameDensity | 0.83 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 2 | | Berwick | 1 | | Street | 1 | | Tube | 1 | | Camden | 1 | | Town | 1 | | London | 1 | | Veil | 1 | | Quinn | 11 | | Morris | 5 | | Whitechapel | 1 |
| | persons | | | places | | 0 | "Soho" | | 1 | "Berwick" | | 2 | "Street" | | 3 | "Camden" | | 4 | "Town" | | 5 | "London" | | 6 | "Whitechapel" |
| | globalScore | 1 | | windowScore | 1 | |
| 39.71% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like human teeth strung on copper" | | 1 | "looked like a fragment of skeleton" | | 2 | "sounded like wind through hollow trees" |
| |
| 48.71% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.513 | | wordCount | 1322 | | matches | | 0 | "not just physical but existential" | | 1 | "not into death but into something older" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 94 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 41.31 | | std | 28.51 | | cv | 0.69 | | sampleLengths | | 0 | 76 | | 1 | 51 | | 2 | 87 | | 3 | 77 | | 4 | 5 | | 5 | 3 | | 6 | 82 | | 7 | 4 | | 8 | 86 | | 9 | 30 | | 10 | 4 | | 11 | 41 | | 12 | 51 | | 13 | 34 | | 14 | 90 | | 15 | 20 | | 16 | 25 | | 17 | 61 | | 18 | 22 | | 19 | 28 | | 20 | 45 | | 21 | 75 | | 22 | 25 | | 23 | 3 | | 24 | 61 | | 25 | 33 | | 26 | 73 | | 27 | 11 | | 28 | 66 | | 29 | 14 | | 30 | 31 | | 31 | 8 |
| |
| 86.60% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 94 | | matches | | 0 | "was tiled" | | 1 | "was gone" | | 2 | "been erected" | | 3 | "was hidden" | | 4 | "been converted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 219 | | matches | | 0 | "were handing" | | 1 | "was not leaving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 23 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 94 | | ratio | 0.149 | | matches | | 0 | "Behind her, Soho’s neon bled into the wet asphalt—pink, green, sick yellow—while her quarry, a thin silhouette in a charcoal coat, vanished around the corner of Berwick Street with the fluid grace of someone who knew these veins by heart." | | 1 | "She hesitated for half a second—just long enough for her heart to thunder in her ears—then followed." | | 2 | "The leather of her watch—worn soft by eighteen years—digged into her skin." | | 3 | "The ceiling arched high, lined with the skeletal ribs of an abandoned Tube station—Camden Town, or what was left of it—where rusted tracks disappeared into darkness and old advertisement posters for cigarettes and musicals peeled from the walls in long, decayed ribbons." | | 4 | "Torches—actual torches—burned in iron brackets, casting dancing shadows across faces that were not quite right." | | 5 | "The suspect—Quinn still didn’t have a name, only the report that linked him to three disappearances—moved with purpose, not panic." | | 6 | "But Quinn had seen the security footage—what little survived—of Morris stepping into darkness and then nothing, a flicker, like someone had turned off the lights inside his body." | | 7 | "She glanced down—7:44 PM, the leather strap dark with rain." | | 8 | "Phone—useless down here, the signal dead as stone." | | 9 | "Wallet—thin, carrying her warrant card and twenty quid." | | 10 | "His eyes—too large, too black—scanned the bone token she pressed into his palm, then nodded toward the market’s heart." | | 11 | "The smells intensified—sulfur, sweat, sweet rot." | | 12 | "The coat moved again, heading toward a narrow passage between two train cars that had been converted into some kind of archive—books with leather bindings that squirmed when she passed, pages turning of their own accord." | | 13 | "The rules up top—law, order, the rational world of evidence and warrants—did not apply here." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 447 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 17 | | adverbRatio | 0.03803131991051454 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 94 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 94 | | mean | 14.06 | | std | 9.83 | | cv | 0.699 | | sampleLengths | | 0 | 16 | | 1 | 20 | | 2 | 40 | | 3 | 24 | | 4 | 10 | | 5 | 17 | | 6 | 21 | | 7 | 29 | | 8 | 25 | | 9 | 12 | | 10 | 28 | | 11 | 25 | | 12 | 24 | | 13 | 5 | | 14 | 3 | | 15 | 22 | | 16 | 18 | | 17 | 42 | | 18 | 4 | | 19 | 21 | | 20 | 15 | | 21 | 6 | | 22 | 9 | | 23 | 21 | | 24 | 14 | | 25 | 13 | | 26 | 4 | | 27 | 13 | | 28 | 4 | | 29 | 30 | | 30 | 6 | | 31 | 5 | | 32 | 24 | | 33 | 20 | | 34 | 4 | | 35 | 3 | | 36 | 8 | | 37 | 24 | | 38 | 2 | | 39 | 8 | | 40 | 19 | | 41 | 10 | | 42 | 28 | | 43 | 25 | | 44 | 10 | | 45 | 10 | | 46 | 5 | | 47 | 20 | | 48 | 5 | | 49 | 21 |
| |
| 48.23% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3723404255319149 | | totalSentences | 94 | | uniqueOpeners | 35 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 86 | | matches | | 0 | "Then the corridor opened up." | | 1 | "Instead, she stood at the" | | 2 | "Then she was in line," |
| | ratio | 0.035 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 86 | | matches | | 0 | "She rounded the corner, shoulder" | | 1 | "She hesitated for half a" | | 2 | "She moved with her hand" | | 3 | "She had expected a boiler" | | 4 | "It was the Veil." | | 5 | "She’d heard the name in" | | 6 | "She’d never believed it was" | | 7 | "He knew this place." | | 8 | "He belonged here." | | 9 | "She’d spent three years digging," | | 10 | "Her watch ticked loud in" | | 11 | "She glanced down—7:44 PM, the" | | 12 | "She needed to follow him." | | 13 | "She moved closer, staying to" | | 14 | "They were handing over chips" | | 15 | "She scanned the perimeter, her" | | 16 | "She waited for the gatekeeper" | | 17 | "His eyes—too large, too black—scanned" | | 18 | "She pulled her collar up" | | 19 | "She was in now." |
| | ratio | 0.279 | |
| 87.91% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 86 | | matches | | 0 | "Quinn’s boots hit the pavement" | | 1 | "The alley mouth yawned black" | | 2 | "She rounded the corner, shoulder" | | 3 | "The stairwell exhaled a stink" | | 4 | "She hesitated for half a" | | 5 | "The stairs plunged downward in" | | 6 | "Rain plastered her hair flat" | | 7 | "The leather of her watch—worn" | | 8 | "The corridor at the bottom" | | 9 | "She moved with her hand" | | 10 | "The charcoal coat was gone," | | 11 | "Quinn stopped dead." | | 12 | "She had expected a boiler" | | 13 | "The ceiling arched high, lined" | | 14 | "Dozens of them, maybe more," | | 15 | "Torches—actual torches—burned in iron brackets," | | 16 | "Some wore masks of polished" | | 17 | "Others had eyes that reflected" | | 18 | "A vendor with gnarled hands" | | 19 | "The air was thick with" |
| | ratio | 0.744 | |
| 58.14% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 86 | | matches | | | ratio | 0.012 | |
| 28.06% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 56 | | technicalSentenceCount | 9 | | matches | | 0 | "Quinn’s boots hit the pavement with a dull splash that sent rainwater skittering down the curb." | | 1 | "Behind her, Soho’s neon bled into the wet asphalt—pink, green, sick yellow—while her quarry, a thin silhouette in a charcoal coat, vanished around the corner of…" | | 2 | "The corridor at the bottom was tiled in white ceramic, yellowed by decades of neglect, and lit by a single flickering tube that hummed like an angry wasp." | | 3 | "Instead, she stood at the threshold of a cavernous space that defied the geometry of the street above." | | 4 | "The charcoal coat was visible now, weaving through the crowd near a stall that displayed what looked like human teeth strung on copper wire." | | 5 | "Drawing steel in a room full of unknown entities was the kind of mistake that got you killed, or worse, disappeared without a trace." | | 6 | "At the far end of the market, near a collapsed escalator that led back to the surface, she spotted the gatekeeper." | | 7 | "The coat moved again, heading toward a narrow passage between two train cars that had been converted into some kind of archive—books with leather bindings that …" | | 8 | "Quinn followed, her heart steady now, the fear transmuted into the cold precision that had kept her alive through eighteen years of service." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |