| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 38 | | tagDensity | 0.342 | | leniency | 0.684 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.38% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1382 | | 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) | |
| 52.97% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1382 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "echoed" | | 1 | "footsteps" | | 2 | "echoing" | | 3 | "flickered" | | 4 | "silk" | | 5 | "scanned" | | 6 | "facade" | | 7 | "sanctuary" | | 8 | "pulse" | | 9 | "scanning" |
| |
| 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 | 0 | | narrationSentences | 100 | | matches | (empty) | |
| 85.71% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 100 | | filterMatches | (empty) | | hedgeMatches | | |
| 97.93% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 125 | | gibberishSentences | 1 | | adjustedGibberishSentences | 1 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0.008 | | matches | | 0 | "She was a detective with Metropolitan Police, eighteen years of service, a badge and a gun and a lifetime of不相信 the impossible." |
| |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1364 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 73.59% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 1047 | | uniqueNames | 10 | | maxNameDensity | 1.53 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Harlow | 1 | | Quinn | 16 | | Underground | 1 | | Spanish | 1 | | Morris | 2 | | Thames | 1 | | Tomás | 3 | | Metropolitan | 1 | | Police | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Morris" | | 3 | "Tomás" |
| | places | | | globalScore | 0.736 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 73 | | glossingSentenceCount | 1 | | matches | | 0 | "gown that seemed to shift between silk and smoke, a man with skin like polished copper, three figures in hooded robes that obscured their faces" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1364 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 125 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 26.75 | | std | 19.2 | | cv | 0.718 | | sampleLengths | | 0 | 41 | | 1 | 18 | | 2 | 59 | | 3 | 23 | | 4 | 7 | | 5 | 30 | | 6 | 44 | | 7 | 2 | | 8 | 36 | | 9 | 36 | | 10 | 39 | | 11 | 8 | | 12 | 52 | | 13 | 6 | | 14 | 83 | | 15 | 19 | | 16 | 11 | | 17 | 2 | | 18 | 49 | | 19 | 17 | | 20 | 14 | | 21 | 28 | | 22 | 17 | | 23 | 6 | | 24 | 32 | | 25 | 26 | | 26 | 21 | | 27 | 3 | | 28 | 29 | | 29 | 1 | | 30 | 35 | | 31 | 69 | | 32 | 40 | | 33 | 14 | | 34 | 35 | | 35 | 58 | | 36 | 37 | | 37 | 15 | | 38 | 8 | | 39 | 8 | | 40 | 7 | | 41 | 5 | | 42 | 24 | | 43 | 32 | | 44 | 43 | | 45 | 1 | | 46 | 43 | | 47 | 30 | | 48 | 55 | | 49 | 41 |
| |
| 94.74% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 100 | | matches | | 0 | "been closed" | | 1 | "was gone" | | 2 | "been ruled" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 194 | | matches | | 0 | "was seeing" | | 1 | "was telling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 125 | | ratio | 0.096 | | matches | | 0 | "The station had been closed for years—boarded up, condemned, another casualty of budget cuts." | | 1 | "Emergency lights flickered—green, sickly—illuminating torn advertisements and water stains climbing the walls like ivy." | | 2 | "The corridor smelled of damp and something else—incense, maybe, or burnt herbs." | | 3 | "Tiles lined the floor in patterns she didn't recognize—symbols, maybe, or letters in a language she couldn't read." | | 4 | "But something about this place set her teeth on edge—the way the shadows seemed to move, the way the voices cut off when she drew near." | | 5 | "Stalls and booths crowded together in the cavernous space, their canopies a riot of colors—deep purple, blood red, midnight blue." | | 6 | "People moved between the stalls, hundreds of them, some in ordinary clothes, others in garments that made her blink—a woman in a gown that seemed to shift between silk and smoke, a man with skin like polished copper, three figures in hooded robes that obscured their faces." | | 7 | "Three years ago, her partner had been chasing something—not a man, she'd said at the time, something else—and he'd ended up in the Thames, his body broken, his eyes open and filled with a terror she'd never forgotten." | | 8 | "\"Then he's already dead or worse.\" The young man—Tomás, something in her memory whispered, she'd heard that name in connection with certain circles—shook his head." | | 9 | "Stalls displayed wares she couldn't name—bottles of luminescent liquid, cages containing creatures that shifted and snarled in languages she didn't recognize, scrolls and grimoires and objects that seemed to fold in on themselves." | | 10 | "This wasn't her world—whatever this world was." | | 11 | "Then he reached into his pocket and withdrew something small—a bone, white and curved, no larger than his thumb." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 842 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 13 | | adverbRatio | 0.015439429928741092 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.007125890736342043 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 125 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 125 | | mean | 10.91 | | std | 8.82 | | cv | 0.808 | | sampleLengths | | 0 | 18 | | 1 | 23 | | 2 | 1 | | 3 | 3 | | 4 | 14 | | 5 | 4 | | 6 | 12 | | 7 | 22 | | 8 | 14 | | 9 | 7 | | 10 | 10 | | 11 | 13 | | 12 | 6 | | 13 | 1 | | 14 | 4 | | 15 | 12 | | 16 | 14 | | 17 | 7 | | 18 | 12 | | 19 | 14 | | 20 | 11 | | 21 | 2 | | 22 | 12 | | 23 | 11 | | 24 | 13 | | 25 | 2 | | 26 | 9 | | 27 | 16 | | 28 | 3 | | 29 | 6 | | 30 | 18 | | 31 | 21 | | 32 | 2 | | 33 | 1 | | 34 | 5 | | 35 | 7 | | 36 | 11 | | 37 | 2 | | 38 | 6 | | 39 | 26 | | 40 | 6 | | 41 | 5 | | 42 | 20 | | 43 | 11 | | 44 | 47 | | 45 | 7 | | 46 | 12 | | 47 | 3 | | 48 | 8 | | 49 | 2 |
| |
| 58.40% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.384 | | totalSentences | 125 | | uniqueOpeners | 48 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 90 | | matches | | 0 | "Just a moment, a crack" | | 1 | "Then he reached into his" | | 2 | "Then she turned and walked" |
| | ratio | 0.033 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 90 | | matches | | 0 | "She hit the stairs at" | | 1 | "He shoved through a gap" | | 2 | "He sprinted across the platform," | | 3 | "Her shoulder wrenched, protest shooting" | | 4 | "Her footsteps rang against the" | | 5 | "Her free hand found her" | | 6 | "She'd done this a hundred" | | 7 | "She rounded the corner and" | | 8 | "She blinked, raised her gun" | | 9 | "He was gone." | | 10 | "He had warm brown eyes," | | 11 | "His accent was faint, Spanish" | | 12 | "He wasn't afraid of her" | | 13 | "She gestured with the torch" | | 14 | "She hadn't told him her" | | 15 | "She hadn't given him her" | | 16 | "He stepped closer, lowered his" | | 17 | "He said the word like" | | 18 | "She'd spent three years chasing" | | 19 | "She should go." |
| | ratio | 0.289 | |
| 54.44% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 90 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn's boots splashed" | | 2 | "The suspectvaulted a trash can" | | 3 | "Quinn didn't slow down." | | 4 | "She hit the stairs at" | | 5 | "The station had been closed" | | 6 | "The suspect's silhouette materialized at" | | 7 | "He shoved through a gap" | | 8 | "Quinn's voice echoed off tile" | | 9 | "The man didn't stop." | | 10 | "He sprinted across the platform," | | 11 | "Emergency lights flickered—green, sickly—illuminating torn" | | 12 | "Quinn pushed through the gap" | | 13 | "Her shoulder wrenched, protest shooting" | | 14 | "The platform stretched ahead, abandoned" | | 15 | "The suspect veered left, toward" | | 16 | "The corridor smelled of damp" | | 17 | "Her footsteps rang against the" | | 18 | "Her free hand found her" | | 19 | "The beam cut through darkness," |
| | ratio | 0.811 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 90 | | matches | (empty) | | ratio | 0 | |
| 65.64% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 4 | | matches | | 0 | "She hit the stairs at a sprint, concrete steps slick with rain and grime, her hand gripping the iron railing for balance." | | 1 | "The air grew colder as she moved deeper, rain soaking through her coat, her breath misting in front of her face." | | 2 | "She'd spent three years chasing shadows, following leads that went nowhere, listening to whispers about things that couldn't exist." | | 3 | "Stalls displayed wares she couldn't name—bottles of luminescent liquid, cages containing creatures that shifted and snarled in languages she didn't recognize, s…" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "Quinn kept, professional" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 1 | | fancyTags | | 0 | "her memory whispered (whisper)" |
| | dialogueSentences | 38 | | tagDensity | 0.132 | | leniency | 0.263 | | rawRatio | 0.2 | | effectiveRatio | 0.053 | |