| 66.67% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 2 | | adverbTags | | 0 | "He gestured vaguely [vaguely]" | | 1 | "he said urgently [urgently]" |
| | dialogueSentences | 30 | | tagDensity | 0.433 | | leniency | 0.867 | | rawRatio | 0.154 | | effectiveRatio | 0.133 | |
| 71.16% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2427 | | totalAiIsmAdverbs | 14 | | found | | 0 | | | 1 | | | 2 | | | 3 | | adverb | "reluctantly" | | count | 1 |
| | 4 | | | 5 | | | 6 | | | 7 | | | 8 | |
| | highlights | | 0 | "sharply" | | 1 | "very" | | 2 | "suddenly" | | 3 | "reluctantly" | | 4 | "completely" | | 5 | "slightly" | | 6 | "quickly" | | 7 | "really" | | 8 | "carefully" |
| |
| 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) | |
| 48.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2427 | | totalAiIsms | 25 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | word | "practiced ease" | | count | 1 |
| | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | |
| | highlights | | 0 | "streaming" | | 1 | "familiar" | | 2 | "jaw clenched" | | 3 | "etched" | | 4 | "practiced ease" | | 5 | "pulse" | | 6 | "thundered" | | 7 | "charged" | | 8 | "flickered" | | 9 | "shimmered" | | 10 | "could feel" | | 11 | "weight" | | 12 | "sinister" | | 13 | "footsteps" | | 14 | "echoing" | | 15 | "quickened" | | 16 | "scanning" | | 17 | "stomach" | | 18 | "rhythmic" | | 19 | "flicker" | | 20 | "echoed" | | 21 | "whisper" | | 22 | "shattered" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
| | 1 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | 0 | "eyes widened" | | 1 | "jaw clenched" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 158 | | matches | (empty) | |
| 61.48% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 6 | | narrationSentences | 158 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 176 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2403 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 73 | | wordCount | 1972 | | uniqueNames | 25 | | maxNameDensity | 0.91 | | worstName | "Harlow" | | maxWindowNameDensity | 2 | | worstWindowName | "Tomás" | | discoveredNames | | London | 2 | | Harlow | 18 | | Quinn | 1 | | Brewer | 1 | | Street | 1 | | Tomás | 14 | | Herrera | 1 | | Morris | 7 | | Soho | 1 | | Raven | 2 | | Nest | 2 | | Glock | 3 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Camden | 2 | | Veil | 3 | | Market | 3 | | Londoners | 1 | | Town | 1 | | Saint | 2 | | Christopher | 2 | | Victorian | 1 | | Underground | 1 | | Spanish | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Morris" | | 5 | "Raven" | | 6 | "Market" | | 7 | "Londoners" | | 8 | "Saint" | | 9 | "Christopher" |
| | places | | 0 | "London" | | 1 | "Brewer" | | 2 | "Street" | | 3 | "Soho" | | 4 | "Charing" | | 5 | "Cross" | | 6 | "Road" | | 7 | "Camden" | | 8 | "Town" | | 9 | "Underground" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 129 | | glossingSentenceCount | 8 | | matches | | 0 | "blades that seemed to drink the shadows, jars containing things that still moved" | | 1 | "something like regret flickered across his f" | | 2 | "looked like living tattoos in glass cages" | | 3 | "stones that seemed to absorb the light from the bare bulbs strung along the ceiling" | | 4 | "looked like relief" | | 5 | "palm against a seemingly ordinary brick" | | 6 | "glow that seemed to emanate from the stones themselves" | | 7 | "felt like she might finally be moving t" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.416 | | wordCount | 2403 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 176 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 61 | | mean | 39.39 | | std | 26.87 | | cv | 0.682 | | sampleLengths | | 0 | 75 | | 1 | 107 | | 2 | 102 | | 3 | 22 | | 4 | 77 | | 5 | 6 | | 6 | 83 | | 7 | 71 | | 8 | 12 | | 9 | 6 | | 10 | 70 | | 11 | 72 | | 12 | 3 | | 13 | 75 | | 14 | 49 | | 15 | 6 | | 16 | 9 | | 17 | 64 | | 18 | 51 | | 19 | 3 | | 20 | 57 | | 21 | 8 | | 22 | 58 | | 23 | 39 | | 24 | 13 | | 25 | 37 | | 26 | 18 | | 27 | 66 | | 28 | 28 | | 29 | 39 | | 30 | 10 | | 31 | 60 | | 32 | 72 | | 33 | 51 | | 34 | 17 | | 35 | 34 | | 36 | 66 | | 37 | 35 | | 38 | 35 | | 39 | 23 | | 40 | 44 | | 41 | 58 | | 42 | 37 | | 43 | 10 | | 44 | 86 | | 45 | 4 | | 46 | 46 | | 47 | 38 | | 48 | 22 | | 49 | 46 |
| |
| 94.16% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 158 | | matches | | 0 | "was plastered" | | 1 | "been sealed" | | 2 | "been erected" | | 3 | "being asked" | | 4 | "was gone" |
| |
| 60.28% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 334 | | matches | | 0 | "was heading" | | 1 | "was going" | | 2 | "were holding" | | 3 | "were screaming" | | 4 | "was seeing" | | 5 | "wasn’t trying" | | 6 | "was definitely coming" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 23 | | semicolonCount | 0 | | flaggedSentences | 17 | | totalSentences | 176 | | ratio | 0.097 | | matches | | 0 | "Twenty yards ahead, the suspect—olive-skinned, curly dark hair matted to his head—glanced back once, wild-eyed, and cut sharply left into an alley off Brewer Street." | | 1 | "The streets of Soho blurred past in wet neon streaks—reds, blues, the distinctive green glow of The Raven’s Nest up ahead on the right." | | 2 | "She could taste the city on her tongue—petrol, wet concrete, fear." | | 3 | "A place where the laws of the city—and perhaps the laws of nature—didn’t apply." | | 4 | "The air thickened, carrying strange odors—incense, ozone, something metallic like blood left too long in the sun." | | 5 | "The platform stretched before her, illuminated by strings of bare bulbs that someone—something—had jury-rigged along the curved tile walls." | | 6 | "She thought of Morris—his easy laugh, the way he’d always brought her coffee without being asked, the look of absolute terror on his face in the final seconds before whatever had taken him dragged him into the dark." | | 7 | "Faces turned toward her—some human, many not." | | 8 | "Her boots splashed through puddles that weren’t entirely water—something iridescent shimmered on the surface." | | 9 | "When Harlow rounded the corner, he was gone—but a narrow gap had appeared in the tiled wall where no gap should exist." | | 10 | "The walls were older than the tube station—Victorian brick giving way to something much more ancient, stones that seemed to absorb the light from the bare bulbs strung along the ceiling." | | 11 | "She passed alcoves carved into the walls containing small statues and offerings—coins, bones, things that might once have been flowers." | | 12 | "The rational part of her mind—the part that had built a career on procedure and evidence—screamed at her to cuff him, read him his rights, get him to the surface." | | 13 | "Distant sounds of the market filtered through—strange music, raised voices, the occasional inhuman scream quickly cut off." | | 14 | "How could he know about the things she saw in her peripheral vision sometimes—the flicker of wings where there should be none, the way certain shadows seemed to watch her?" | | 15 | "A sound echoed from the tunnel behind her—the scrape of something large moving through the narrow passage." | | 16 | "Harlow looked at the man before her—scarred, rain-soaked, wearing a saint’s medal like a shield—and then at the darkness of the tunnel behind her where something was definitely coming." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 619 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 22 | | adverbRatio | 0.035541195476575124 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.014539579967689823 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 176 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 176 | | mean | 13.65 | | std | 8.94 | | cv | 0.655 | | sampleLengths | | 0 | 9 | | 1 | 22 | | 2 | 19 | | 3 | 25 | | 4 | 12 | | 5 | 16 | | 6 | 22 | | 7 | 10 | | 8 | 24 | | 9 | 23 | | 10 | 8 | | 11 | 14 | | 12 | 7 | | 13 | 10 | | 14 | 7 | | 15 | 24 | | 16 | 32 | | 17 | 11 | | 18 | 3 | | 19 | 2 | | 20 | 6 | | 21 | 16 | | 22 | 11 | | 23 | 9 | | 24 | 18 | | 25 | 12 | | 26 | 11 | | 27 | 4 | | 28 | 2 | | 29 | 4 | | 30 | 15 | | 31 | 11 | | 32 | 3 | | 33 | 14 | | 34 | 9 | | 35 | 27 | | 36 | 21 | | 37 | 12 | | 38 | 22 | | 39 | 16 | | 40 | 8 | | 41 | 4 | | 42 | 6 | | 43 | 20 | | 44 | 17 | | 45 | 27 | | 46 | 6 | | 47 | 19 | | 48 | 22 | | 49 | 31 |
| |
| 44.51% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.3181818181818182 | | totalSentences | 176 | | uniqueOpeners | 56 | |
| 66.23% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 151 | | matches | | 0 | "Then he turned and ran" | | 1 | "Instead he ducked behind a" | | 2 | "Somewhere ahead lay the truth" |
| | ratio | 0.02 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 44 | | totalSentences | 151 | | matches | | 0 | "Her closely cropped salt-and-pepper hair" | | 1 | "Her voice carried the military" | | 2 | "She rounded the corner, shoulder" | | 3 | "Her lungs burned, yet the" | | 4 | "She didn’t draw." | | 5 | "She needed him alive and" | | 6 | "She could taste the city" | | 7 | "He was heading north." | | 8 | "She knew the rumors." | | 9 | "She’d dismissed it as urban" | | 10 | "She drew her weapon now," | | 11 | "She thought of Morris—his easy" | | 12 | "She thought of the official" | | 13 | "Her grip tightened on the" | | 14 | "she muttered, and stepped onto" | | 15 | "Their eyes met across the" | | 16 | "She shouldered past a vendor" | | 17 | "Her boots splashed through puddles" | | 18 | "She caught the briefest glimpse" | | 19 | "Her lungs were screaming." |
| | ratio | 0.291 | |
| 39.47% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 127 | | totalSentences | 151 | | matches | | 0 | "The rain hammered London like" | | 1 | "Detective Harlow Quinn sprinted through" | | 2 | "Her closely cropped salt-and-pepper hair" | | 3 | "Harlow shouted, the words torn" | | 4 | "Her voice carried the military" | | 5 | "The leather watch on her" | | 6 | "This was the first solid" | | 7 | "The man she chased was" | | 8 | "The ones she believed had" | | 9 | "She rounded the corner, shoulder" | | 10 | "The alley narrowed, choked with" | | 11 | "Tomás was fast, but she" | | 12 | "Her lungs burned, yet the" | | 13 | "The streets of Soho blurred" | | 14 | "Harlow’s hand went instinctively to" | | 15 | "She didn’t draw." | | 16 | "She needed him alive and" | | 17 | "The pursuit spilled out onto" | | 18 | "Tomás vaulted a low barrier," | | 19 | "A double-decker bus hissed past," |
| | ratio | 0.841 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 151 | | matches | (empty) | | ratio | 0 | |
| 34.88% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 86 | | technicalSentenceCount | 13 | | matches | | 0 | "Detective Harlow Quinn sprinted through the sluicing downpour, her boots slapping against slick pavement that reflected the sickly orange glow of streetlamps." | | 1 | "Her voice carried the military precision that had defined her for eighteen years on the force." | | 2 | "The underground market that appeared and disappeared with the full moon." | | 3 | "At the bottom, the stairwell opened into an abandoned section of the old Camden Town tube line, a ghost station that had been sealed off for decades." | | 4 | "Stalls had been erected between the old tracks, selling things that should not exist: vials of liquid light, blades that seemed to drink the shadows, jars conta…" | | 5 | "The air here felt charged, as though the very molecules were holding their breath." | | 6 | "Her boots splashed through puddles that weren’t entirely water—something iridescent shimmered on the surface." | | 7 | "The walls were older than the tube station—Victorian brick giving way to something much more ancient, stones that seemed to absorb the light from the bare bulbs…" | | 8 | "She passed alcoves carved into the walls containing small statues and offerings—coins, bones, things that might once have been flowers." | | 9 | "The other part, the part that had been searching for answers since the night Morris disappeared, wanted desperately to believe him." | | 10 | "Her military precision warred with the desperate need for truth that had driven her for three long years." | | 11 | "The wall shimmered and slid aside, revealing another passage, this one lit with a soft blue glow that seemed to emanate from the stones themselves." | | 12 | "Somewhere ahead lay the truth about Morris, about the clique, about the night that had shattered her carefully ordered world." |
| |
| 48.08% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 2 | | matches | | 0 | "Harlow shouted, the words torn away by wind and rain" | | 1 | "he said, his Spanish accent thicker now with exertion" |
| |
| 50.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 3 | | fancyTags | | 0 | "Harlow shouted (shout)" | | 1 | "she muttered (mutter)" | | 2 | "she shouted (shout)" |
| | dialogueSentences | 30 | | tagDensity | 0.233 | | leniency | 0.467 | | rawRatio | 0.429 | | effectiveRatio | 0.2 | |