| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 6 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 14 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 86.54% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1114 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slightly" | | 1 | "slowly" | | 2 | "suddenly" |
| |
| 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) | |
| 46.14% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1114 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "glistening" | | 1 | "flickered" | | 2 | "weight" | | 3 | "familiar" | | 4 | "pulse" | | 5 | "flicker" | | 6 | "echoed" | | 7 | "predator" | | 8 | "shimmered" | | 9 | "unreadable" | | 10 | "echoing" |
| |
| 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 | 88 | | matches | (empty) | |
| 94.16% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 88 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | 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 | 1106 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 87.08% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 1033 | | uniqueNames | 11 | | maxNameDensity | 1.26 | | worstName | "Harlow" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Harlow" | | discoveredNames | | Soho | 1 | | Harlow | 13 | | Quinn | 1 | | Raven | 2 | | Nest | 2 | | Elias | 2 | | Voss | 9 | | Veil | 2 | | Market | 2 | | Morris | 1 | | Tomás | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Nest" | | 4 | "Elias" | | 5 | "Voss" | | 6 | "Market" | | 7 | "Morris" | | 8 | "Tomás" |
| | places | | | globalScore | 0.871 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 66 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like a distant dream" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1106 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 97 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 36.87 | | std | 32.16 | | cv | 0.872 | | sampleLengths | | 0 | 119 | | 1 | 103 | | 2 | 20 | | 3 | 74 | | 4 | 95 | | 5 | 19 | | 6 | 62 | | 7 | 5 | | 8 | 82 | | 9 | 65 | | 10 | 7 | | 11 | 49 | | 12 | 11 | | 13 | 10 | | 14 | 12 | | 15 | 40 | | 16 | 9 | | 17 | 19 | | 18 | 37 | | 19 | 50 | | 20 | 12 | | 21 | 8 | | 22 | 60 | | 23 | 55 | | 24 | 13 | | 25 | 25 | | 26 | 14 | | 27 | 13 | | 28 | 3 | | 29 | 15 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 88 | | matches | (empty) | |
| 45.86% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 173 | | matches | | 0 | "was leading" | | 1 | "was speaking" | | 2 | "was walking" | | 3 | "was trying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 97 | | ratio | 0.082 | | matches | | 0 | "She had been tailing the suspect for twenty minutes now—ever since he’d slipped out the back door of Silas’ bar, his coat pulled tight against the cold." | | 1 | "Three years ago, she’d lost her partner, DS Morris, in a case that had gone sideways—too sideways." | | 2 | "The alley behind the Raven’s Nest was narrow, the air thick with the scent of damp stone and something sharper—ozone, maybe, or the metallic tang of old blood." | | 3 | "The air down here was warmer, thick with the scent of damp earth and something else—something metallic, like copper." | | 4 | "Instead, it was a labyrinth of rusted metal scaffolding, flickering lanterns casting long shadows, and the occasional flash of something that wasn’t quite right—eyes reflecting in the dark, movements that were too quick, too precise." | | 5 | "Around him, figures moved—some human, some not." | | 6 | "And Voss—he was speaking to a figure in the shadows, his voice low, his posture relaxed." | | 7 | "His gaze locked onto hers, and for a second, she saw it—the recognition, the understanding." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 121 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 1 | | adverbRatio | 0.008264462809917356 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 11.4 | | std | 6.95 | | cv | 0.61 | | sampleLengths | | 0 | 16 | | 1 | 26 | | 2 | 20 | | 3 | 27 | | 4 | 20 | | 5 | 10 | | 6 | 16 | | 7 | 13 | | 8 | 3 | | 9 | 17 | | 10 | 12 | | 11 | 4 | | 12 | 20 | | 13 | 18 | | 14 | 20 | | 15 | 28 | | 16 | 10 | | 17 | 3 | | 18 | 2 | | 19 | 27 | | 20 | 4 | | 21 | 5 | | 22 | 16 | | 23 | 9 | | 24 | 12 | | 25 | 13 | | 26 | 19 | | 27 | 21 | | 28 | 13 | | 29 | 3 | | 30 | 3 | | 31 | 6 | | 32 | 9 | | 33 | 35 | | 34 | 12 | | 35 | 5 | | 36 | 23 | | 37 | 7 | | 38 | 13 | | 39 | 21 | | 40 | 16 | | 41 | 2 | | 42 | 6 | | 43 | 5 | | 44 | 12 | | 45 | 5 | | 46 | 16 | | 47 | 14 | | 48 | 7 | | 49 | 7 |
| |
| 47.42% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.3402061855670103 | | totalSentences | 97 | | uniqueOpeners | 33 | |
| 39.22% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 85 | | matches | | 0 | "Instead, it was a labyrinth" |
| | ratio | 0.012 | |
| 97.65% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 85 | | matches | | 0 | "She had been tailing the" | | 1 | "His name was Elias Voss," | | 2 | "She wasn’t here for the" | | 3 | "She’d found the charred remains" | | 4 | "She wasn’t afraid." | | 5 | "He was something else." | | 6 | "She took them two at" | | 7 | "It was nothing like the" | | 8 | "She could end this now." | | 9 | "She wouldn’t make the same" | | 10 | "His eyes were warm, but" | | 11 | "he said, his voice low," | | 12 | "She didn’t lower the gun." | | 13 | "His gaze locked onto hers," | | 14 | "He knew her." | | 15 | "She had a choice to" | | 16 | "She could shoot Voss now," | | 17 | "She’d lost her partner once." | | 18 | "She wasn’t about to lose" | | 19 | "she said, her voice low" |
| | ratio | 0.306 | |
| 48.24% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 70 | | totalSentences | 85 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn’s boots splashed" | | 2 | "The neon glow of the" | | 3 | "She had been tailing the" | | 4 | "His name was Elias Voss," | | 5 | "Something that made the Veil" | | 6 | "Harlow’s gloved fingers tightened around" | | 7 | "She wasn’t here for the" | | 8 | "This was bigger." | | 9 | "The official report had called" | | 10 | "She’d found the charred remains" | | 11 | "A symbol she’d seen before," | | 12 | "The alley behind the Raven’s" | | 13 | "Harlow’s breath came steady, her" | | 14 | "She wasn’t afraid." | | 15 | "He was something else." | | 16 | "A figure ducking into a" | | 17 | "Harlow followed, her boots clicking" | | 18 | "The passage opened into a" | | 19 | "She took them two at" |
| | ratio | 0.824 | |
| 58.82% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 85 | | matches | | 0 | "Now, Voss was leading her" |
| | ratio | 0.012 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 6 | | matches | | 0 | "Something that made the Veil Market’s dealers look like amateurs." | | 1 | "Three years ago, she’d lost her partner, DS Morris, in a case that had gone sideways—too sideways." | | 2 | "A symbol she’d seen before, in old grimoires, in the whispered warnings of occultists who knew too much." | | 3 | "Instead, it was a labyrinth of rusted metal scaffolding, flickering lanterns casting long shadows, and the occasional flash of something that wasn’t quite right…" | | 4 | "A man with antlers like a stag’s leaned against a stall selling vials of liquid that shimmered with an inner light." | | 5 | "Voss turned at that moment, his head tilting slightly, as if he’d heard something." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 6 | | uselessAdditionCount | 4 | | matches | | 0 | "he said, his voice low, urgent" | | 1 | "Tomás said, his voice grim" | | 2 | "she said, her voice low" | | 3 | "he said, his voice echoing through the market" |
| |
| 78.57% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 14 | | tagDensity | 0.357 | | leniency | 0.714 | | rawRatio | 0.2 | | effectiveRatio | 0.143 | |