| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 2 | | adverbTags | | 0 | "Herrera shouted back [back]" | | 1 | "Quinn stepped around [around]" |
| | dialogueSentences | 10 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.4 | | effectiveRatio | 0.4 | |
| 93.82% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1618 | | 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) | |
| 59.83% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1618 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "shattered" | | 1 | "eyebrow" | | 2 | "etched" | | 3 | "glint" | | 4 | "electric" | | 5 | "charged" | | 6 | "weight" | | 7 | "variable" | | 8 | "crystallized" | | 9 | "gloom" | | 10 | "silence" | | 11 | "pulsed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 1 | | found | | 0 | | label | "let out a breath" | | count | 1 |
| | 1 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | 0 | "let out a breath" | | 1 | "eyes widened" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 107 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 107 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 15 | | totalWords | 1617 | | ratio | 0.009 | | matches | | 0 | "Unexplained" | | 1 | "The Veil Market." | | 2 | "It moves. It needs a token. The full moon anchors it." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 75.27% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 64 | | wordCount | 1472 | | uniqueNames | 20 | | maxNameDensity | 1.49 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 2 | | Harlow | 2 | | Quinn | 22 | | Tomas | 1 | | Herrera | 12 | | Met | 1 | | Detective | 3 | | Soho | 1 | | Saint | 1 | | Christopher | 1 | | Seville | 1 | | London | 1 | | Morris | 5 | | Tube | 1 | | Metropolitan | 1 | | Police | 1 | | Veil | 2 | | Tonight | 1 | | Market | 4 | | Belmarsh | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomas" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Morris" | | 7 | "Police" | | 8 | "Tonight" | | 9 | "Market" |
| | places | | 0 | "Camden" | | 1 | "Met" | | 2 | "Soho" | | 3 | "Seville" | | 4 | "London" | | 5 | "Belmarsh" |
| | globalScore | 0.753 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 85 | | glossingSentenceCount | 1 | | matches | | 0 | "phosphorescence that seemed to be seeping up from below" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1617 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 112 | | matches | (empty) | |
| 84.85% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 59.89 | | std | 26.77 | | cv | 0.447 | | sampleLengths | | 0 | 110 | | 1 | 101 | | 2 | 104 | | 3 | 18 | | 4 | 54 | | 5 | 33 | | 6 | 99 | | 7 | 40 | | 8 | 72 | | 9 | 73 | | 10 | 6 | | 11 | 56 | | 12 | 50 | | 13 | 62 | | 14 | 65 | | 15 | 42 | | 16 | 52 | | 17 | 74 | | 18 | 90 | | 19 | 70 | | 20 | 56 | | 21 | 73 | | 22 | 12 | | 23 | 37 | | 24 | 34 | | 25 | 71 | | 26 | 63 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 107 | | matches | (empty) | |
| 87.96% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 238 | | matches | | 0 | "was aligning" | | 1 | "was slipping" | | 2 | "was leaving" | | 3 | "was stepping" |
| |
| 66.33% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 2 | | flaggedSentences | 3 | | totalSentences | 112 | | ratio | 0.027 | | matches | | 0 | "The darkness below wasn't just empty; it felt heavy, charged with intent." | | 1 | "The clues that led to the clique's leadership, the source of the strange injuries Herrera patched up, the truth behind her partner's death—all of it would be buried in the dark." | | 2 | "She had solved murders that defied physics; she could survive a market." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1484 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.02223719676549865 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.006064690026954178 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 14.44 | | std | 8.68 | | cv | 0.601 | | sampleLengths | | 0 | 29 | | 1 | 17 | | 2 | 18 | | 3 | 25 | | 4 | 21 | | 5 | 16 | | 6 | 24 | | 7 | 11 | | 8 | 24 | | 9 | 7 | | 10 | 19 | | 11 | 9 | | 12 | 2 | | 13 | 18 | | 14 | 40 | | 15 | 15 | | 16 | 20 | | 17 | 18 | | 18 | 22 | | 19 | 25 | | 20 | 4 | | 21 | 3 | | 22 | 22 | | 23 | 11 | | 24 | 6 | | 25 | 15 | | 26 | 30 | | 27 | 2 | | 28 | 3 | | 29 | 4 | | 30 | 15 | | 31 | 6 | | 32 | 18 | | 33 | 16 | | 34 | 24 | | 35 | 10 | | 36 | 6 | | 37 | 3 | | 38 | 9 | | 39 | 18 | | 40 | 5 | | 41 | 4 | | 42 | 17 | | 43 | 14 | | 44 | 15 | | 45 | 13 | | 46 | 11 | | 47 | 20 | | 48 | 4 | | 49 | 2 |
| |
| 33.93% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.25892857142857145 | | totalSentences | 112 | | uniqueOpeners | 29 | |
| 32.36% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 103 | | matches | | | ratio | 0.01 | |
| 91.84% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 103 | | matches | | 0 | "Her boots, scuffed leather and" | | 1 | "She was five-foot-nine of coiled" | | 2 | "Her breathing was controlled, shallow" | | 3 | "You didn't survive eighteen years" | | 4 | "You survived by conserving energy," | | 5 | "He was warm brown eyes" | | 6 | "He carried himself with the" | | 7 | "He didn't look afraid." | | 8 | "He looked resigned." | | 9 | "He fumbled in his jacket" | | 10 | "She saw the glint of" | | 11 | "She holstered her weapon mid-motion" | | 12 | "He pulled a token." | | 13 | "He turned and ran toward" | | 14 | "He hit the heavy iron" | | 15 | "He shoved the bone token" | | 16 | "It slid down with a" | | 17 | "It didn't smell like wet" | | 18 | "It carried the sharp, electric" | | 19 | "It was the smell of" |
| | ratio | 0.32 | |
| 32.82% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 88 | | totalSentences | 103 | | matches | | 0 | "The rain did not fall" | | 1 | "Detective Harlow Quinn moved through" | | 2 | "Her boots, scuffed leather and" | | 3 | "She was five-foot-nine of coiled" | | 4 | "Water sluiced down the sharp" | | 5 | "Quinn tracked him by sight" | | 6 | "Her breathing was controlled, shallow" | | 7 | "You didn't survive eighteen years" | | 8 | "You survived by conserving energy," | | 9 | "Herrera was a problem Quinn" | | 10 | "The ghost who patched up" | | 11 | "Quinn had watched him at" | | 12 | "He was warm brown eyes" | | 13 | "He carried himself with the" | | 14 | "Quinn barked, her voice cutting" | | 15 | "Herrera paused, turning just enough" | | 16 | "The jagged white line stood" | | 17 | "He didn't look afraid." | | 18 | "He looked resigned." | | 19 | "Herrera shouted back, his accent" |
| | ratio | 0.854 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 103 | | matches | | 0 | "Now the mask was slipping." | | 1 | "If she went down, she" | | 2 | "If she went down alone," |
| | ratio | 0.029 | |
| 31.25% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 64 | | technicalSentenceCount | 10 | | matches | | 0 | "The rain did not fall in Camden so much as it assaulted the earth, a relentless, freezing deluge that turned the pavement into a mirror of shattered gray light." | | 1 | "Quinn had watched him at a distance, noted the Saint Christopher medallion that clattered against his sternum beneath his soaked shirt, the way he lingered in d…" | | 2 | "The jagged white line stood out against his dark skin, a souvenir from the knife that had gone missing during a raid three years ago." | | 3 | "The words triggered a ghost in the back of her mind, an image of DS Morris standing in this very rain, pointing toward an alley that had opened into nowhere." | | 4 | "It slid down with a screech of metal on metal, revealing a staircase that plunged into absolute blackness." | | 5 | "He looked back at Quinn, his warm brown eyes reflecting the faint green phosphorescence that seemed to be seeping up from below." | | 6 | "The clues that led to the clique's leadership, the source of the strange injuries Herrera patched up, the truth behind her partner's death—all of it would be bu…" | | 7 | "Quinn looked at the bone token in Herrera's hand, then at the scar on his arm, and finally at the medallion of a saint who offered no protection against what la…" | | 8 | "Herrera let out a breath that was half-laugh, half-sob." | | 9 | "Detective Harlow Quinn moved deeper into the dark, her heart hammering a war drum against her ribs, ready for the war she had been chasing for three years." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 4 | | matches | | 0 | "Quinn barked, her voice cutting through the drumming rain" | | 1 | "Quinn stepped around, her shoulder checking the brickwork as she closed the distance" | | 2 | "Herrera called down, his voice trembling slightly" | | 3 | "Quinn said, her voice low and dangerous" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 3 | | fancyTags | | 0 | "Quinn barked (bark)" | | 1 | "Herrera shouted back (shout)" | | 2 | "Herrera called down (call dow)" |
| | dialogueSentences | 10 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0.75 | | effectiveRatio | 0.6 | |