| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1148 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 65.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1148 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "shattered" | | 1 | "aftermath" | | 2 | "pulsed" | | 3 | "stark" | | 4 | "measured" | | 5 | "silk" | | 6 | "velvet" | | 7 | "shimmered" |
| |
| 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 | 79 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 79 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 94 | | 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 | 1148 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 906 | | uniqueNames | 14 | | maxNameDensity | 0.77 | | worstName | "Harlow" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Harlow" | | discoveredNames | | Quinn | 2 | | Kowalski | 1 | | Tube | 1 | | Veil | 1 | | Market | 1 | | Eva | 5 | | Black | 1 | | Eighteen | 1 | | London | 1 | | Victorian | 1 | | Camden | 1 | | Highlighter | 1 | | Morris | 2 | | Harlow | 7 |
| | persons | | 0 | "Quinn" | | 1 | "Kowalski" | | 2 | "Eva" | | 3 | "Highlighter" | | 4 | "Morris" | | 5 | "Harlow" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1148 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 94 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 37.03 | | std | 28.04 | | cv | 0.757 | | sampleLengths | | 0 | 33 | | 1 | 3 | | 2 | 45 | | 3 | 18 | | 4 | 21 | | 5 | 27 | | 6 | 100 | | 7 | 16 | | 8 | 4 | | 9 | 51 | | 10 | 68 | | 11 | 34 | | 12 | 52 | | 13 | 85 | | 14 | 54 | | 15 | 39 | | 16 | 5 | | 17 | 22 | | 18 | 46 | | 19 | 8 | | 20 | 29 | | 21 | 14 | | 22 | 93 | | 23 | 44 | | 24 | 89 | | 25 | 32 | | 26 | 1 | | 27 | 62 | | 28 | 6 | | 29 | 1 | | 30 | 46 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 79 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 147 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 94 | | ratio | 0 | | matches | (empty) | |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 552 | | adjectiveStacks | 1 | | stackExamples | | 0 | "single dull silver coin," |
| | adverbCount | 16 | | adverbRatio | 0.028985507246376812 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0018115942028985507 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 94 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 94 | | mean | 12.21 | | std | 8.65 | | cv | 0.708 | | sampleLengths | | 0 | 11 | | 1 | 22 | | 2 | 3 | | 3 | 17 | | 4 | 28 | | 5 | 18 | | 6 | 6 | | 7 | 12 | | 8 | 3 | | 9 | 27 | | 10 | 11 | | 11 | 24 | | 12 | 35 | | 13 | 6 | | 14 | 12 | | 15 | 12 | | 16 | 16 | | 17 | 4 | | 18 | 16 | | 19 | 12 | | 20 | 23 | | 21 | 9 | | 22 | 12 | | 23 | 2 | | 24 | 14 | | 25 | 13 | | 26 | 5 | | 27 | 2 | | 28 | 11 | | 29 | 10 | | 30 | 24 | | 31 | 13 | | 32 | 22 | | 33 | 17 | | 34 | 25 | | 35 | 12 | | 36 | 24 | | 37 | 24 | | 38 | 7 | | 39 | 23 | | 40 | 24 | | 41 | 4 | | 42 | 8 | | 43 | 16 | | 44 | 11 | | 45 | 5 | | 46 | 22 | | 47 | 5 | | 48 | 28 | | 49 | 2 |
| |
| 87.59% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5638297872340425 | | totalSentences | 94 | | uniqueOpeners | 53 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 66 | | matches | | 0 | "Just a shallow groove that" | | 1 | "Just solid London clay brick" | | 2 | "Somewhere far above, a living" | | 3 | "Only the victim's footprints marked" | | 4 | "Only cold that knifed into" |
| | ratio | 0.076 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 11 | | totalSentences | 66 | | matches | | 0 | "She tucked a curl of" | | 1 | "It landed with a soft" | | 2 | "Her brown eyes swept the" | | 3 | "She stepped over a toppled" | | 4 | "She fished it free with" | | 5 | "She pocketed the coin for" | | 6 | "She set off along the" | | 7 | "She righted the stall with" | | 8 | "She walked the line the" | | 9 | "She found the loose brick" | | 10 | "Her own surname sat halfway" |
| | ratio | 0.167 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 46 | | totalSentences | 66 | | matches | | 0 | "Harlow Quinn seized the dead" | | 1 | "The shattered watch face winked" | | 2 | "Eva Kowalski knelt on the" | | 3 | "She tucked a curl of" | | 4 | "Harlow let the wrist drop" | | 5 | "It landed with a soft" | | 6 | "Harlow rose in one clean" | | 7 | "Her brown eyes swept the" | | 8 | "Stalls jostled for space along" | | 9 | "A rack of bone charms" | | 10 | "The air tasted of sulphur," | | 11 | "She stepped over a toppled" | | 12 | "Eva stood as well, freckles" | | 13 | "The leather strap of the" | | 14 | "Harlow crouched once more, this" | | 15 | "The victim stared at nothing" | | 16 | "She fished it free with" | | 17 | "She pocketed the coin for" | | 18 | "Eva pointed but kept her" | | 19 | "Harlow straightened and clicked her" |
| | ratio | 0.697 | |
| 75.76% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 66 | | matches | | 0 | "As if death had simply" |
| | ratio | 0.015 | |
| 14.65% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 7 | | matches | | 0 | "Black ink looped across the dead skin in half-formed sigils, the lines breaking off mid-curve as if the tattooist had fled mid-needle." | | 1 | "Instruments rolled and clanged against one another: bells no larger than thimbles, lenses ground into impossible angles, calipers that flexed like living finger…" | | 2 | "There, half-buried under a length of blue silk shot through with actual starlight, lay the thing that did not belong to any mundane toolkit." | | 3 | "The needle jerked left, then snapped hard to the right and locked on a stretch of soot-streaked brick that looked no different from any other section of wall." | | 4 | "She walked the line the needle indicated, weaving between a booth of shadow-spun cloaks that tried═ to cling to her coat sleeves and a long table where decks of…" | | 5 | "Inside rested a thin ledger bound in something that might once have been skin, pages open to notes written in a cramped hand." | | 6 | "The face that came first wore the exact set of her dead partner's jaw and the empty sockets where DS Morris's eyes had once laughed at bad jokes in the canteen." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |