| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.45 | | leniency | 0.9 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1093 | | totalAiIsmAdverbs | 1 | | 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) | |
| 35.96% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1093 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "raced" | | 1 | "echoed" | | 2 | "flickered" | | 3 | "familiar" | | 4 | "gleaming" | | 5 | "could feel" | | 6 | "determined" | | 7 | "depths" | | 8 | "sense of" | | 9 | "velvet" | | 10 | "charm" | | 11 | "traced" | | 12 | "glinting" | | 13 | "pulsed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 0 | | maxInWindow | 0 | | found | (empty) | | highlights | (empty) | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 78 | | matches | | 0 | "t with determination" | | 1 | "e with panic" |
| |
| 32.97% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 4 | | narrationSentences | 78 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 88 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1081 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 919 | | uniqueNames | 17 | | maxNameDensity | 0.87 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 8 | | Soho | 1 | | Tomás | 5 | | Eighteen | 1 | | London | 2 | | Raven | 2 | | Nest | 2 | | East | 1 | | Spanish | 2 | | Veil | 2 | | Market | 4 | | Stay | 1 | | Metropolitan | 1 | | Police | 1 | | October | 1 | | Saint | 1 | | Christopher | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Tomás" | | 2 | "Raven" | | 3 | "Nest" | | 4 | "Spanish" | | 5 | "Market" | | 6 | "Saint" | | 7 | "Christopher" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 29.03% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 3 | | matches | | 0 | "door that seemed to have appeared from nowhere among the bricks, just as her grip reached its threshold" | | 1 | "photographs that seemed to move when caught from the corner of her eye" | | 2 | "robes that seemed to sewn from shadows itself" |
| |
| 14.99% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.85 | | wordCount | 1081 | | matches | | 0 | "Not like a heating pad, but like a living thing recognizing its territory" | | 1 | "not forward, but downward as the floor gave way, gripped only a single though" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 88 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 34.87 | | std | 22.96 | | cv | 0.658 | | sampleLengths | | 0 | 59 | | 1 | 80 | | 2 | 83 | | 3 | 59 | | 4 | 29 | | 5 | 16 | | 6 | 31 | | 7 | 8 | | 8 | 6 | | 9 | 32 | | 10 | 40 | | 11 | 66 | | 12 | 46 | | 13 | 33 | | 14 | 4 | | 15 | 6 | | 16 | 29 | | 17 | 48 | | 18 | 16 | | 19 | 5 | | 20 | 25 | | 21 | 39 | | 22 | 24 | | 23 | 27 | | 24 | 47 | | 25 | 33 | | 26 | 15 | | 27 | 22 | | 28 | 21 | | 29 | 40 | | 30 | 92 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 78 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 158 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 88 | | ratio | 0.102 | | matches | | 0 | "Half a block ahead, the man she'd been chasing—Tomás, according to her ID photo—ducked under a green neon sign that flickered uncertainly in the downpour." | | 1 | "Eighteen years on the force had taught her that chasing suspects through supernatural markets beneath London screamed \"bad idea.\" But that medallion around the paramedic's neck had been too familiar, matching symptoms of a case from three years ago—the one that had killed her partner." | | 2 | "For a second, their eyes met—hers fierce and determined, his wide with panic." | | 3 | "The Raven's Nest breathed with a life of its own, the smell of aged whiskey mixing with something else—something metallic and ancient." | | 4 | "The barkeeper—silver-haired, could've been any age—pointed to a narrow doorway at the opposite end of the room." | | 5 | "Decades of conditioning kept it from aiming directly at the vendor—a tall, unnaturally thin figure draped in robes that seemed to sewn from shadows itself." | | 6 | "Not the goat-masked figure, no—the barkeeper?" | | 7 | "Quinn dove not forward, but downward as the floor gave way, gripped only a single thought—Tomás is not the real problem." | | 8 | "Quinn realized with a sudden understanding—her partner's death had not been random." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 940 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 37 | | adverbRatio | 0.039361702127659576 | | lyAdverbCount | 17 | | lyAdverbRatio | 0.018085106382978722 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 88 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 88 | | mean | 12.28 | | std | 7.57 | | cv | 0.616 | | sampleLengths | | 0 | 13 | | 1 | 21 | | 2 | 25 | | 3 | 15 | | 4 | 45 | | 5 | 20 | | 6 | 23 | | 7 | 17 | | 8 | 7 | | 9 | 13 | | 10 | 23 | | 11 | 6 | | 12 | 13 | | 13 | 24 | | 14 | 16 | | 15 | 22 | | 16 | 7 | | 17 | 16 | | 18 | 17 | | 19 | 14 | | 20 | 8 | | 21 | 6 | | 22 | 32 | | 23 | 11 | | 24 | 9 | | 25 | 6 | | 26 | 4 | | 27 | 10 | | 28 | 14 | | 29 | 15 | | 30 | 5 | | 31 | 10 | | 32 | 8 | | 33 | 3 | | 34 | 2 | | 35 | 9 | | 36 | 22 | | 37 | 11 | | 38 | 13 | | 39 | 11 | | 40 | 5 | | 41 | 7 | | 42 | 10 | | 43 | 4 | | 44 | 6 | | 45 | 21 | | 46 | 8 | | 47 | 13 | | 48 | 25 | | 49 | 10 |
| |
| 88.26% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.5568181818181818 | | totalSentences | 88 | | uniqueOpeners | 49 | |
| 91.32% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 73 | | matches | | 0 | "No longer wearing that watch," | | 1 | "Then he vanished through a" |
| | ratio | 0.027 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 14 | | totalSentences | 73 | | matches | | 0 | "she muttered to herself, her" | | 1 | "she shouted, her voice barely" | | 2 | "she hissed, following through" | | 3 | "She had entered East London's" | | 4 | "she chided herself under her" | | 5 | "She broke all three." | | 6 | "Its eyes settled on her" | | 7 | "It chuckled, a dry rasping" | | 8 | "Their contents glowed politely, hypnotically." | | 9 | "She saw a human-looking figure" | | 10 | "He spotted her immediately and" | | 11 | "she yelled, sprinting toward them" | | 12 | "She hit bottom hard, the" | | 13 | "It had been orchestrated by" |
| | ratio | 0.192 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 45 | | totalSentences | 73 | | matches | | 0 | "The bones rattled in Quinn's" | | 1 | "The distinctive crackle echoed in" | | 2 | "she muttered to herself, her" | | 3 | "she shouted, her voice barely" | | 4 | "Quinn's worn leather watch on" | | 5 | "The suspect, músicas much curvier" | | 6 | "she hissed, following through" | | 7 | "A bookshelf swung shut behind" | | 8 | "Shadows danced on the walls," | | 9 | "The Raven's Nest breathed with" | | 10 | "A figure emerged from behind" | | 11 | "The barkeeper—silver—haired, could've been any" | | 12 | "Quinn nodded once curtly, sliding" | | 13 | "The barkeeper turned back to" | | 14 | "Quinn shivered slightly as she" | | 15 | "The walls had changed shape" | | 16 | "The space had expanded." | | 17 | "The cold air spoke of" | | 18 | "The stairs down twisted like" | | 19 | "She had entered East London's" |
| | ratio | 0.616 | |
| 68.49% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 73 | | matches | | 0 | "Wherever she landed, the chase" |
| | ratio | 0.014 | |
| 73.17% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 4 | | matches | | 0 | "Half a block ahead, the man she'd been chasing—Tomás, according to her ID photo—ducked under a green neon sign that flickered uncertainly in the downpour." | | 1 | "Shadows danced on the walls, covered with old maps and black-and-white photographs that seemed to move when caught from the corner of her eye." | | 2 | "Decades of conditioning kept it from aiming directly at the vendor—a tall, unnaturally thin figure draped in robes that seemed to sewn from shadows itself." | | 3 | "Wherever she landed, the chase had begun anew, and this time, she was both me and herself following shadows deeper into something that might never be right." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 7 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "the force had (have)" | | 2 | "she shouted (shout)" | | 3 | "she hissed (hiss)" | | 4 | "a shrill voice hissed (hiss)" | | 5 | "It chuckled (chuckle)" | | 6 | "she yelled (yell)" |
| | dialogueSentences | 20 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0.875 | | effectiveRatio | 0.7 | |