| 94.74% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 2 | | adverbTags | | 0 | "She knelt again [again]" | | 1 | "She stepped back [back]" |
| | dialogueSentences | 38 | | tagDensity | 0.342 | | leniency | 0.684 | | rawRatio | 0.154 | | effectiveRatio | 0.105 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1114 | | 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) | |
| 0.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1114 | | totalAiIsms | 30 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | word | "scratched his head" | | count | 1 |
| | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | | | 23 | | | 24 | | | 25 | |
| | highlights | | 0 | "chaotic" | | 1 | "tapestry" | | 2 | "glistening" | | 3 | "etched" | | 4 | "silence" | | 5 | "furrowed" | | 6 | "scratched his head" | | 7 | "flicked" | | 8 | "pulse" | | 9 | "racing" | | 10 | "scanning" | | 11 | "eyebrow" | | 12 | "chill" | | 13 | "reminder" | | 14 | "could feel" | | 15 | "weight" | | 16 | "stark" | | 17 | "loomed" | | 18 | "testament" | | 19 | "familiar" | | 20 | "echoing" | | 21 | "intricate" | | 22 | "raced" | | 23 | "grave" | | 24 | "pawn" | | 25 | "determined" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
| | 1 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "eyes widened" | | 1 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 52 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 52 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 77 | | 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 | 1111 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 48 | | wordCount | 672 | | uniqueNames | 13 | | maxNameDensity | 2.98 | | worstName | "Quinn" | | maxWindowNameDensity | 5 | | worstWindowName | "Quinn" | | discoveredNames | | Detective | 1 | | Harlow | 1 | | Quinn | 20 | | Tube | 1 | | Camden | 1 | | Markham | 11 | | Morris | 1 | | British | 1 | | Museum | 1 | | Eva | 7 | | Kowalski | 1 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Markham" | | 3 | "Morris" | | 4 | "Museum" | | 5 | "Eva" | | 6 | "Kowalski" |
| | places | | | globalScore | 0.012 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | 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 | 1111 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 77 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 34.72 | | std | 20.05 | | cv | 0.578 | | sampleLengths | | 0 | 75 | | 1 | 76 | | 2 | 28 | | 3 | 43 | | 4 | 22 | | 5 | 60 | | 6 | 11 | | 7 | 30 | | 8 | 18 | | 9 | 42 | | 10 | 22 | | 11 | 45 | | 12 | 16 | | 13 | 29 | | 14 | 29 | | 15 | 27 | | 16 | 85 | | 17 | 62 | | 18 | 10 | | 19 | 27 | | 20 | 16 | | 21 | 29 | | 22 | 32 | | 23 | 36 | | 24 | 7 | | 25 | 27 | | 26 | 14 | | 27 | 34 | | 28 | 42 | | 29 | 23 | | 30 | 26 | | 31 | 68 |
| |
| 91.77% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 52 | | matches | | 0 | "were tattered" | | 1 | "was determined" |
| |
| 37.40% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 123 | | matches | | 0 | "were closing" | | 1 | "were bustling" | | 2 | "were closing" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 77 | | ratio | 0.013 | | matches | | 0 | "The air was thick with the scent of damp concrete and something else—something metallic that clung to the back of Detective Harlow Quinn’s throat as she stepped into the abandoned Tube station beneath Camden." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 673 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 15 | | adverbRatio | 0.022288261515601784 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005943536404160475 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 77 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 77 | | mean | 14.43 | | std | 7.69 | | cv | 0.533 | | sampleLengths | | 0 | 34 | | 1 | 20 | | 2 | 21 | | 3 | 23 | | 4 | 12 | | 5 | 20 | | 6 | 21 | | 7 | 12 | | 8 | 12 | | 9 | 4 | | 10 | 11 | | 11 | 13 | | 12 | 14 | | 13 | 5 | | 14 | 8 | | 15 | 14 | | 16 | 18 | | 17 | 30 | | 18 | 12 | | 19 | 4 | | 20 | 7 | | 21 | 10 | | 22 | 20 | | 23 | 10 | | 24 | 8 | | 25 | 7 | | 26 | 25 | | 27 | 10 | | 28 | 7 | | 29 | 15 | | 30 | 3 | | 31 | 36 | | 32 | 6 | | 33 | 9 | | 34 | 7 | | 35 | 9 | | 36 | 20 | | 37 | 5 | | 38 | 24 | | 39 | 14 | | 40 | 13 | | 41 | 29 | | 42 | 19 | | 43 | 16 | | 44 | 21 | | 45 | 18 | | 46 | 14 | | 47 | 14 | | 48 | 16 | | 49 | 10 |
| |
| 67.53% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.42857142857142855 | | totalSentences | 77 | | uniqueOpeners | 33 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 52 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 8 | | totalSentences | 52 | | matches | | 0 | "It was DS Markham, her" | | 1 | "she replied, though the words" | | 2 | "She knelt again, her fingers" | | 3 | "She turned to Markham, her" | | 4 | "She stepped back, her eyes" | | 5 | "She could feel the weight" | | 6 | "She had lost him to" | | 7 | "she called, her voice echoing" |
| | ratio | 0.154 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 52 | | matches | | 0 | "The air was thick with" | | 1 | "The flickering fluorescent lights overhead" | | 2 | "Graffiti sprawled across the walls," | | 3 | "Lying sprawled on the ground," | | 4 | "Blood pooled around him, dark" | | 5 | "Quinn knelt beside him, her" | | 6 | "The victim’s clothes were tattered," | | 7 | "a voice called from behind" | | 8 | "It was DS Markham, her" | | 9 | "Quinn straightened, her brown eyes" | | 10 | "she replied, though the words" | | 11 | "The bone token was a" | | 12 | "Markham scratched his head, glancing" | | 13 | "Quinn’s gaze flicked to the" | | 14 | "She knelt again, her fingers" | | 15 | "Markham frowned, stepping closer." | | 16 | "Quinn said, her mind racing" | | 17 | "Markham suggested, crossing his arms" | | 18 | "Quinn stood, her gaze sweeping" | | 19 | "She turned to Markham, her" |
| | ratio | 0.942 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 52 | | matches | (empty) | | ratio | 0 | |
| 91.84% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 2 | | matches | | 0 | "The loss of her partner, DS Morris, still haunted her, a specter that refused to fade." | | 1 | "The Veil Market was a dangerous place, but it was also a key to understanding the darkness that had taken so much from her." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 6 | | matches | | 0 | "she replied, though the words felt hollow" | | 1 | "Quinn said, her mind racing" | | 2 | "She turned, her voice low" | | 3 | "Quinn replied, her mind already racing ahead" | | 4 | "she called, her voice echoing through the vast atrium" | | 5 | "Eva explained, her voice low" |
| |
| 71.05% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 3 | | fancyTags | | 0 | "Markham suggested (suggest)" | | 1 | "Markham interjected (interject)" | | 2 | "Eva explained (explain)" |
| | dialogueSentences | 38 | | tagDensity | 0.237 | | leniency | 0.474 | | rawRatio | 0.333 | | effectiveRatio | 0.158 | |