| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 22 | | tagDensity | 0.182 | | leniency | 0.364 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 92.08% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1262 | | totalAiIsmAdverbs | 2 | | 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) | |
| 44.53% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1262 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "scanned" | | 1 | "etched" | | 2 | "flickered" | | 3 | "pulsed" | | 4 | "resonated" | | 5 | "shimmered" | | 6 | "cacophony" | | 7 | "otherworldly" | | 8 | "familiar" | | 9 | "depths" | | 10 | "chaotic" | | 11 | "scanning" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 78 | | matches | (empty) | |
| 69.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 78 | | filterMatches | | | hedgeMatches | | 0 | "appeared to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 95 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1246 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 984 | | uniqueNames | 14 | | maxNameDensity | 1.63 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Detective | 1 | | Harlow | 1 | | Quinn | 16 | | Soho | 2 | | Morris | 3 | | Veil | 2 | | Market | 3 | | London | 1 | | Tomás | 1 | | Herrera | 7 | | Saint | 2 | | Christopher | 2 | | Bone | 1 | | Exchange | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Morris" | | 3 | "Market" | | 4 | "Tomás" | | 5 | "Herrera" | | 6 | "Saint" | | 7 | "Christopher" |
| | places | | | globalScore | 0.687 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | 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 | 1246 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 95 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 31.95 | | std | 17.13 | | cv | 0.536 | | sampleLengths | | 0 | 47 | | 1 | 54 | | 2 | 14 | | 3 | 43 | | 4 | 35 | | 5 | 53 | | 6 | 27 | | 7 | 60 | | 8 | 29 | | 9 | 43 | | 10 | 49 | | 11 | 38 | | 12 | 44 | | 13 | 41 | | 14 | 25 | | 15 | 53 | | 16 | 69 | | 17 | 29 | | 18 | 9 | | 19 | 12 | | 20 | 16 | | 21 | 8 | | 22 | 22 | | 23 | 21 | | 24 | 16 | | 25 | 36 | | 26 | 6 | | 27 | 38 | | 28 | 10 | | 29 | 37 | | 30 | 67 | | 31 | 5 | | 32 | 38 | | 33 | 8 | | 34 | 33 | | 35 | 11 | | 36 | 33 | | 37 | 34 | | 38 | 33 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 78 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 157 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 95 | | ratio | 0.105 | | matches | | 0 | "The suspect—a wiry man in a dark hoodie—had led her on a winding chase for the past ten minutes." | | 1 | "Her brown eyes scanned the alley, noting the small symbol etched near the base of the wall—something resembling a serpent coiled around a crescent moon." | | 2 | "Quinn pulled out her phone, but the screen flickered and died—no signal, no power." | | 3 | "The memory returned in a flash—her informant's words about the Veil Market, a supernatural black market that moved with the lunar cycle." | | 4 | "The air that rushed out carried strange scents—ozone, something metallic, and an underlying sweetness that made her head spin." | | 5 | "A decision had to be made—abandon the chase and return to the safety of familiar territory, or follow the suspect into the unknown depths of the Veil Market." | | 6 | "Creatures of every description browsed the wares—some humanoid, others barely recognizable as such." | | 7 | "He was nowhere in sight, but her gaze caught on a familiar figure at a nearby stall—Tomás Herrera, the paramedic who'd lost his NHS license under suspicious circumstances." | | 8 | "But another part—the part that had been chasing shadows for three years, the part that still woke from nightmares of Morris screaming her name before the line went dead—that part demanded she press forward." | | 9 | "The main cavern bustled with activity, while the darker tunnel where her suspect had disappeared promised answers—and danger." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 999 | | adjectiveStacks | 1 | | stackExamples | | 0 | "short, curly dark hair." |
| | adverbCount | 20 | | adverbRatio | 0.02002002002002002 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.01001001001001001 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 95 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 95 | | mean | 13.12 | | std | 7.09 | | cv | 0.541 | | sampleLengths | | 0 | 16 | | 1 | 19 | | 2 | 12 | | 3 | 18 | | 4 | 18 | | 5 | 18 | | 6 | 14 | | 7 | 19 | | 8 | 14 | | 9 | 10 | | 10 | 10 | | 11 | 10 | | 12 | 10 | | 13 | 1 | | 14 | 2 | | 15 | 2 | | 16 | 25 | | 17 | 18 | | 18 | 10 | | 19 | 10 | | 20 | 9 | | 21 | 2 | | 22 | 1 | | 23 | 5 | | 24 | 14 | | 25 | 11 | | 26 | 17 | | 27 | 9 | | 28 | 9 | | 29 | 22 | | 30 | 4 | | 31 | 3 | | 32 | 9 | | 33 | 9 | | 34 | 15 | | 35 | 10 | | 36 | 12 | | 37 | 6 | | 38 | 13 | | 39 | 18 | | 40 | 19 | | 41 | 19 | | 42 | 8 | | 43 | 2 | | 44 | 10 | | 45 | 24 | | 46 | 13 | | 47 | 28 | | 48 | 9 | | 49 | 16 |
| |
| 61.05% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.4105263157894737 | | totalSentences | 95 | | uniqueOpeners | 39 | |
| 46.30% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 72 | | matches | | 0 | "Probably insufficient for whatever lay" |
| | ratio | 0.014 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 72 | | matches | | 0 | "Her breath came in sharp" | | 1 | "Her voice cut through the" | | 2 | "He slipped through the opening," | | 3 | "She skidded to a halt," | | 4 | "Her military bearing kept her" | | 5 | "Her brown eyes scanned the" | | 6 | "She'd seen similar markings before," | | 7 | "She pressed her ear against" | | 8 | "She tucked the useless device" | | 9 | "It matched the crescent moon" | | 10 | "She pulled out the bone" | | 11 | "She hesitated at the threshold," | | 12 | "Her fingers tightened around the" | | 13 | "He was nowhere in sight," | | 14 | "His Saint Christopher medallion glinted" | | 15 | "Their eyes met across the" | | 16 | "He excused himself from the" | | 17 | "He stepped closer, lowering his" | | 18 | "She eyed the vial suspiciously." | | 19 | "He adjusted his Saint Christopher" |
| | ratio | 0.292 | |
| 15.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 72 | | matches | | 0 | "Rain lashed against Detective Harlow" | | 1 | "The suspect—a wiry man in" | | 2 | "Her breath came in sharp" | | 3 | "Thunder rumbled overhead as she" | | 4 | "The suspect glanced back, panic" | | 5 | "Quinn's sharp jaw tightened as" | | 6 | "Her voice cut through the" | | 7 | "The suspect reached the brick" | | 8 | "Quinn watched, fascinated, as a" | | 9 | "He slipped through the opening," | | 10 | "She skidded to a halt," | | 11 | "Her military bearing kept her" | | 12 | "Quinn approached the wall, running" | | 13 | "Her brown eyes scanned the" | | 14 | "She'd seen similar markings before," | | 15 | "The case with the unexplained" | | 16 | "A muffled sound from behind" | | 17 | "She pressed her ear against" | | 18 | "The unmistakable hum of activity." | | 19 | "Quinn pulled out her phone," |
| | ratio | 0.889 | |
| 69.44% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 72 | | matches | | 0 | "Before Quinn could respond, Herrera" |
| | ratio | 0.014 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 6 | | matches | | 0 | "She'd seen similar markings before, during the investigation that had cost DS Morris his life three years ago." | | 1 | "The memory returned in a flash—her informant's words about the Veil Market, a supernatural black market that moved with the lunar cycle." | | 2 | "The air that rushed out carried strange scents—ozone, something metallic, and an underlying sweetness that made her head spin." | | 3 | "She hesitated at the threshold, the professional investigator in her warring with the woman who had lost her partner to forces she couldn't explain." | | 4 | "The underground space revealed itself gradually, lit by an assortment of glowing crystals, floating orbs, and traditional lanterns that burned with colored flam…" | | 5 | "But another part—the part that had been chasing shadows for three years, the part that still woke from nightmares of Morris screaming her name before the line w…" |
| |
| 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 | |