| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 23 | | tagDensity | 0.435 | | leniency | 0.87 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 82.68% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1155 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | | 2 | | adverb | "barely above a whisper" | | count | 1 |
| | 3 | |
| | highlights | | 0 | "slightly" | | 1 | "cautiously" | | 2 | "barely above a whisper" | | 3 | "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) | |
| 0.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1155 | | totalAiIsms | 25 | | found | | | highlights | | 0 | "chilled" | | 1 | "pounding" | | 2 | "sinister" | | 3 | "resolve" | | 4 | "glistening" | | 5 | "flicked" | | 6 | "glinting" | | 7 | "scanned" | | 8 | "unwavering" | | 9 | "stomach" | | 10 | "whisper" | | 11 | "otherworldly" | | 12 | "racing" | | 13 | "chill" | | 14 | "scanning" | | 15 | "gleaming" | | 16 | "velvet" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "sent a shiver through" | | count | 2 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 96 | | matches | | |
| 83.33% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 96 | | filterMatches | | | 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 | | maxSentenceWordsSeen | 31 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1152 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 54.14% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 991 | | uniqueNames | 10 | | maxNameDensity | 1.92 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Detective | 1 | | Harlow | 1 | | Quinn | 19 | | Tomás | 1 | | Herrera | 11 | | London | 1 | | Veil | 2 | | Market | 2 | | Morris | 1 | | Spanish | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Morris" |
| | places | | | globalScore | 0.541 | | windowScore | 0.667 | |
| 48.65% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 74 | | glossingSentenceCount | 3 | | matches | | 0 | "felt like miles, her heart pounding in" | | 1 | "stall that seemed to be selling nothing but bones" | | 2 | "thing that seemed to hum with energy" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.868 | | wordCount | 1152 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 109 | | matches | | |
| 81.78% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 37.16 | | std | 16.21 | | cv | 0.436 | | sampleLengths | | 0 | 69 | | 1 | 42 | | 2 | 65 | | 3 | 52 | | 4 | 46 | | 5 | 13 | | 6 | 18 | | 7 | 34 | | 8 | 30 | | 9 | 35 | | 10 | 48 | | 11 | 65 | | 12 | 47 | | 13 | 44 | | 14 | 41 | | 15 | 22 | | 16 | 26 | | 17 | 4 | | 18 | 59 | | 19 | 17 | | 20 | 58 | | 21 | 29 | | 22 | 40 | | 23 | 18 | | 24 | 39 | | 25 | 47 | | 26 | 17 | | 27 | 39 | | 28 | 32 | | 29 | 23 | | 30 | 33 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 96 | | matches | | |
| 88.27% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 179 | | matches | | 0 | "was running" | | 1 | "was weighing" | | 2 | "was weaving" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 109 | | ratio | 0 | | matches | (empty) | |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 994 | | adjectiveStacks | 1 | | stackExamples | | 0 | "former paramedic turned underground" |
| | adverbCount | 34 | | adverbRatio | 0.03420523138832998 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.009054325955734407 | |
| 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 | 10.57 | | std | 5.95 | | cv | 0.563 | | sampleLengths | | 0 | 16 | | 1 | 17 | | 2 | 17 | | 3 | 19 | | 4 | 20 | | 5 | 22 | | 6 | 19 | | 7 | 6 | | 8 | 27 | | 9 | 13 | | 10 | 20 | | 11 | 7 | | 12 | 8 | | 13 | 17 | | 14 | 15 | | 15 | 12 | | 16 | 13 | | 17 | 6 | | 18 | 5 | | 19 | 8 | | 20 | 6 | | 21 | 12 | | 22 | 12 | | 23 | 22 | | 24 | 11 | | 25 | 12 | | 26 | 7 | | 27 | 22 | | 28 | 5 | | 29 | 6 | | 30 | 2 | | 31 | 11 | | 32 | 15 | | 33 | 15 | | 34 | 7 | | 35 | 9 | | 36 | 3 | | 37 | 7 | | 38 | 31 | | 39 | 15 | | 40 | 7 | | 41 | 3 | | 42 | 16 | | 43 | 10 | | 44 | 11 | | 45 | 15 | | 46 | 16 | | 47 | 7 | | 48 | 4 | | 49 | 2 |
| |
| 41.74% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.28440366972477066 | | totalSentences | 109 | | uniqueOpeners | 31 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 88 | | matches | (empty) | | ratio | 0 | |
| 10.91% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 46 | | totalSentences | 88 | | matches | | 0 | "Her breath misted in the" | | 1 | "She'd been chasing Tomás Herrera" | | 2 | "She was running out of" | | 3 | "She gagged, but her resolve" | | 4 | "She'd been down worse alleys," | | 5 | "His warm brown eyes were" | | 6 | "he panted, his Spanish accent" | | 7 | "He shook his head, backing" | | 8 | "He was weighing his options," | | 9 | "She braced herself, ready for" | | 10 | "She couldn't let him get" | | 11 | "She followed him down the" | | 12 | "She wrinkled her nose, her" | | 13 | "It was like nothing she'd" | | 14 | "She spotted him, his dark" | | 15 | "He was weaving through the" | | 16 | "She took off after him," | | 17 | "She wouldn't lose him." | | 18 | "She rounded a corner and" | | 19 | "She had a job to" |
| | ratio | 0.523 | |
| 28.18% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 76 | | totalSentences | 88 | | matches | | 0 | "The rain lashed at Detective" | | 1 | "Her breath misted in the" | | 2 | "The city lights blurred into" | | 3 | "She'd been chasing Tomás Herrera" | | 4 | "Herrera, a former paramedic turned" | | 5 | "Quinn's worn leather watch glinted" | | 6 | "She was running out of" | | 7 | "The Veil Market, an underground" | | 8 | "The chase led them down" | | 9 | "She gagged, but her resolve" | | 10 | "She'd been down worse alleys," | | 11 | "Herrera skidded to a halt" | | 12 | "His warm brown eyes were" | | 13 | "he panted, his Spanish accent" | | 14 | "Quinn didn't slow her pace." | | 15 | "He shook his head, backing" | | 16 | "Quinn stopped a few feet" | | 17 | "Herrera's gaze flicked over her" | | 18 | "He was weighing his options," | | 19 | "She braced herself, ready for" |
| | ratio | 0.864 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 88 | | matches | | 0 | "If Herrera slipped through her" | | 1 | "Before Herrera could answer, a" | | 2 | "Now, it was little more" |
| | ratio | 0.034 | |
| 49.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 46 | | technicalSentenceCount | 6 | | matches | | 0 | "She'd been chasing Tomás Herrera for what felt like miles, her heart pounding in her chest like a drum." | | 1 | "The Veil Market, an underground black market that dealt in everything from enchanted goods to banned alchemical substances, was due to move locations with the f…" | | 2 | "Stalls made of rotting wood and rusted metal stretched out as far as the eye could see, lit by flickering lanterns that cast eerie shadows on the faces of the p…" | | 3 | "She rounded a corner and spotted him again, this time standing in front of a stall that seemed to be selling nothing but bones." | | 4 | "Now, it was little more than a skeleton, its flesh rotting away, its eyes glowing with an otherworldly light." | | 5 | "It held a bone in its hand, a wicked-looking thing that seemed to hum with energy." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 5 | | matches | | 0 | "he panted, his Spanish accent thick with fear" | | 1 | "she said, her voice low" | | 2 | "he said, his voice barely above a whisper" | | 3 | "she said, her voice steady" | | 4 | "she said, her voice steady" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 23 | | tagDensity | 0.391 | | leniency | 0.783 | | rawRatio | 0.111 | | effectiveRatio | 0.087 | |