| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 21 | | tagDensity | 0.524 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.40% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1370 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "reluctantly" | | count | 1 |
| | 2 | |
| | highlights | | 0 | "sharply" | | 1 | "reluctantly" | | 2 | "really" |
| |
| 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) | |
| 63.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1370 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "familiar" | | 1 | "pumping" | | 2 | "footsteps" | | 3 | "echoing" | | 4 | "silence" | | 5 | "intricate" | | 6 | "beacon" | | 7 | "shattered" | | 8 | "flickered" | | 9 | "flicker" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 3 | | narrationSentences | 136 | | matches | | 0 | "was scared" | | 1 | "d in fear" | | 2 | "the flicker of fear" |
| |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 136 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 146 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 35 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1358 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1205 | | uniqueNames | 15 | | maxNameDensity | 1.16 | | worstName | "Tomás" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Tomás" | | discoveredNames | | Soho | 1 | | Harlow | 1 | | Quinn | 12 | | Tomás | 14 | | Herrera | 1 | | Saint | 1 | | Christopher | 1 | | Raven | 1 | | Nest | 1 | | Morris | 4 | | Camden | 1 | | Met | 1 | | Veil | 1 | | Market | 1 | | Tube | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Raven" | | 7 | "Morris" |
| | places | | | globalScore | 0.919 | | windowScore | 0.5 | |
| 55.06% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 79 | | glossingSentenceCount | 3 | | matches | | 0 | "something like burnt sugar and something lik" | | 1 | "something like rot" | | 2 | "looked like a cop" | | 3 | "something like pity" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.736 | | wordCount | 1358 | | matches | | 0 | "not of her, but of what she might uncover" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 146 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 34 | | mean | 39.94 | | std | 26.81 | | cv | 0.671 | | sampleLengths | | 0 | 77 | | 1 | 84 | | 2 | 14 | | 3 | 64 | | 4 | 54 | | 5 | 52 | | 6 | 62 | | 7 | 63 | | 8 | 80 | | 9 | 8 | | 10 | 120 | | 11 | 70 | | 12 | 65 | | 13 | 36 | | 14 | 12 | | 15 | 11 | | 16 | 23 | | 17 | 12 | | 18 | 36 | | 19 | 57 | | 20 | 34 | | 21 | 24 | | 22 | 18 | | 23 | 3 | | 24 | 19 | | 25 | 12 | | 26 | 15 | | 27 | 23 | | 28 | 44 | | 29 | 37 | | 30 | 42 | | 31 | 39 | | 32 | 32 | | 33 | 16 |
| |
| 92.36% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 136 | | matches | | 0 | "being hunted" | | 1 | "was soaked" | | 2 | "been pried" | | 3 | "been transformed" | | 4 | "was outnumbered" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 231 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 146 | | ratio | 0.068 | | matches | | 0 | "He was fast—younger, lighter—but Quinn had eighteen years of training and a stubbornness that had outlasted worse things than rain." | | 1 | "She had followed him through alleys, past shuttered shops and the wet cardboard beds of the homeless, until he had spotted her—maybe the reflection in a window, maybe her military bearing gave her away." | | 2 | "The scar ran from elbow to wrist—a knife attack, according to his file." | | 3 | "Everyone in the Met had heard whispers—an underground market, off the books, supernatural." | | 4 | "But now—" | | 5 | "She thought of Morris, of the strange circumstances of his death—the impossible geometry of the room, the blood that didn't match the wound, the way the coroner had refused to sign the report." | | 6 | "After the cold rain, the air was warm and thick with smells—incense, ozone, something like burnt sugar and something like rot." | | 7 | "People moved through the crowd—or things that passed for people." | | 8 | "She could see it in his eyes—the way they flickered, the way his breath caught." | | 9 | "But she saw the flicker of fear in his eyes—not of her, but of what she might uncover." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1218 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 30 | | adverbRatio | 0.024630541871921183 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.0049261083743842365 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 146 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 146 | | mean | 9.3 | | std | 6.48 | | cv | 0.697 | | sampleLengths | | 0 | 18 | | 1 | 19 | | 2 | 20 | | 3 | 20 | | 4 | 8 | | 5 | 21 | | 6 | 34 | | 7 | 3 | | 8 | 5 | | 9 | 13 | | 10 | 11 | | 11 | 3 | | 12 | 14 | | 13 | 3 | | 14 | 5 | | 15 | 16 | | 16 | 5 | | 17 | 13 | | 18 | 4 | | 19 | 4 | | 20 | 15 | | 21 | 13 | | 22 | 6 | | 23 | 7 | | 24 | 10 | | 25 | 3 | | 26 | 11 | | 27 | 14 | | 28 | 18 | | 29 | 5 | | 30 | 4 | | 31 | 16 | | 32 | 15 | | 33 | 11 | | 34 | 7 | | 35 | 5 | | 36 | 8 | | 37 | 6 | | 38 | 13 | | 39 | 3 | | 40 | 22 | | 41 | 4 | | 42 | 7 | | 43 | 6 | | 44 | 2 | | 45 | 2 | | 46 | 8 | | 47 | 5 | | 48 | 3 | | 49 | 20 |
| |
| 36.99% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 19 | | diversityRatio | 0.2671232876712329 | | totalSentences | 146 | | uniqueOpeners | 39 | |
| 51.68% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 129 | | matches | | 0 | "Just the sudden burst of" | | 1 | "Only the distance between them." |
| | ratio | 0.016 | |
| 15.35% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 66 | | totalSentences | 129 | | matches | | 0 | "He was fast—younger, lighter—but Quinn" | | 1 | "She had been tailing him" | | 2 | "He had left the Raven's" | | 3 | "She had followed him through" | | 4 | "He had bolted." | | 5 | "she shouted, but the wind" | | 6 | "He didn't slow." | | 7 | "Her worn leather watch was" | | 8 | "She felt the familiar burn" | | 9 | "She didn't tire easily." | | 10 | "She couldn't afford to." | | 11 | "She had read the file" | | 12 | "She didn't finish" | | 13 | "He ducked through the gap." | | 14 | "She went after him." | | 15 | "He dropped to his knees" | | 16 | "She could hear his footsteps" | | 17 | "She knew what lay beneath" | | 18 | "She had never been." | | 19 | "She had never needed to" |
| | ratio | 0.512 | |
| 14.26% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 115 | | totalSentences | 129 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn's boots slapped" | | 2 | "He was fast—younger, lighter—but Quinn" | | 3 | "She had been tailing him" | | 4 | "He had left the Raven's" | | 5 | "She had followed him through" | | 6 | "He had bolted." | | 7 | "she shouted, but the wind" | | 8 | "He didn't slow." | | 9 | "Her worn leather watch was" | | 10 | "Time didn't matter." | | 11 | "She felt the familiar burn" | | 12 | "She didn't tire easily." | | 13 | "She couldn't afford to." | | 14 | "Tomás turned sharply into a" | | 15 | "The scar ran from elbow" | | 16 | "She had read the file" | | 17 | "The file didn't mention that" | | 18 | "Quinn followed, her hand going" | | 19 | "She didn't finish" |
| | ratio | 0.891 | |
| 38.76% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 129 | | matches | | 0 | "By the time a tactical" |
| | ratio | 0.008 | |
| 82.07% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 4 | | matches | | 0 | "He was fast—younger, lighter—but Quinn had eighteen years of training and a stubbornness that had outlasted worse things than rain." | | 1 | "By the time a tactical team arrived, Tomás would be gone, swallowed by a market that had swallowed better men." | | 2 | "She thought of Morris, of the strange circumstances of his death—the impossible geometry of the room, the blood that didn't match the wound, the way the coroner…" | | 3 | "He knocked over a stall of glass vials, which shattered on the ground, releasing a cloud of purple smoke." |
| |
| 34.09% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 2 | | matches | | 0 | "she shouted, but the wind tore the words away" | | 1 | "He stopped, his gaze shifting to something behind her" |
| |
| 54.76% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 2 | | fancyTags | | 0 | "she shouted (shout)" | | 1 | "he grunted (grunt)" |
| | dialogueSentences | 21 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.286 | | effectiveRatio | 0.19 | |