| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 53 | | tagDensity | 0.321 | | leniency | 0.642 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1470 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 93.20% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1470 | | totalAiIsms | 2 | | 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 | 74 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 74 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 109 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1476 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 829 | | uniqueNames | 7 | | maxNameDensity | 1.57 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 13 | | Iyer | 7 | | June | 1 | | Eva | 6 | | Veil | 1 | | Compass | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Iyer" | | 3 | "Eva" |
| | places | | | globalScore | 0.716 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | 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 | 1476 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 109 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 52 | | mean | 28.38 | | std | 22.45 | | cv | 0.791 | | sampleLengths | | 0 | 45 | | 1 | 12 | | 2 | 41 | | 3 | 49 | | 4 | 7 | | 5 | 3 | | 6 | 34 | | 7 | 20 | | 8 | 3 | | 9 | 45 | | 10 | 6 | | 11 | 10 | | 12 | 20 | | 13 | 14 | | 14 | 61 | | 15 | 4 | | 16 | 37 | | 17 | 20 | | 18 | 4 | | 19 | 56 | | 20 | 1 | | 21 | 51 | | 22 | 28 | | 23 | 41 | | 24 | 3 | | 25 | 29 | | 26 | 4 | | 27 | 34 | | 28 | 52 | | 29 | 5 | | 30 | 47 | | 31 | 26 | | 32 | 18 | | 33 | 15 | | 34 | 61 | | 35 | 21 | | 36 | 4 | | 37 | 28 | | 38 | 84 | | 39 | 12 | | 40 | 46 | | 41 | 20 | | 42 | 30 | | 43 | 2 | | 44 | 8 | | 45 | 27 | | 46 | 81 | | 47 | 30 | | 48 | 83 | | 49 | 21 |
| |
| 95.78% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 74 | | matches | | 0 | "were curled" | | 1 | "been told" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 136 | | matches | | 0 | "was straining " | | 1 | "was staring" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 109 | | ratio | 0.055 | | matches | | 0 | "Her torch beam carved through dark that smelled of rust, wet concrete, and something else — something sweeter, like flowers left too long in a vase." | | 1 | "It was straining — bent a few degrees off plumb, quivering against the glass like a dog on a leash." | | 2 | "\"Who's the woman by the arch?\" Quinn had spotted her earlier — a short figure in a wool coat, round glasses, a leather satchel clutched to her chest like a shield." | | 3 | "Symbols inside it — angular, dense, nothing like any alphabet Quinn knew." | | 4 | "\"Markets like that don't stay put. They move. And they don't use doors you can see. The token gets you in. The compass—\" she nodded at the evidence bag in Quinn's hand, \"—that's a Veil Compass. It points to the nearest thin place. Threshold. Whatever you want to call it. And I'd bet my doctorate that needle is pointing at that wall.\"" | | 5 | "And the brickwork itself — she ran her torch along the mortar — bore a hairline seam, too straight, too fresh, cutting through mortar that was a century old everywhere else." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 740 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 14 | | adverbRatio | 0.01891891891891892 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.002702702702702703 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 109 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 109 | | mean | 13.54 | | std | 10.76 | | cv | 0.794 | | sampleLengths | | 0 | 19 | | 1 | 26 | | 2 | 12 | | 3 | 15 | | 4 | 13 | | 5 | 2 | | 6 | 4 | | 7 | 7 | | 8 | 10 | | 9 | 16 | | 10 | 11 | | 11 | 12 | | 12 | 7 | | 13 | 3 | | 14 | 19 | | 15 | 15 | | 16 | 10 | | 17 | 10 | | 18 | 3 | | 19 | 12 | | 20 | 7 | | 21 | 24 | | 22 | 2 | | 23 | 6 | | 24 | 2 | | 25 | 8 | | 26 | 19 | | 27 | 1 | | 28 | 14 | | 29 | 10 | | 30 | 24 | | 31 | 5 | | 32 | 1 | | 33 | 21 | | 34 | 4 | | 35 | 8 | | 36 | 25 | | 37 | 4 | | 38 | 20 | | 39 | 4 | | 40 | 4 | | 41 | 4 | | 42 | 20 | | 43 | 7 | | 44 | 21 | | 45 | 1 | | 46 | 31 | | 47 | 20 | | 48 | 15 | | 49 | 13 |
| |
| 83.18% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5321100917431193 | | totalSentences | 109 | | uniqueOpeners | 58 | |
| 49.75% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 67 | | matches | | 0 | "Then she pointed at the" |
| | ratio | 0.015 | |
| 94.63% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 67 | | matches | | 0 | "Her torch beam carved through" | | 1 | "His throat bore a wound" | | 2 | "She held the back of" | | 3 | "She stopped at the victim's" | | 4 | "She leaned closer without touching." | | 5 | "She took the bag." | | 6 | "It was straining — bent" | | 7 | "She turned the bag in" | | 8 | "She'd been hovering at the" | | 9 | "She tucked a curl behind" | | 10 | "She raised her voice without" | | 11 | "He trudged over, torch in" | | 12 | "She traced the air above" | | 13 | "He walked her three metres" | | 14 | "She looked at Eva" | | 15 | "She tucked the same curl" | | 16 | "she nodded at the evidence" | | 17 | "She walked toward the brickwork," | | 18 | "She stopped a metre from" | | 19 | "Her voice came out level" |
| | ratio | 0.313 | |
| 49.55% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 67 | | matches | | 0 | "The ladder down into the" | | 1 | "Her torch beam carved through" | | 2 | "DS Iyer waited at the" | | 3 | "Quinn crossed the platform, her" | | 4 | "The victim lay on his" | | 5 | "His throat bore a wound" | | 6 | "Iyer flipped his notebook open" | | 7 | "Quinn crouched beside the body," | | 8 | "She held the back of" | | 9 | "The tech glanced at her," | | 10 | "The flesh had the grey-white" | | 11 | "Quinn rose and walked a" | | 12 | "She stopped at the victim's" | | 13 | "The fingers were curled, and" | | 14 | "She leaned closer without touching." | | 15 | "Iyer pulled an evidence bag" | | 16 | "The needle was stationary." | | 17 | "She took the bag." | | 18 | "The needle wasn't dead." | | 19 | "It was straining — bent" |
| | ratio | 0.821 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 67 | | matches | (empty) | | ratio | 0 | |
| 60.44% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 3 | | matches | | 0 | "The victim lay on his back, arms at his sides, as though someone had arranged him." | | 1 | "Inside sat a small brass compass, its casing green with verdigris, its face etched with fine intersecting lines that formed no cardinal directions she recognise…" | | 2 | "And the brickwork itself — she ran her torch along the mortar — bore a hairline seam, too straight, too fresh, cutting through mortar that was a century old eve…" |
| |
| 66.18% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 2 | | matches | | 0 | "Eva crouched, her glasses catching the forensic lights" | | 1 | "Quinn turned, torch sweeping the platform" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |