| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 1 | | adverbTags | | 0 | "she shouted again [again]" |
| | dialogueSentences | 8 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.25 | | effectiveRatio | 0.25 | |
| 93.77% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1605 | | totalAiIsmAdverbs | 2 | | 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) | |
| 50.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1605 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "streaming" | | 1 | "flickered" | | 2 | "stomach" | | 3 | "sense of" | | 4 | "footsteps" | | 5 | "echoing" | | 6 | "scanned" | | 7 | "velvet" | | 8 | "stark" | | 9 | "pulse" | | 10 | "roaring" | | 11 | "weight" | | 12 | "gloom" |
| |
| 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 | 0 | | narrationSentences | 114 | | matches | (empty) | |
| 92.73% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 114 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "happened to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 118 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1593 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 51 | | wordCount | 1561 | | uniqueNames | 20 | | maxNameDensity | 0.77 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | London | 2 | | Detective | 1 | | Harlow | 1 | | Quinn | 12 | | Tomás | 1 | | Herrera | 10 | | Raven | 1 | | Nest | 1 | | Saint | 2 | | Christopher | 2 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Camden | 3 | | Morris | 5 | | Soho | 1 | | Tube | 1 | | Veil | 2 | | Market | 2 | | Spanish | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Raven" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Morris" | | 8 | "Market" |
| | places | | 0 | "London" | | 1 | "Charing" | | 2 | "Cross" | | 3 | "Road" | | 4 | "Camden" | | 5 | "Soho" |
| | globalScore | 1 | | windowScore | 1 | |
| 45.83% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 96 | | glossingSentenceCount | 4 | | matches | | 0 | "something like apology, then slipped behind" | | 1 | "looked like living tattoos that crawled a" | | 2 | "seemed larger now, stretching deeper into abandoned tunnels she hadn’t noticed before" | | 3 | "not quite human in the uncertain light" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1593 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 118 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 51.39 | | std | 34.59 | | cv | 0.673 | | sampleLengths | | 0 | 123 | | 1 | 105 | | 2 | 9 | | 3 | 80 | | 4 | 3 | | 5 | 72 | | 6 | 99 | | 7 | 91 | | 8 | 59 | | 9 | 70 | | 10 | 56 | | 11 | 10 | | 12 | 62 | | 13 | 119 | | 14 | 46 | | 15 | 44 | | 16 | 91 | | 17 | 8 | | 18 | 58 | | 19 | 25 | | 20 | 8 | | 21 | 19 | | 22 | 67 | | 23 | 56 | | 24 | 57 | | 25 | 27 | | 26 | 53 | | 27 | 12 | | 28 | 39 | | 29 | 23 | | 30 | 2 |
| |
| 83.72% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 7 | | totalSentences | 114 | | matches | | 0 | "was plastered" | | 1 | "been closed" | | 2 | "been barred" | | 3 | "been pried" | | 4 | "was clenched" | | 5 | "was gone" | | 6 | "were meant" |
| |
| 75.62% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 268 | | matches | | 0 | "was leading" | | 1 | "was chasing" | | 2 | "was heading" | | 3 | "was listening" | | 4 | "was breathing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 3 | | flaggedSentences | 12 | | totalSentences | 118 | | ratio | 0.102 | | matches | | 0 | "She didn’t need to check it again; time had become a secondary concern the moment Tomás Herrera had bolted from the side door of the Raven’s Nest." | | 1 | "He had looked straight at her with those warm brown eyes—eyes that had clearly recognized the detective who’d been circling his associates for weeks—and he had run." | | 2 | "Her breath came steady but hard; she was forty-one, not twenty-five, yet the old training still held." | | 3 | "Every time he glanced back she saw the same expression—fear, yes, but something else." | | 4 | "He was heading for the old Tube entrance—the one the public had been barred from for years." | | 5 | "Thought of the clique and the things they whispered about when they thought no one was listening—markets that weren’t on any map, goods that shouldn’t exist, people who healed wounds that should have killed them." | | 6 | "Quinn drew her baton but left her firearm holstered; she wasn’t here to shoot a medic, even a bent one." | | 7 | "She had heard the name twice in three years—both times from informants who later recanted or disappeared." | | 8 | "There—twenty meters ahead, pushing through a knot of figures cloaked in oilskin." | | 9 | "A vendor thrust a bone token at her—an actual human knucklebone stamped with a sigil—and barked, “Entry’s not free, love.” She ignored him, shouldering past." | | 10 | "The rational part of her—the part that had earned eighteen commendations—insisted she turn around, call for armed backup, and seal the whole place." | | 11 | "Faces turned toward her—some curious, some hostile, some not quite human in the uncertain light." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1581 | | adjectiveStacks | 1 | | stackExamples | | 0 | "stark against wet olive" |
| | adverbCount | 60 | | adverbRatio | 0.03795066413662239 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.009487666034155597 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 118 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 118 | | mean | 13.5 | | std | 7.99 | | cv | 0.592 | | sampleLengths | | 0 | 17 | | 1 | 42 | | 2 | 27 | | 3 | 10 | | 4 | 27 | | 5 | 17 | | 6 | 32 | | 7 | 23 | | 8 | 6 | | 9 | 27 | | 10 | 7 | | 11 | 2 | | 12 | 2 | | 13 | 19 | | 14 | 19 | | 15 | 17 | | 16 | 23 | | 17 | 1 | | 18 | 2 | | 19 | 27 | | 20 | 19 | | 21 | 14 | | 22 | 1 | | 23 | 11 | | 24 | 7 | | 25 | 7 | | 26 | 12 | | 27 | 14 | | 28 | 7 | | 29 | 3 | | 30 | 22 | | 31 | 7 | | 32 | 20 | | 33 | 15 | | 34 | 13 | | 35 | 17 | | 36 | 16 | | 37 | 10 | | 38 | 20 | | 39 | 17 | | 40 | 16 | | 41 | 14 | | 42 | 12 | | 43 | 8 | | 44 | 14 | | 45 | 7 | | 46 | 12 | | 47 | 29 | | 48 | 5 | | 49 | 16 |
| |
| 64.69% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.423728813559322 | | totalSentences | 118 | | uniqueOpeners | 50 | |
| 91.74% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 109 | | matches | | 0 | "Then Herrera had stepped out," | | 1 | "Instead he met her gaze" | | 2 | "Somewhere ahead, a Saint Christopher" |
| | ratio | 0.028 | |
| 91.56% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 109 | | matches | | 0 | "She ran with the clipped" | | 1 | "Her closely cropped salt-and-pepper hair" | | 2 | "She didn’t need to check" | | 3 | "She had been watching the" | | 4 | "She had called his name" | | 5 | "He had looked straight at" | | 6 | "she shouted again, voice raw" | | 7 | "Her breath came steady but" | | 8 | "She kept her eyes locked" | | 9 | "Her mind flickered, unbidden, to" | | 10 | "She had seen the photographs" | | 11 | "She had never spoken of" | | 12 | "She vaulted a low barrier," | | 13 | "He was heading for the" | | 14 | "She reached the gap ten" | | 15 | "She paused, one hand on" | | 16 | "She could still hear his" | | 17 | "She thought of Morris again." | | 18 | "she muttered, and shoved the" | | 19 | "She moved down the steps" |
| | ratio | 0.321 | |
| 60.92% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 109 | | matches | | 0 | "She ran with the clipped" | | 1 | "Her closely cropped salt-and-pepper hair" | | 2 | "The worn leather watch on" | | 3 | "She didn’t need to check" | | 4 | "The bar’s distinctive green neon" | | 5 | "She had been watching the" | | 6 | "She had called his name" | | 7 | "He had looked straight at" | | 8 | "she shouted again, voice raw" | | 9 | "The scar along his left" | | 10 | "Quinn lengthened her stride, military" | | 11 | "Her breath came steady but" | | 12 | "The streets blurred past in" | | 13 | "She kept her eyes locked" | | 14 | "Every time he glanced back" | | 15 | "Her mind flickered, unbidden, to" | | 16 | "Morris had gone into an" | | 17 | "The official report called it" | | 18 | "Quinn knew better." | | 19 | "She had seen the photographs" |
| | ratio | 0.798 | |
| 91.74% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 109 | | matches | | 0 | "As though he knew exactly" | | 1 | "If she went in alone," |
| | ratio | 0.018 | |
| 36.68% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 74 | | technicalSentenceCount | 11 | | matches | | 0 | "She ran with the clipped efficiency her nineteen years on the force had drilled into her bones, shoulders square, elbows tight, boots slapping through puddles t…" | | 1 | "He had looked straight at her with those warm brown eyes—eyes that had clearly recognized the detective who’d been circling his associates for weeks—and he had …" | | 2 | "Speaking it aloud would mean admitting she was chasing something that refused to stay inside the lines of ordinary crime." | | 3 | "She could still hear his footsteps echoing down the stairwell, growing fainter." | | 4 | "If she went in alone, without backup, without even a radio signal that would reach the surface, she would be breaking every protocol she had spent two decades e…" | | 5 | "Thought of the clique and the things they whispered about when they thought no one was listening—markets that weren’t on any map, goods that shouldn’t exist, pe…" | | 6 | "Lanterns hung from makeshift rigging, casting a sickly green-gold light across dozens of stalls that had not been there on any official survey." | | 7 | "A cage of glass jars contained what looked like living tattoos that crawled across the glass seeking new skin." | | 8 | "The rational part of her—the part that had earned eighteen commendations—insisted she turn around, call for armed backup, and seal the whole place." | | 9 | "The digging had brought her here, to a place that smelled of magic and menace and the unmistakable copper tang of fresh blood from some unseen transaction." | | 10 | "Or she could keep walking forward, deeper into the unknown, chasing the last living thread that might explain what had happened to her partner." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 2 | | matches | | 0 | "she shouted again, voice raw" | | 1 | "he said, voice carrying just far enough" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 3 | | fancyTags | | 0 | "she shouted again (shout)" | | 1 | "she muttered (mutter)" | | 2 | "A vendor thrust (a vendor thrust)" |
| | dialogueSentences | 8 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.75 | | effectiveRatio | 0.75 | |