| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.83% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1198 | | 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) | |
| 83.31% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1198 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "measured" | | 1 | "footsteps" | | 2 | "rhythmic" | | 3 | "glinting" |
| |
| 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 | 79 | | matches | (empty) | |
| 52.44% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 4 | | narrationSentences | 79 | | filterMatches | | | hedgeMatches | | 0 | "started to" | | 1 | "happen to" | | 2 | "seemed to" | | 3 | "try to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 81 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1189 | | 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 | 31 | | wordCount | 1155 | | uniqueNames | 17 | | maxNameDensity | 0.69 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Quinn | 8 | | Tomás | 2 | | Herrera | 5 | | Thames | 1 | | Raven | 1 | | Nest | 1 | | Morris | 3 | | Static | 1 | | Victorian | 1 | | Tube | 1 | | Detective | 1 | | Harlow | 1 | | Saint | 1 | | Christopher | 1 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Tomás" | | 2 | "Herrera" | | 3 | "Morris" | | 4 | "Static" | | 5 | "Tube" | | 6 | "Harlow" | | 7 | "Saint" | | 8 | "Christopher" |
| | places | | 0 | "Thames" | | 1 | "Raven" | | 2 | "Veil" | | 3 | "Market" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 1 | | matches | | 0 | "dark that seemed to drink it" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.841 | | wordCount | 1189 | | matches | | 0 | "not this door, but one like it, a black mouth in the side of an ordinary night" |
| |
| 84.36% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 81 | | matches | | 0 | "hating that word" | | 1 | "confirmed, that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 44.04 | | std | 32.76 | | cv | 0.744 | | sampleLengths | | 0 | 67 | | 1 | 18 | | 2 | 6 | | 3 | 110 | | 4 | 53 | | 5 | 22 | | 6 | 70 | | 7 | 30 | | 8 | 9 | | 9 | 6 | | 10 | 64 | | 11 | 58 | | 12 | 37 | | 13 | 41 | | 14 | 37 | | 15 | 94 | | 16 | 17 | | 17 | 93 | | 18 | 3 | | 19 | 84 | | 20 | 6 | | 21 | 107 | | 22 | 59 | | 23 | 1 | | 24 | 44 | | 25 | 18 | | 26 | 35 |
| |
| 87.50% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 79 | | matches | | 0 | "been trained" | | 1 | "was gone" | | 2 | "was gone" | | 3 | "were gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 202 | | matches | | 0 | "was hesitating" | | 1 | "was selling" | | 2 | "was watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 81 | | ratio | 0.099 | | matches | | 0 | "She'd had him made for three weeks now—the former paramedic, the one who turned up at the edges of every case that didn't make sense." | | 1 | "He went down hard, and Quinn's heart leapt—gotcha—but he was up again before she'd closed half the distance, scrambling toward a sheet of corrugated iron leaning against a brick wall." | | 2 | "Cold air breathed up out of it, smelling of wet stone and rust and something underneath that—something sweet and chemical, like spilled medicine, like a hospital with the lights off." | | 3 | "Three years ago he had gone through a door like this—not this door, but one like it, a black mouth in the side of an ordinary night—and she had hesitated at the threshold the way she was hesitating now, and by the time she'd made up her mind to follow he was gone, and they'd never found enough of him to bury." | | 4 | "The stairs were old—Victorian tile, cracked and slick, the white gone the color of a bad tooth." | | 5 | "Lanterns hung from the curved ceiling—real flame, she thought, though some of it burned in colors flame had no business burning." | | 6 | "Stalls crowded the platform edge to edge, draped in dark cloth, and figures moved between them, dozens of them, hooded and unhooded, human and—" | | 7 | "Above an archway at the far end, someone had hung a sign painted with a single open eye, and beneath it stood a creature taking small pale tokens from each visitor who passed—bone, she realized." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1164 | | adjectiveStacks | 1 | | stackExamples | | 0 | "clean, rational, decorated instinct" |
| | adverbCount | 31 | | adverbRatio | 0.02663230240549828 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.002577319587628866 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 81 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 81 | | mean | 14.68 | | std | 11.65 | | cv | 0.794 | | sampleLengths | | 0 | 18 | | 1 | 22 | | 2 | 3 | | 3 | 4 | | 4 | 20 | | 5 | 15 | | 6 | 3 | | 7 | 6 | | 8 | 25 | | 9 | 13 | | 10 | 17 | | 11 | 19 | | 12 | 36 | | 13 | 6 | | 14 | 19 | | 15 | 2 | | 16 | 7 | | 17 | 19 | | 18 | 11 | | 19 | 4 | | 20 | 7 | | 21 | 18 | | 22 | 30 | | 23 | 4 | | 24 | 18 | | 25 | 6 | | 26 | 4 | | 27 | 1 | | 28 | 19 | | 29 | 9 | | 30 | 6 | | 31 | 30 | | 32 | 24 | | 33 | 10 | | 34 | 6 | | 35 | 16 | | 36 | 32 | | 37 | 4 | | 38 | 23 | | 39 | 14 | | 40 | 1 | | 41 | 12 | | 42 | 4 | | 43 | 5 | | 44 | 5 | | 45 | 14 | | 46 | 4 | | 47 | 33 | | 48 | 6 | | 49 | 62 |
| |
| 65.84% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.4691358024691358 | | totalSentences | 81 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 73 | | matches | | 0 | "Then he dropped into the" | | 1 | "Then more static, oddly textured," | | 2 | "Then nothing at all." |
| | ratio | 0.041 | |
| 66.58% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 73 | | matches | | 0 | "She ran low and hard," | | 1 | "He was fast." | | 2 | "She'd give him that." | | 3 | "she shouted, and her voice" | | 4 | "She'd had him made for" | | 5 | "He hooked left into an" | | 6 | "She'd chased men through worse" | | 7 | "She'd chased men through the" | | 8 | "She thought of Morris every" | | 9 | "She couldn't help it." | | 10 | "He went down hard, and" | | 11 | "He hauled it aside." | | 12 | "He glanced back at her" | | 13 | "Her torch found the top" | | 14 | "She could hear his footsteps" | | 15 | "They'd taught her that you" | | 16 | "They'd taught her that the" | | 17 | "She keyed her radio." | | 18 | "She paused, looking at the" | | 19 | "She looked at the radio." |
| | ratio | 0.384 | |
| 76.44% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 56 | | totalSentences | 73 | | matches | | 0 | "Rain came down in sheets," | | 1 | "She ran low and hard," | | 2 | "He was fast." | | 3 | "She'd give him that." | | 4 | "she shouted, and her voice" | | 5 | "Tomás Herrera did not stop" | | 6 | "She'd had him made for" | | 7 | "The warehouse fire where the" | | 8 | "The girl who walked out" | | 9 | "Herrera was always there, just" | | 10 | "Tonight she'd finally gotten close" | | 11 | "He hooked left into an" | | 12 | "Quinn followed, her left wrist" | | 13 | "She'd chased men through worse" | | 14 | "She'd chased men through the" | | 15 | "She thought of Morris every" | | 16 | "She couldn't help it." | | 17 | "The burn was a kind" | | 18 | "Herrera vaulted a low fence" | | 19 | "He went down hard, and" |
| | ratio | 0.767 | |
| 68.49% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 73 | | matches | | 0 | "As though he were sorry" |
| | ratio | 0.014 | |
| 91.84% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 3 | | matches | | 0 | "She'd chased men through the kind of night that took your partner and gave you back nothing but questions." | | 1 | "Her torch caught flashes of graffiti that weren't graffiti, symbols cut deep into the tile, geometric and deliberate, repeating at intervals like the markings o…" | | 2 | "Above an archway at the far end, someone had hung a sign painted with a single open eye, and beneath it stood a creature taking small pale tokens from each visi…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 1 | | effectiveRatio | 0.5 | |