| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.75% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1176 | | 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) | |
| 82.99% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1176 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "pulsed" | | 1 | "comforting" | | 2 | "weight" | | 3 | "flickered" |
| |
| 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 | 51 | | matches | (empty) | |
| 86.83% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 51 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 52 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 68 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 5 | | totalWords | 1188 | | ratio | 0.004 | | matches | | 0 | "you do not belong here." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 1168 | | uniqueNames | 11 | | maxNameDensity | 0.43 | | worstName | "Morris" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Morris" | | discoveredNames | | Camden | 2 | | Harlow | 1 | | Quinn | 3 | | Morris | 5 | | October | 1 | | Tube | 2 | | Town | 1 | | Deep | 1 | | Line | 1 | | Underground | 1 | | London | 2 |
| | persons | | 0 | "Camden" | | 1 | "Harlow" | | 2 | "Quinn" | | 3 | "Morris" | | 4 | "Line" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 40 | | glossingSentenceCount | 4 | | matches | | 0 | "quite work the way joints were supposed to" | | 1 | "something like a fiddle being tuned, and the" | | 2 | "colours that seemed to shift when she wasn't looking dead at them" | | 3 | "looked like living shadow, past a stall s" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.842 | | wordCount | 1188 | | matches | | 0 | "not brown or blue or green but a flat, depthless black, like looking into a well with no bo" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 52 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 18 | | mean | 66 | | std | 35.13 | | cv | 0.532 | | sampleLengths | | 0 | 92 | | 1 | 130 | | 2 | 14 | | 3 | 93 | | 4 | 23 | | 5 | 88 | | 6 | 35 | | 7 | 81 | | 8 | 4 | | 9 | 108 | | 10 | 119 | | 11 | 65 | | 12 | 37 | | 13 | 37 | | 14 | 49 | | 15 | 75 | | 16 | 69 | | 17 | 69 |
| |
| 70.86% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 51 | | matches | | 0 | "were supposed" | | 1 | "been seen" | | 2 | "been closed" | | 3 | "being tuned" | | 4 | "been drawn" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 178 | | matches | | 0 | "wasn't looking" | | 1 | "was standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 52 | | ratio | 0.154 | | matches | | 0 | "He'd been seen near three break-ins tied to a string of thefts that made no sense — objects vanishing from locked cases, security footage showing empty rooms and then, impossibly, not-empty ones." | | 1 | "He vaulted a low fence with one hand, coat flaring like a wing, and dropped into the stairwell of a Tube station that had been closed for renovation — closed, according to every notice board she'd read, for the past six years." | | 2 | "This was not procedure, chasing a suspect alone into an abandoned Underground station at eleven at night with no radio contact because the radio had gone to static three streets back — the exact kind of static it had thrown the night she lost Morris, that white noise like the world clearing its throat before something happened." | | 3 | "She kept one hand on her weapon, more for her own comfort than any real faith it would help her here, and she went down into what had once been a Tube platform and was now — her mind kept trying to reject the sight even as her eyes insisted on it — a market." | | 4 | "A boy — or something with a boy's shape — hawked bundles of black feathers tied with red thread." | | 5 | "He turned and melted back into the crowd, and the crowd — she would swear to this later, in the report she would never actually file — the crowd closed around him like a curtain, like the market itself had decided to hide him from her." | | 6 | "She felt the weight of attention settle on her like a hand pressed flat between her shoulder blades, and every one of those eyes — human-shaped and not — told her the same thing without a word spoken: *you do not belong here.*" | | 7 | "She followed him into the dark, her weapon drawn, her heart going hard and fast against her ribs, and behind her the market's murmur closed up smooth and unbroken, as though she had never been there at all — as though the city above, the rain, the badge in her pocket, belonged to a version of London that no longer had any claim on where she was standing now." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1162 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 34 | | adverbRatio | 0.029259896729776247 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.008605851979345954 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 52 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 52 | | mean | 22.85 | | std | 17.52 | | cv | 0.767 | | sampleLengths | | 0 | 21 | | 1 | 29 | | 2 | 25 | | 3 | 17 | | 4 | 8 | | 5 | 45 | | 6 | 32 | | 7 | 45 | | 8 | 14 | | 9 | 5 | | 10 | 42 | | 11 | 5 | | 12 | 2 | | 13 | 39 | | 14 | 23 | | 15 | 13 | | 16 | 3 | | 17 | 57 | | 18 | 9 | | 19 | 6 | | 20 | 6 | | 21 | 21 | | 22 | 8 | | 23 | 34 | | 24 | 47 | | 25 | 4 | | 26 | 31 | | 27 | 4 | | 28 | 18 | | 29 | 55 | | 30 | 33 | | 31 | 21 | | 32 | 19 | | 33 | 14 | | 34 | 32 | | 35 | 57 | | 36 | 2 | | 37 | 6 | | 38 | 29 | | 39 | 8 | | 40 | 23 | | 41 | 14 | | 42 | 3 | | 43 | 46 | | 44 | 28 | | 45 | 2 | | 46 | 2 | | 47 | 43 | | 48 | 3 | | 49 | 24 |
| |
| 69.23% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.5192307692307693 | | totalSentences | 52 | | uniqueOpeners | 27 | |
| 70.92% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 47 | | matches | | 0 | "Somewhere ahead the suspect's grey" |
| | ratio | 0.021 | |
| 32.77% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 47 | | matches | | 0 | "She'd make the joke to" | | 1 | "She didn't let herself think" | | 2 | "He'd been seen near three" | | 3 | "She'd been watching this alley" | | 4 | "she shouted, knowing he wouldn't," | | 5 | "He didn't even glance back." | | 6 | "He vaulted a low fence" | | 7 | "She'd told herself for three" | | 8 | "She thought of Morris's face," | | 9 | "She thought of eighteen years" | | 10 | "She went down anyway." | | 11 | "She kept one hand on" | | 12 | "Her suspect was forty feet" | | 13 | "It was not a comforting" | | 14 | "he said, and his voice" | | 15 | "she said, and her voice," | | 16 | "He didn't stop." | | 17 | "He turned and melted back" | | 18 | "She pushed forward anyway, shouldering" | | 19 | "She felt the weight of" |
| | ratio | 0.468 | |
| 55.74% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 38 | | totalSentences | 47 | | matches | | 0 | "Rain came down in sheets" | | 1 | "Detective Harlow Quinn ran through" | | 2 | "She'd make the joke to" | | 3 | "She didn't let herself think" | | 4 | "He'd been seen near three" | | 5 | "She'd been watching this alley" | | 6 | "she shouted, knowing he wouldn't," | | 7 | "He didn't even glance back." | | 8 | "He vaulted a low fence" | | 9 | "The Camden Town Deep Line." | | 10 | "Quinn stopped at the top" | | 11 | "Every instinct she'd built over" | | 12 | "This was not procedure, chasing" | | 13 | "She'd told herself for three" | | 14 | "Grief did strange things to" | | 15 | "She thought of Morris's face," | | 16 | "She thought of eighteen years" | | 17 | "She went down anyway." | | 18 | "The stairs were slick with" | | 19 | "The orange light brightened." |
| | ratio | 0.809 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 47 | | matches | | 0 | "Now there was only the" |
| | ratio | 0.021 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 7 | | matches | | 0 | "Now there was only the man ahead of her, a lean shape in a long grey coat, weaving between shuttered market stalls with an agility that struck her as wrong some…" | | 1 | "He'd been seen near three break-ins tied to a string of thefts that made no sense — objects vanishing from locked cases, security footage showing empty rooms an…" | | 2 | "She'd been watching this alley for two nights running on nothing but instinct and the itch at the back of her neck that never really left her since the night Mo…" | | 3 | "He vaulted a low fence with one hand, coat flaring like a wing, and dropped into the stairwell of a Tube station that had been closed for renovation — closed, a…" | | 4 | "A woman with skin like polished slate sold jars of something that glowed faint green and pulsed slow as a heartbeat." | | 5 | "Somewhere ahead the suspect's grey coat flickered between two stalls and vanished around a corner where the platform gave way to old service tunnels, black-mout…" | | 6 | "She followed him into the dark, her weapon drawn, her heart going hard and fast against her ribs, and behind her the market's murmur closed up smooth and unbrok…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0.333 | | effectiveRatio | 0.333 | |