| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 88.30% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1282 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "lazily" | | 1 | "carefully" | | 2 | "quickly" |
| |
| 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) | |
| 49.30% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1282 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "rhythmic" | | 1 | "gloom" | | 2 | "vibrated" | | 3 | "echoed" | | 4 | "maw" | | 5 | "standard" | | 6 | "silence" | | 7 | "velvet" | | 8 | "fractured" | | 9 | "scanned" | | 10 | "surreal" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "knuckles turned white" | | count | 1 |
| | 1 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "knuckles turned white" | | 1 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 73 | | matches | | |
| 84.15% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 73 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 74 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 10 | | totalWords | 1277 | | ratio | 0.008 | | matches | | 0 | "The Veil Market." | | 1 | "Focus, Quinn," | | 2 | "One objective. Find the target." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 82.97% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 49 | | wordCount | 1268 | | uniqueNames | 21 | | maxNameDensity | 1.34 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Harlow | 1 | | Quinn | 17 | | Tomás | 1 | | Herrera | 10 | | Soho | 1 | | Raven | 1 | | Nest | 1 | | Metropolitan | 1 | | Police | 1 | | Saint | 1 | | Christopher | 1 | | Victorian | 1 | | Northern | 1 | | Line | 1 | | Tube | 1 | | Glock | 1 | | London | 2 | | Met | 1 | | Morris | 3 | | Veil | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Raven" | | 5 | "Police" | | 6 | "Saint" | | 7 | "Christopher" | | 8 | "Morris" |
| | places | | 0 | "Camden" | | 1 | "Soho" | | 2 | "Northern" | | 3 | "London" |
| | globalScore | 0.83 | | windowScore | 0.833 | |
| 70.63% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 63 | | glossingSentenceCount | 2 | | matches | | 0 | "sounded like a heavy iron bell struck deep" | | 1 | "hum that seemed to vibrate directly inside her sternum" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.783 | | wordCount | 1277 | | matches | | 0 | "not to daylight, but to a flickering, amber luminescence" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 74 | | matches | | 0 | "memorized that morning" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 29 | | mean | 44.03 | | std | 26.25 | | cv | 0.596 | | sampleLengths | | 0 | 23 | | 1 | 73 | | 2 | 127 | | 3 | 64 | | 4 | 16 | | 5 | 9 | | 6 | 63 | | 7 | 23 | | 8 | 28 | | 9 | 76 | | 10 | 32 | | 11 | 63 | | 12 | 13 | | 13 | 44 | | 14 | 35 | | 15 | 47 | | 16 | 73 | | 17 | 24 | | 18 | 20 | | 19 | 51 | | 20 | 31 | | 21 | 34 | | 22 | 6 | | 23 | 71 | | 24 | 59 | | 25 | 49 | | 26 | 21 | | 27 | 68 | | 28 | 34 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 73 | | matches | | |
| 24.56% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 190 | | matches | | 0 | "was living" | | 1 | "was hawking" | | 2 | "was carefully pinning" | | 3 | "was seeing" | | 4 | "was heading" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 1 | | flaggedSentences | 6 | | totalSentences | 74 | | ratio | 0.081 | | matches | | 0 | "Missing medical supplies, unregistered trauma cases, victims of violent assaults vanishing from casualty wards before the night shift ended—Herrera was the thread that bound them all together." | | 1 | "The alley was a dead end—or it should have been, according to the ordnance survey maps Quinn had memorized that morning." | | 2 | "He pulled out a smooth, polished piece of ivory-colored material—a token roughly the size of a silver dollar, carved from what looked uncomfortably like human bone." | | 3 | "It didn't sound like metal on metal; it sounded like a heavy iron bell struck deep underwater." | | 4 | "A gust of air rushed upward from the subterranean darkness, carrying a sickeningly strange draft—warm, thick, smelling of wet earth, copper, ozone, and strange, bitter spices that had no place in northern London." | | 5 | "Hundreds of figures moved through the smoky thoroughfares—some clearly human, but dressed in archaic or exotic garb, and others whose silhouettes bent at wrong angles, hiding their faces beneath heavy cowls." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1287 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.021756021756021756 | | lyAdverbCount | 18 | | lyAdverbRatio | 0.013986013986013986 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 74 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 74 | | mean | 17.26 | | std | 8.9 | | cv | 0.516 | | sampleLengths | | 0 | 23 | | 1 | 18 | | 2 | 30 | | 3 | 10 | | 4 | 15 | | 5 | 4 | | 6 | 36 | | 7 | 11 | | 8 | 26 | | 9 | 23 | | 10 | 27 | | 11 | 6 | | 12 | 16 | | 13 | 42 | | 14 | 16 | | 15 | 6 | | 16 | 3 | | 17 | 18 | | 18 | 21 | | 19 | 24 | | 20 | 4 | | 21 | 19 | | 22 | 21 | | 23 | 7 | | 24 | 13 | | 25 | 26 | | 26 | 37 | | 27 | 15 | | 28 | 17 | | 29 | 5 | | 30 | 12 | | 31 | 13 | | 32 | 33 | | 33 | 3 | | 34 | 10 | | 35 | 20 | | 36 | 24 | | 37 | 20 | | 38 | 15 | | 39 | 5 | | 40 | 15 | | 41 | 27 | | 42 | 21 | | 43 | 11 | | 44 | 16 | | 45 | 25 | | 46 | 24 | | 47 | 3 | | 48 | 17 | | 49 | 11 |
| |
| 68.92% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.44594594594594594 | | totalSentences | 74 | | uniqueOpeners | 33 | |
| 92.59% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 72 | | matches | | 0 | "Instead of reaching for the" | | 1 | "Further down, a man with" |
| | ratio | 0.028 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 72 | | matches | | 0 | "She ignored the sting of" | | 1 | "She focused entirely on the" | | 2 | "It was Tomás Herrera." | | 3 | "She had tracked him from" | | 4 | "She didn't expect him to" | | 5 | "They never did." | | 6 | "It terminated at the concrete" | | 7 | "He made straight for the" | | 8 | "He pulled out a smooth," | | 9 | "He slammed the flat of" | | 10 | "It didn't sound like metal" | | 11 | "They simply unthreaded themselves, sliding" | | 12 | "He threw himself down the" | | 13 | "She pointed her weapon into" | | 14 | "He had walked into a" | | 15 | "She had seen the impossible" | | 16 | "Her jaw tightened." | | 17 | "She moved down the spiraling" | | 18 | "She had thought it was" | | 19 | "She scanned the surreal crowd." |
| | ratio | 0.292 | |
| 91.94% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 72 | | matches | | 0 | "Detective Harlow Quinn adjusted her" | | 1 | "The cold water had long" | | 2 | "She ignored the sting of" | | 3 | "She focused entirely on the" | | 4 | "It was Tomás Herrera." | | 5 | "She had tracked him from" | | 6 | "The official file said he’d" | | 7 | "The low street lamp caught" | | 8 | "Quinn shouted, her voice cutting" | | 9 | "She didn't expect him to" | | 10 | "They never did." | | 11 | "Quinn reached the mouth of" | | 12 | "The alley was a dead" | | 13 | "It terminated at the concrete" | | 14 | "Herrera didn't slow down." | | 15 | "He made straight for the" | | 16 | "Quinn drew her Glock 17" | | 17 | "He pulled out a smooth," | | 18 | "He slammed the flat of" | | 19 | "A low, resonant chime echoed" |
| | ratio | 0.736 | |
| 69.44% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 72 | | matches | | 0 | "If she backed away now," |
| | ratio | 0.014 | |
| 70.22% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 59 | | technicalSentenceCount | 6 | | matches | | 0 | "Missing medical supplies, unregistered trauma cases, victims of violent assaults vanishing from casualty wards before the night shift ended—Herrera was the thre…" | | 1 | "He made straight for the derelict station’s cast-iron storm doors, which had been chained shut since the late seventies." | | 2 | "A gust of air rushed upward from the subterranean darkness, carrying a sickeningly strange draft—warm, thick, smelling of wet earth, copper, ozone, and strange,…" | | 3 | "Behind her, the heavy iron doors slammed shut with a concussive thud that rattled her teeth." | | 4 | "The ambient noise of the London storm was instantly severed, replaced by a low, throbbing hum that seemed to vibrate directly inside her sternum." | | 5 | "Herrera was moving quickly through the throng, pushing past a towering figure draped in silver chainmail, his eyes darting back and forth in obvious terror." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 1 | | effectiveRatio | 1 | |