| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 19 | | tagDensity | 0.211 | | leniency | 0.421 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.82% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1058 | | totalAiIsmAdverbs | 3 | | 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) | |
| 95.27% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1058 | | totalAiIsms | 1 | | found | | | highlights | | |
| 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 | 44 | | matches | (empty) | |
| 45.45% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 44 | | filterMatches | (empty) | | hedgeMatches | | 0 | "started to" | | 1 | "happen to" | | 2 | "tended to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 59 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1047 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 827 | | uniqueNames | 13 | | maxNameDensity | 0.97 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Town | 1 | | Harlow | 1 | | Quinn | 8 | | God | 1 | | Priya | 1 | | Bhatt | 5 | | Helmand | 1 | | Vice | 1 | | Morris | 3 | | Bethnal | 1 | | Green | 1 | | American | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "God" | | 3 | "Priya" | | 4 | "Bhatt" | | 5 | "Morris" |
| | places | | 0 | "Camden" | | 1 | "Town" | | 2 | "Helmand" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 35 | | 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 | 1047 | | matches | (empty) | |
| 53.67% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 59 | | matches | | 0 | "smelled that combination" | | 1 | "feel that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 38.78 | | std | 32.8 | | cv | 0.846 | | sampleLengths | | 0 | 79 | | 1 | 10 | | 2 | 62 | | 3 | 61 | | 4 | 99 | | 5 | 6 | | 6 | 45 | | 7 | 5 | | 8 | 2 | | 9 | 57 | | 10 | 6 | | 11 | 63 | | 12 | 7 | | 13 | 16 | | 14 | 2 | | 15 | 14 | | 16 | 108 | | 17 | 68 | | 18 | 5 | | 19 | 19 | | 20 | 14 | | 21 | 22 | | 22 | 68 | | 23 | 22 | | 24 | 39 | | 25 | 50 | | 26 | 98 |
| |
| 89.31% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 44 | | matches | | 0 | "was turned" | | 1 | "were blistered" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 138 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 59 | | ratio | 0.119 | | matches | | 0 | "The abandoned Camden Town platform smelled of rust and something older—copper pennies left too long in a closed fist." | | 1 | "She'd seen electrocutions—two, in eighteen years, both industrial accidents—and the char had always followed contact points, arms, hands, a foot braced wrong against a live rail." | | 2 | "There, cut into the tile—not scorched, cut, clean as a chisel through butter—was a symbol she didn't recognize." | | 3 | "Arguing only made you sound like DS Morris in the weeks before he vanished—increasingly certain of things no one else could see, increasingly alone in the certainty." | | 4 | "The victim's shoes were unmarked—no scorching on the soles, which any electrocution victim standing in that ring should have shown." | | 5 | "She didn't say the rest—that she intended to find out who held the key, or that she had a growing, unwelcome suspicion the answer ran through a redheaded museum researcher and her too-convenient American friend, both of whom had crossed her desk twice now in contexts that should never have overlapped." | | 6 | "She only crouched once more at the sigil's edge, close enough to feel that the cold there was different from the cold of the station—drier, cleaner, wrong—and thought, not for the first time since Morris, that some doors, once you noticed them, could not be unnoticed again." |
| |
| 90.21% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 840 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.05119047619047619 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.014285714285714285 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 59 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 59 | | mean | 17.75 | | std | 12.14 | | cv | 0.684 | | sampleLengths | | 0 | 19 | | 1 | 34 | | 2 | 5 | | 3 | 21 | | 4 | 10 | | 5 | 30 | | 6 | 32 | | 7 | 22 | | 8 | 20 | | 9 | 19 | | 10 | 5 | | 11 | 27 | | 12 | 6 | | 13 | 26 | | 14 | 3 | | 15 | 32 | | 16 | 6 | | 17 | 6 | | 18 | 39 | | 19 | 5 | | 20 | 2 | | 21 | 42 | | 22 | 2 | | 23 | 13 | | 24 | 6 | | 25 | 18 | | 26 | 18 | | 27 | 22 | | 28 | 5 | | 29 | 7 | | 30 | 9 | | 31 | 7 | | 32 | 2 | | 33 | 14 | | 34 | 3 | | 35 | 15 | | 36 | 27 | | 37 | 34 | | 38 | 29 | | 39 | 13 | | 40 | 20 | | 41 | 35 | | 42 | 5 | | 43 | 19 | | 44 | 14 | | 45 | 9 | | 46 | 13 | | 47 | 3 | | 48 | 34 | | 49 | 12 |
| |
| 77.40% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5254237288135594 | | totalSentences | 59 | | uniqueOpeners | 31 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 42 | | matches | (empty) | | ratio | 0 | |
| 67.62% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 42 | | matches | | 0 | "It had come in as" | | 1 | "She understood why the moment" | | 2 | "She was solid, careful, the" | | 3 | "She crouched at the edge" | | 4 | "She'd seen electrocutions—two, in eighteen" | | 5 | "She still moved like she" | | 6 | "She'd have called it graffiti" | | 7 | "She'd learned, three years ago," | | 8 | "She'd watched that happen to" | | 9 | "She wasn't going to make" | | 10 | "She crouched again, closer to" | | 11 | "His hands, though, were blistered" | | 12 | "She had told herself for" | | 13 | "She had built a whole" | | 14 | "She didn't say the rest—that" | | 15 | "She only crouched once more" |
| | ratio | 0.381 | |
| 19.52% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 37 | | totalSentences | 42 | | matches | | 0 | "The abandoned Camden Town platform" | | 1 | "Detective Harlow Quinn ducked under" | | 2 | "It had come in as" | | 3 | "She understood why the moment" | | 4 | "The body lay near the" | | 5 | "She was solid, careful, the" | | 6 | "Quinn didn't answer right away." | | 7 | "She crouched at the edge" | | 8 | "Burn radials didn't behave like" | | 9 | "She'd seen electrocutions—two, in eighteen" | | 10 | "This was different." | | 11 | "This was a perfect ring," | | 12 | "Bhatt gestured toward the tunnel" | | 13 | "Quinn stood, joints protesting the" | | 14 | "She still moved like she" | | 15 | "There, cut into the tile—not" | | 16 | "A circle within a circle," | | 17 | "She'd have called it graffiti" | | 18 | "This looked grown, not carved." | | 19 | "Bhatt came over, camera already" |
| | ratio | 0.881 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 42 | | matches | (empty) | | ratio | 0 | |
| 68.97% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 3 | | matches | | 0 | "Detective Harlow Quinn ducked under the police tape a constable had strung across the stairwell, though God knew how he'd justified stringing tape in a station …" | | 1 | "Bhatt gave her a careful look, the kind subordinates gave superiors who'd started saying things slightly too far past the evidence." | | 2 | "She didn't say the rest—that she intended to find out who held the key, or that she had a growing, unwelcome suspicion the answer ran through a redheaded museum…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 19 | | tagDensity | 0.158 | | leniency | 0.316 | | rawRatio | 0 | | effectiveRatio | 0 | |