| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 1 | | adverbTags | | 0 | "Quinn said slowly [slowly]" |
| | dialogueSentences | 34 | | tagDensity | 0.441 | | leniency | 0.882 | | rawRatio | 0.067 | | effectiveRatio | 0.059 | |
| 79.69% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1477 | | totalAiIsmAdverbs | 6 | | found | | 0 | | adverb | "barely above a whisper" | | count | 1 |
| | 1 | | | 2 | | | 3 | | | 4 | |
| | highlights | | 0 | "barely above a whisper" | | 1 | "slowly" | | 2 | "utterly" | | 3 | "suddenly" | | 4 | "very" |
| |
| 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) | |
| 69.53% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1477 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "echoed" | | 1 | "footsteps" | | 2 | "measured" | | 3 | "etched" | | 4 | "whisper" | | 5 | "scanning" | | 6 | "perfect" | | 7 | "tracing" | | 8 | "pulse" |
| |
| 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 | 84 | | matches | (empty) | |
| 6.80% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 6 | | narrationSentences | 84 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 102 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1465 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 52.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 44 | | wordCount | 1075 | | uniqueNames | 12 | | maxNameDensity | 1.95 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 21 | | Tube | 1 | | Camden | 1 | | Kowalski | 1 | | John | 1 | | Doe | 1 | | Eva | 13 | | British | 1 | | Museum | 1 | | Veil | 1 | | Market | 1 | | Morris | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Camden" | | 2 | "Kowalski" | | 3 | "John" | | 4 | "Doe" | | 5 | "Eva" | | 6 | "Museum" | | 7 | "Market" | | 8 | "Morris" |
| | places | | | globalScore | 0.523 | | windowScore | 0.667 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 4 | | matches | | 0 | "darkness that seemed to push back against the light" | | 1 | "symbols that seemed to shift when Quinn tried to focus on them, and its casing bore a patina of verdigris that spoke to age far beyond what brass should accumulate" | | 2 | "looked like" | | 3 | "spiral that seemed to turn inward the longer she looked at it" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1465 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 102 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 40 | | mean | 36.63 | | std | 22.8 | | cv | 0.622 | | sampleLengths | | 0 | 58 | | 1 | 71 | | 2 | 54 | | 3 | 35 | | 4 | 41 | | 5 | 78 | | 6 | 15 | | 7 | 8 | | 8 | 81 | | 9 | 33 | | 10 | 64 | | 11 | 29 | | 12 | 4 | | 13 | 87 | | 14 | 56 | | 15 | 4 | | 16 | 14 | | 17 | 40 | | 18 | 9 | | 19 | 36 | | 20 | 34 | | 21 | 48 | | 22 | 18 | | 23 | 45 | | 24 | 27 | | 25 | 27 | | 26 | 55 | | 27 | 15 | | 28 | 8 | | 29 | 73 | | 30 | 39 | | 31 | 32 | | 32 | 35 | | 33 | 53 | | 34 | 34 | | 35 | 3 | | 36 | 51 | | 37 | 25 | | 38 | 5 | | 39 | 21 |
| |
| 71.85% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 8 | | totalSentences | 84 | | matches | | 0 | "been hollowed" | | 1 | "were written" | | 2 | "been removed" | | 3 | "been found" | | 4 | "was etched" | | 5 | "been stained" | | 6 | "were gone" | | 7 | "been clenched" | | 8 | "been told" |
| |
| 98.48% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 197 | | matches | | 0 | "was studying" | | 1 | "was only beginning" | | 2 | "was already moving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 102 | | ratio | 0.078 | | matches | | 0 | "She'd found it in the victim's coat pocket three days ago, and it had taken her that long to learn what it was for—and longer still to find someone willing to tell her where to use it." | | 1 | "The body had been removed two nights ago—a John Doe, mid-forties, cause of death listed as cardiac arrest despite the fact that his heart had been found six feet from his chest, still beating when the first responder arrived." | | 2 | "Quinn recognized it—she'd seen drawings of similar objects in the restricted files Eva had shown her, files that weren't supposed to exist in the British Museum's archives." | | 3 | "The blackening wasn't on the surface—it was in the tile itself, as if the ceramic had been stained from within." | | 4 | "The market stalls were gone now—packed up and vanished into whatever shadow roads the Veil Market's vendors used to transport their wares." | | 5 | "She pulled out her notebook—leather-bound, worn soft from years of use—and sketched the shape." | | 6 | "Three years ago, DS Morris had died in a warehouse fire that had burned cold—flames that froze everything they touched, that left her partner's body unmarked but utterly, impossibly dead." | | 7 | "Same hollow lightness, same chalk-white surface, but this one was marked with a symbol she didn't recognize—a spiral that seemed to turn inward the longer she looked at it." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1087 | | adjectiveStacks | 1 | | stackExamples | | 0 | "same chalk-white surface," |
| | adverbCount | 31 | | adverbRatio | 0.028518859245630176 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.011039558417663294 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 102 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 102 | | mean | 14.36 | | std | 10.09 | | cv | 0.703 | | sampleLengths | | 0 | 8 | | 1 | 13 | | 2 | 37 | | 3 | 25 | | 4 | 20 | | 5 | 26 | | 6 | 37 | | 7 | 17 | | 8 | 13 | | 9 | 4 | | 10 | 7 | | 11 | 11 | | 12 | 11 | | 13 | 30 | | 14 | 8 | | 15 | 31 | | 16 | 39 | | 17 | 9 | | 18 | 6 | | 19 | 8 | | 20 | 18 | | 21 | 27 | | 22 | 36 | | 23 | 16 | | 24 | 17 | | 25 | 8 | | 26 | 5 | | 27 | 20 | | 28 | 14 | | 29 | 17 | | 30 | 16 | | 31 | 13 | | 32 | 4 | | 33 | 7 | | 34 | 22 | | 35 | 32 | | 36 | 26 | | 37 | 8 | | 38 | 17 | | 39 | 31 | | 40 | 4 | | 41 | 14 | | 42 | 10 | | 43 | 4 | | 44 | 12 | | 45 | 14 | | 46 | 4 | | 47 | 5 | | 48 | 11 | | 49 | 11 |
| |
| 66.99% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.43137254901960786 | | totalSentences | 102 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 77 | | matches | | 0 | "Too light, like holding a" | | 1 | "Instead, her words fell flat," | | 2 | "Almost perfect circle, save for" | | 3 | "Just a grim recognition between" |
| | ratio | 0.052 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 77 | | matches | | 0 | "She'd found it in the" | | 1 | "It wasn't char, she realized." | | 2 | "She pulled a penlight from" | | 3 | "Its needle had stopped spinning," | | 4 | "She pulled out her notebook—leather—bound," | | 5 | "She was quiet for a" | | 6 | "she finally said" | | 7 | "His hands had been clenched" | | 8 | "She moved toward it, her" | | 9 | "She'd been told it was" | | 10 | "She'd known it was a" | | 11 | "She just hadn't known what" | | 12 | "She stopped near the tunnel" | | 13 | "Her torch suddenly felt inadequate." | | 14 | "She met Eva's eyes, seeing" | | 15 | "She pulled a second bone" | | 16 | "They walked into the black" |
| | ratio | 0.221 | |
| 44.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 77 | | matches | | 0 | "The bone token felt wrong" | | 1 | "She'd found it in the" | | 2 | "The abandoned Tube station beneath" | | 3 | "Quinn descended the last few" | | 4 | "The platform stretched before her," | | 5 | "Eva Kowalski stood with her" | | 6 | "The young woman was studying" | | 7 | "Quinn said, and her voice" | | 8 | "The acoustics were wrong." | | 9 | "Sound should have carried further," | | 10 | "Eva turned, tucking a strand" | | 11 | "Quinn crossed the platform, her" | | 12 | "The body had been removed" | | 13 | "That detail hadn't made it" | | 14 | "Quinn had made sure of" | | 15 | "Eva crouched near a scorch" | | 16 | "Quinn recognized it—she'd seen drawings" | | 17 | "The compass's face was etched" | | 18 | "Eva said, her voice dropping" | | 19 | "Quinn knelt beside her, studying" |
| | ratio | 0.831 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 77 | | matches | (empty) | | ratio | 0 | |
| 32.97% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 6 | | matches | | 0 | "The abandoned Tube station beneath Camden smelled of damp stone and something else, something that reminded her of the ozone tang before a lightning strike." | | 1 | "Quinn recognized it—she'd seen drawings of similar objects in the restricted files Eva had shown her, files that weren't supposed to exist in the British Museum…" | | 2 | "The compass's face was etched with symbols that seemed to shift when Quinn tried to focus on them, and its casing bore a patina of verdigris that spoke to age f…" | | 3 | "Three years ago, DS Morris had died in a warehouse fire that had burned cold—flames that froze everything they touched, that left her partner's body unmarked bu…" | | 4 | "Just a grim recognition between two people who had seen behind the curtain and couldn't pretend the world was still what they'd believed it to be." | | 5 | "Same hollow lightness, same chalk-white surface, but this one was marked with a symbol she didn't recognize—a spiral that seemed to turn inward the longer she l…" |
| |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 1 | | matches | | 0 | "Eva said, her voice dropping to barely above a whisper" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 34 | | tagDensity | 0.265 | | leniency | 0.529 | | rawRatio | 0 | | effectiveRatio | 0 | |