| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 16 | | tagDensity | 0.438 | | leniency | 0.875 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.15% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1031 | | 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) | |
| 80.60% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1031 | | totalAiIsms | 4 | | found | | 0 | | | 1 | | word | "down her spine" | | count | 1 |
| | 2 | | | 3 | |
| | highlights | | 0 | "fractured" | | 1 | "down her spine" | | 2 | "electric" | | 3 | "could feel" |
| |
| 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 | 80 | | matches | (empty) | |
| 89.29% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 80 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 89 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1034 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 25 | | wordCount | 924 | | uniqueNames | 13 | | maxNameDensity | 0.65 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Procedure" | | discoveredNames | | Soho | 1 | | Harlow | 1 | | Quinn | 6 | | Herrera | 4 | | Raven | 1 | | Nest | 1 | | Saint | 1 | | Christopher | 1 | | Morris | 3 | | Tube | 1 | | Camden | 1 | | Market | 1 | | Procedure | 3 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Raven" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Morris" | | 7 | "Tube" | | 8 | "Procedure" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | 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 | 1034 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 89 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 35 | | mean | 29.54 | | std | 26.48 | | cv | 0.896 | | sampleLengths | | 0 | 61 | | 1 | 2 | | 2 | 64 | | 3 | 13 | | 4 | 44 | | 5 | 44 | | 6 | 10 | | 7 | 63 | | 8 | 18 | | 9 | 5 | | 10 | 4 | | 11 | 38 | | 12 | 2 | | 13 | 38 | | 14 | 5 | | 15 | 63 | | 16 | 65 | | 17 | 5 | | 18 | 81 | | 19 | 6 | | 20 | 2 | | 21 | 96 | | 22 | 16 | | 23 | 31 | | 24 | 4 | | 25 | 1 | | 26 | 29 | | 27 | 77 | | 28 | 38 | | 29 | 22 | | 30 | 31 | | 31 | 14 | | 32 | 24 | | 33 | 11 | | 34 | 7 |
| |
| 87.72% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 80 | | matches | | 0 | "being followed" | | 1 | "got was" | | 2 | "been gone" | | 3 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 162 | | matches | | |
| 46.55% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 89 | | ratio | 0.034 | | matches | | 0 | "The beam picked out graffiti that didn't use any alphabet she recognised, and a smell rose to meet her — wet earth, copper, and something sweet and rotten underneath, like flowers left too long in their water." | | 1 | "Not electric — the wrong colour for that, too warm and too uneven, throbbing from lanterns strung along a vaulted space that ran further than her torch could reach." | | 2 | "Every instinct she'd trained for eighteen years told her to leave — and that same instinct, the one that had kept her alive on worse nights than this, told her the thing she'd been chasing for three years was finally, finally close enough to touch." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 922 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 27 | | adverbRatio | 0.02928416485900217 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.005422993492407809 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 89 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 89 | | mean | 11.62 | | std | 10.21 | | cv | 0.879 | | sampleLengths | | 0 | 23 | | 1 | 20 | | 2 | 18 | | 3 | 2 | | 4 | 9 | | 5 | 4 | | 6 | 3 | | 7 | 48 | | 8 | 7 | | 9 | 2 | | 10 | 4 | | 11 | 4 | | 12 | 13 | | 13 | 27 | | 14 | 4 | | 15 | 2 | | 16 | 18 | | 17 | 2 | | 18 | 2 | | 19 | 3 | | 20 | 13 | | 21 | 10 | | 22 | 17 | | 23 | 4 | | 24 | 14 | | 25 | 28 | | 26 | 8 | | 27 | 5 | | 28 | 5 | | 29 | 5 | | 30 | 4 | | 31 | 12 | | 32 | 12 | | 33 | 14 | | 34 | 2 | | 35 | 8 | | 36 | 30 | | 37 | 5 | | 38 | 16 | | 39 | 3 | | 40 | 16 | | 41 | 28 | | 42 | 7 | | 43 | 5 | | 44 | 37 | | 45 | 7 | | 46 | 9 | | 47 | 5 | | 48 | 6 | | 49 | 25 |
| |
| 83.15% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5393258426966292 | | totalSentences | 89 | | uniqueOpeners | 48 | |
| 46.95% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 71 | | matches | | 0 | "Then he stepped behind a" |
| | ratio | 0.014 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 71 | | matches | | 0 | "Her voice cracked against the" | | 1 | "He never did." | | 2 | "She'd watched him slip out" | | 3 | "He just wasn't afraid." | | 4 | "Her boots hit a puddle" | | 5 | "She keyed her radio." | | 6 | "She'd lost the relay two" | | 7 | "She shoved the thought down" | | 8 | "He wasn't even breathing hard." | | 9 | "He shifted the bag higher" | | 10 | "He turned and went down." | | 11 | "She went down the steps." | | 12 | "Her hand found the grip" | | 13 | "She'd expected a tunnel." | | 14 | "He held out a small" | | 15 | "He looked up at her" | | 16 | "She could feel that, the" | | 17 | "He shook his head, slow." | | 18 | "She thought of Morris." | | 19 | "she said, crouching to the" |
| | ratio | 0.296 | |
| 86.76% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 71 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn ran with" | | 2 | "Her voice cracked against the" | | 3 | "Tomás Herrera didn't stop." | | 4 | "He never did." | | 5 | "She'd watched him slip out" | | 6 | "That was the part that" | | 7 | "He just wasn't afraid." | | 8 | "Quinn rounded the vans." | | 9 | "Her boots hit a puddle" | | 10 | "She keyed her radio." | | 11 | "She'd lost the relay two" | | 12 | "Files corrupted themselves." | | 13 | "She shoved the thought down" | | 14 | "The service lane narrowed, walls" | | 15 | "Herrera stood halfway down, looking" | | 16 | "Water ran off his curls." | | 17 | "He wasn't even breathing hard." | | 18 | "He shifted the bag higher" | | 19 | "The scar on his forearm" |
| | ratio | 0.746 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 71 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 33 | | technicalSentenceCount | 8 | | matches | | 0 | "The rain came down in sheets, turning the Soho pavement into a black mirror that swallowed the neon and spat it back fractured." | | 1 | "Detective Harlow Quinn ran with her coat slapping against her thighs, water sluicing past her collar and down her spine." | | 2 | "She'd watched him slip out the back of The Raven's Nest forty minutes ago, a paramedic's bag slung over his shoulder, and she'd followed him through three back …" | | 3 | "Following a suspect into a sealed underground space alone was the kind of decision that got an officer's photograph hung in a corridor with a brass plate undern…" | | 4 | "Procedure had let Morris's case file gather dust under a stamp that read INSUFFICIENT EVIDENCE, while she lay awake at four in the morning seeing the way the st…" | | 5 | "The beam picked out graffiti that didn't use any alphabet she recognised, and a smell rose to meet her — wet earth, copper, and something sweet and rotten under…" | | 6 | "Not electric — the wrong colour for that, too warm and too uneven, throbbing from lanterns strung along a vaulted space that ran further than her torch could re…" | | 7 | "The air moved with voices in a dozen languages, the click of coins that weren't coins, the low murmur of bargains struck in the dark." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 16 | | tagDensity | 0.188 | | leniency | 0.375 | | rawRatio | 0 | | effectiveRatio | 0 | |