| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 93.07% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1443 | | totalAiIsmAdverbs | 2 | | 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) | |
| 34.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1443 | | totalAiIsms | 19 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "measured" | | 1 | "jaw clenched" | | 2 | "rhythmic" | | 3 | "vibrated" | | 4 | "standard" | | 5 | "gloom" | | 6 | "warmth" | | 7 | "electric" | | 8 | "flickered" | | 9 | "sentinel" | | 10 | "pulse" | | 11 | "cataloged" | | 12 | "variables" | | 13 | "familiar" | | 14 | "velvet" | | 15 | "stomach" | | 16 | "scanning" | | 17 | "silk" |
| |
| 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 | 1 | | narrationSentences | 83 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 83 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 83 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 43 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1437 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 54 | | wordCount | 1437 | | uniqueNames | 26 | | maxNameDensity | 0.9 | | worstName | "Harlow" | | maxWindowNameDensity | 2 | | worstWindowName | "Herrera" | | discoveredNames | | Camden | 3 | | Harlow | 13 | | Quinn | 1 | | Metropolitan | 1 | | Police | 1 | | Herrera | 9 | | London | 4 | | Raven | 1 | | Nest | 1 | | Soho | 1 | | Underground | 1 | | Morris | 4 | | Thames | 1 | | Victorian | 1 | | West | 1 | | End | 1 | | Saint | 1 | | Christopher | 1 | | Tube | 1 | | Crown | 1 | | Northern | 1 | | Line | 1 | | Latin | 1 | | East | 1 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Raven" | | 4 | "Morris" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Crown" |
| | places | | 0 | "Camden" | | 1 | "Metropolitan" | | 2 | "London" | | 3 | "Soho" | | 4 | "Thames" | | 5 | "West" | | 6 | "End" | | 7 | "East" | | 8 | "Market" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 74 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.696 | | wordCount | 1437 | | matches | | 0 | "not by electric fixtures, but by hanging wrought-iron braziers" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 83 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 43.55 | | std | 29.94 | | cv | 0.688 | | sampleLengths | | 0 | 103 | | 1 | 11 | | 2 | 90 | | 3 | 21 | | 4 | 45 | | 5 | 65 | | 6 | 58 | | 7 | 13 | | 8 | 46 | | 9 | 120 | | 10 | 43 | | 11 | 4 | | 12 | 56 | | 13 | 12 | | 14 | 47 | | 15 | 12 | | 16 | 66 | | 17 | 23 | | 18 | 86 | | 19 | 57 | | 20 | 25 | | 21 | 78 | | 22 | 5 | | 23 | 34 | | 24 | 64 | | 25 | 19 | | 26 | 29 | | 27 | 67 | | 28 | 40 | | 29 | 17 | | 30 | 1 | | 31 | 60 | | 32 | 20 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 83 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 217 | | matches | | 0 | "was running" | | 1 | "was crossing" | | 2 | "was weighing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 83 | | ratio | 0.06 | | matches | | 0 | "Down below, the wet slap of rubber soles against concrete faded rapidly, replaced by something faint and unnatural—a low, rhythmic thrum that vibrated in the fillings of her teeth, like the bass hum of a transformer submerged in deep water." | | 1 | "Instead, his fingers dug into his pocket and produced something small, white, and jagged—a carved sliver of bone roughly the size of an oyster card." | | 2 | "She had no radio reception—the static in her earpiece had died into dead air the moment she crossed the lower landing." | | 3 | "And the truth about Morris—about the things that bled and traded outside the purview of the Crown—would slip away with him." | | 4 | "It was a riot of voices, haggling in dialects she couldn't place—guttural cadences mixed with formal Latin and the familiar snap of East London slang." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1457 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 31 | | adverbRatio | 0.02127659574468085 | | lyAdverbCount | 16 | | lyAdverbRatio | 0.01098146877144818 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 83 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 83 | | mean | 17.31 | | std | 9.71 | | cv | 0.561 | | sampleLengths | | 0 | 28 | | 1 | 32 | | 2 | 32 | | 3 | 11 | | 4 | 2 | | 5 | 9 | | 6 | 38 | | 7 | 8 | | 8 | 21 | | 9 | 23 | | 10 | 21 | | 11 | 18 | | 12 | 13 | | 13 | 14 | | 14 | 8 | | 15 | 16 | | 16 | 19 | | 17 | 22 | | 18 | 4 | | 19 | 11 | | 20 | 43 | | 21 | 13 | | 22 | 6 | | 23 | 40 | | 24 | 17 | | 25 | 4 | | 26 | 9 | | 27 | 15 | | 28 | 37 | | 29 | 14 | | 30 | 24 | | 31 | 16 | | 32 | 27 | | 33 | 4 | | 34 | 8 | | 35 | 22 | | 36 | 8 | | 37 | 18 | | 38 | 8 | | 39 | 4 | | 40 | 26 | | 41 | 21 | | 42 | 12 | | 43 | 8 | | 44 | 24 | | 45 | 25 | | 46 | 9 | | 47 | 17 | | 48 | 6 | | 49 | 12 |
| |
| 53.41% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.3855421686746988 | | totalSentences | 83 | | uniqueOpeners | 32 | |
| 41.67% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 80 | | matches | | 0 | "Instead, his fingers dug into" |
| | ratio | 0.013 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 80 | | matches | | 0 | "Her eyes stayed locked on" | | 1 | "She had tailed him all" | | 2 | "He wore a sodden canvas" | | 3 | "She checked the worn leather" | | 4 | "She turned into the mouth" | | 5 | "It was narrow, choked with" | | 6 | "He grabbed the cold iron" | | 7 | "Her instincts screamed at her" | | 8 | "She drew a short, controlled" | | 9 | "She followed him down." | | 10 | "She didn’t need it." | | 11 | "He reached into his shirt" | | 12 | "He pressed it into the" | | 13 | "Her mind cataloged the variables" | | 14 | "She was at least eighty" | | 15 | "She had no radio reception—the" | | 16 | "She had a sidearm with" | | 17 | "She waited until the cloaked" | | 18 | "She crossed the dead space" | | 19 | "She didn't have a bone" |
| | ratio | 0.3 | |
| 60.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 80 | | matches | | 0 | "The rain in Camden did" | | 1 | "Detective Harlow Quinn kept her" | | 2 | "Water ran in icy rivulets" | | 3 | "Her eyes stayed locked on" | | 4 | "She had tailed him all" | | 5 | "Herrera moved with the hurried" | | 6 | "He wore a sodden canvas" | | 7 | "Harlow accelerated, her right hand" | | 8 | "She checked the worn leather" | | 9 | "The street was dead save" | | 10 | "She turned into the mouth" | | 11 | "It was narrow, choked with" | | 12 | "Herrera had reached the far" | | 13 | "The gate hung off its" | | 14 | "Herrera didn't look back." | | 15 | "He grabbed the cold iron" | | 16 | "Harlow stopped at the perimeter," | | 17 | "The stairwell swallowed all street-level" | | 18 | "Her instincts screamed at her" | | 19 | "That was standard protocol." |
| | ratio | 0.8 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 80 | | matches | | 0 | "Now he was running, but" | | 1 | "If she walked through, she" | | 2 | "If she turned back, Herrera" |
| | ratio | 0.038 | |
| 49.18% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 61 | | technicalSentenceCount | 8 | | matches | | 0 | "Down below, the wet slap of rubber soles against concrete faded rapidly, replaced by something faint and unnatural—a low, rhythmic thrum that vibrated in the fi…" | | 1 | "The damp London cold gave way to an oily, sulfurous warmth that smelled of burned copper, dried mountain sage, and boiling sugar." | | 2 | "A sickly, amber luminescence spilled out from the pedestrian tunnel ahead, cast not by electric fixtures, but by hanging wrought-iron braziers that flickered wi…" | | 3 | "He reached into his shirt collar, pulling free a Saint Christopher medallion that gleamed wetly against his chest, but he didn't offer the silver." | | 4 | "She was at least eighty feet below Camden, in an abandoned Tube station that wasn't marked on any current civil engineering blueprint." | | 5 | "When the guard’s cowl turned toward the brazier’s spitting green coal, Harlow surged forward, ducking low under the radius of the flame’s glow, sliding through …" | | 6 | "A woman with entirely black, sclera-less eyes was weighing dried roots on an antique brass scale, while beside her, an iron brazier vented violet smoke that sme…" | | 7 | "A hollow cold settled in her stomach, but beneath it came the hard, sharp focus that had defined her entire career." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |