| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 32 | | tagDensity | 0.313 | | leniency | 0.625 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1346 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 33.14% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1346 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "jaw clenched" | | 1 | "weight" | | 2 | "pumping" | | 3 | "tinged" | | 4 | "echoing" | | 5 | "footsteps" | | 6 | "stomach" | | 7 | "pulsed" | | 8 | "echoed" | | 9 | "measured" | | 10 | "calculating" | | 11 | "glinting" | | 12 | "pulse" | | 13 | "traced" | | 14 | "electric" | | 15 | "flickered" | | 16 | "depths" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 117 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 117 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 138 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 33 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1331 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1039 | | uniqueNames | 14 | | maxNameDensity | 1.15 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Herrera" | | discoveredNames | | Soho | 2 | | Harlow | 1 | | Quinn | 12 | | November | 1 | | Morris | 7 | | Tube | 1 | | London | 2 | | Saint | 1 | | Christopher | 1 | | Seville | 1 | | Herrera | 10 | | Met | 1 | | Division | 1 | | Ashford | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Morris" | | 3 | "Tube" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Herrera" | | 7 | "Ashford" |
| | places | | 0 | "Soho" | | 1 | "London" | | 2 | "Seville" |
| | globalScore | 0.923 | | windowScore | 0.667 | |
| 42.86% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 3 | | matches | | 0 | "Symbols that seemed to shift when she looked directly at them" | | 1 | "tapestries that seemed to move on their own" | | 2 | "something between alarm and respect" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1331 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 138 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 52 | | mean | 25.6 | | std | 18.95 | | cv | 0.74 | | sampleLengths | | 0 | 53 | | 1 | 18 | | 2 | 2 | | 3 | 10 | | 4 | 50 | | 5 | 48 | | 6 | 10 | | 7 | 37 | | 8 | 5 | | 9 | 52 | | 10 | 2 | | 11 | 42 | | 12 | 33 | | 13 | 50 | | 14 | 11 | | 15 | 1 | | 16 | 9 | | 17 | 45 | | 18 | 36 | | 19 | 19 | | 20 | 41 | | 21 | 4 | | 22 | 10 | | 23 | 30 | | 24 | 81 | | 25 | 18 | | 26 | 4 | | 27 | 19 | | 28 | 31 | | 29 | 6 | | 30 | 5 | | 31 | 48 | | 32 | 54 | | 33 | 7 | | 34 | 27 | | 35 | 25 | | 36 | 17 | | 37 | 50 | | 38 | 29 | | 39 | 3 | | 40 | 14 | | 41 | 4 | | 42 | 1 | | 43 | 37 | | 44 | 49 | | 45 | 13 | | 46 | 45 | | 47 | 37 | | 48 | 25 | | 49 | 39 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 117 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 202 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 138 | | ratio | 0.08 | | matches | | 0 | "Quinn's hand found the worn leather watch on her left wrist without thinking—three years of habit, checking the time Morris should have been there to call in backup." | | 1 | "The stench of rotting food and something else—something metallic, like pennies left in rain—curled through the damp air." | | 2 | "Old brick gave way to tiled walls—Tube tiles, cream and dirty white, cracked and stained with decades of neglect." | | 3 | "Beyond them, the platform stretched into a cavern that pulsed with low light—lanterns, maybe, or something else." | | 4 | "Warm brown eyes met hers—calculating, guarded." | | 5 | "Past the archway, the market sprawled in impossible directions—stalls built from salvaged wood and corrugated metal, awnings made from tapestries that seemed to move on their own." | | 6 | "Not fear—something older." | | 7 | "Herrera's hand went to his left forearm—a gesture so quick Quinn almost missed it." | | 8 | "Herrera's expression shifted—something between alarm and respect." | | 9 | "The market's sounds swelled—voices in languages she didn't recognize, music with melodies that curved in directions her ears couldn't follow, the sizzle and pop of things cooking in stalls she couldn't see." | | 10 | "Somewhere in the market's depths, something laughed—a sound like glass breaking." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1055 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 26 | | adverbRatio | 0.024644549763033177 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.0018957345971563982 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 138 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 138 | | mean | 9.64 | | std | 7.3 | | cv | 0.756 | | sampleLengths | | 0 | 15 | | 1 | 21 | | 2 | 3 | | 3 | 14 | | 4 | 18 | | 5 | 2 | | 6 | 6 | | 7 | 4 | | 8 | 28 | | 9 | 11 | | 10 | 11 | | 11 | 6 | | 12 | 5 | | 13 | 18 | | 14 | 8 | | 15 | 11 | | 16 | 10 | | 17 | 6 | | 18 | 12 | | 19 | 4 | | 20 | 15 | | 21 | 2 | | 22 | 1 | | 23 | 1 | | 24 | 1 | | 25 | 9 | | 26 | 3 | | 27 | 2 | | 28 | 5 | | 29 | 33 | | 30 | 2 | | 31 | 3 | | 32 | 19 | | 33 | 3 | | 34 | 1 | | 35 | 1 | | 36 | 15 | | 37 | 14 | | 38 | 8 | | 39 | 11 | | 40 | 16 | | 41 | 17 | | 42 | 6 | | 43 | 11 | | 44 | 2 | | 45 | 9 | | 46 | 1 | | 47 | 6 | | 48 | 3 | | 49 | 8 |
| |
| 72.71% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.47101449275362317 | | totalSentences | 138 | | uniqueOpeners | 65 | |
| 66.01% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 101 | | matches | | 0 | "Probably her sergeant, wondering why" | | 1 | "Somewhere in the market's depths," |
| | ratio | 0.02 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 101 | | matches | | 0 | "Her lungs burned." | | 1 | "Her sharp jaw clenched against" | | 2 | "She pushed harder, legs pumping," | | 3 | "Her training screamed at her" | | 4 | "Her hand hovered near her" | | 5 | "His accent carried traces of" | | 6 | "She stopped ten feet from" | | 7 | "He gestured toward the market" | | 8 | "Her pulse spiked." | | 9 | "His fingers traced something beneath" | | 10 | "She'd seen it in his" | | 11 | "His jaw tightened" | | 12 | "She stepped past him, toward" | | 13 | "She paused at the threshold." | | 14 | "His hand closed around her" | | 15 | "His brown eyes held hers," |
| | ratio | 0.158 | |
| 83.76% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 76 | | totalSentences | 101 | | matches | | 0 | "Detective Harlow Quinn's boots slapped" | | 1 | "Her lungs burned." | | 2 | "Her sharp jaw clenched against" | | 3 | "The words vanished into the" | | 4 | "The figure never slowed." | | 5 | "Quinn's hand found the worn" | | 6 | "The weight of its absence" | | 7 | "She pushed harder, legs pumping," | | 8 | "The alley twisted left, then" | | 9 | "The stench of rotting food" | | 10 | "Quinn's flashlight beam caught graffiti" | | 11 | "Symbols that seemed to shift" | | 12 | "The suspect crashed through a" | | 13 | "Quinn hit it two seconds" | | 14 | "The door groaned open into" | | 15 | "Water dripped somewhere below, echoing" | | 16 | "Her training screamed at her" | | 17 | "Procedure had left her standing" | | 18 | "The stairs spiraled." | | 19 | "The air changed." |
| | ratio | 0.752 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 101 | | matches | (empty) | | ratio | 0 | |
| 59.80% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 5 | | matches | | 0 | "Her sharp jaw clenched against the cold November air that tore at her throat." | | 1 | "The door groaned open into a stairwell that descended into yellow-tinged darkness." | | 2 | "Past the archway, the market sprawled in impossible directions—stalls built from salvaged wood and corrugated metal, awnings made from tapestries that seemed to…" | | 3 | "Goods glittered on tables: vials of luminescent liquid, jewelry crafted from materials she couldn't identify, books with spines that shifted like living things." | | 4 | "The market's sounds swelled—voices in languages she didn't recognize, music with melodies that curved in directions her ears couldn't follow, the sizzle and pop…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 87.50% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 2 | | fancyTags | | 0 | "The tilework announced (announce)" | | 1 | "Herrera continued (continue)" |
| | dialogueSentences | 32 | | tagDensity | 0.063 | | leniency | 0.125 | | rawRatio | 1 | | effectiveRatio | 0.125 | |