| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 38 | | tagDensity | 0.421 | | leniency | 0.842 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1433 | | 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) | |
| 68.60% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1433 | | totalAiIsms | 9 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | word | "down her spine" | | count | 1 |
|
| | highlights | | 0 | "echoed" | | 1 | "abyssal" | | 2 | "lilt" | | 3 | "pulse" | | 4 | "chaotic" | | 5 | "warmth" | | 6 | "affection" | | 7 | "measured" | | 8 | "down her spine" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 71 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 71 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 92 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 58 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1416 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 994 | | uniqueNames | 21 | | maxNameDensity | 0.8 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 8 | | Eva | 5 | | Moreau | 2 | | London | 2 | | Maritime | 1 | | Marseille | 1 | | Lucien | 7 | | Oxfords | 1 | | Whitechapel | 1 | | Spitalfields | 1 | | Cardiff | 1 | | Yu-Fei | 1 | | Cheung | 1 | | Avarian | 1 | | French | 2 | | Golden | 1 | | Empress | 1 | | Brick | 1 | | Lane | 1 | | English | 1 | | Aurora | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Yu-Fei" | | 5 | "Cheung" | | 6 | "Aurora" |
| | places | | 0 | "London" | | 1 | "Marseille" | | 2 | "Whitechapel" | | 3 | "Spitalfields" | | 4 | "Cardiff" | | 5 | "French" | | 6 | "Brick" | | 7 | "Lane" | | 8 | "English" |
| | globalScore | 1 | | windowScore | 1 | |
| 96.81% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 47 | | glossingSentenceCount | 1 | | matches | | 0 | "smelled like storm clouds and old librarie" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1416 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 92 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 38.27 | | std | 30.54 | | cv | 0.798 | | sampleLengths | | 0 | 41 | | 1 | 72 | | 2 | 28 | | 3 | 29 | | 4 | 8 | | 5 | 96 | | 6 | 6 | | 7 | 26 | | 8 | 15 | | 9 | 24 | | 10 | 34 | | 11 | 8 | | 12 | 63 | | 13 | 2 | | 14 | 10 | | 15 | 56 | | 16 | 4 | | 17 | 119 | | 18 | 59 | | 19 | 62 | | 20 | 16 | | 21 | 73 | | 22 | 102 | | 23 | 57 | | 24 | 13 | | 25 | 4 | | 26 | 1 | | 27 | 58 | | 28 | 21 | | 29 | 77 | | 30 | 39 | | 31 | 59 | | 32 | 6 | | 33 | 13 | | 34 | 55 | | 35 | 18 | | 36 | 42 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 71 | | matches | (empty) | |
| 71.79% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 156 | | matches | | 0 | "was lying" | | 1 | "were undoing" | | 2 | "were going" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 92 | | ratio | 0.098 | | matches | | 0 | "He leaned on the ivory handle of his cane, the silver ferrule dripping onto the scuffed linoleum, and regarded her with eyes that had haunted her since spring—one molten amber, one abyssal black." | | 1 | "Every surface—windowsill, radiator, kitchen counter—served as a shelf for Eva’s research: scrolls bound in crimson cord, grimoires bristling with sticky notes, maps of the city annotated in languages Rory couldn’t read." | | 2 | "She had rehearsed indifference for half a year—cool-headed, cerebral, the girl from Cardiff who’d outfoxed an abusive man and rebuilt a life in London plate by plate for Yu-Fei Cheung." | | 3 | "She pushed her straight, shoulder-length black hair behind her ears, aware of her own rumpled state—jeans and a faded Golden Empress hoodie—against his faultless wool." | | 4 | "He closed the distance between them in two measured strides, and now she had to tilt her head back, her bright blue eyes narrowing to hold his gaze—five-eleven to her five-six, shadow to her stubborn light." | | 5 | "Lucien made a sound in his throat—part surprise, part surrender—and his arms came around her with the fierce precision she remembered, pressing her against the stack of books at her back." | | 6 | "The old alias—the name he’d whispered to her in the dark when she hadn’t wanted to be Aurora, hadn’t wanted to be Rory, just someone unseen—sent a shiver down her spine." | | 7 | "Rory looked up at him—at the impossible eyes, at the demon and the gentleman warring in the same skin—and found the truth there, sharp and simple as a blade sliding free of an ivory handle." | | 8 | "But as he bent to retrieve his cane, his other hand found hers, threading their fingers together so the crescent scar on her wrist pressed against his palm—a new scar over an old one, a map to wherever they were going next." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 762 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small crescent-shaped scar" |
| | adverbCount | 21 | | adverbRatio | 0.027559055118110236 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.007874015748031496 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 92 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 92 | | mean | 15.39 | | std | 12.36 | | cv | 0.803 | | sampleLengths | | 0 | 32 | | 1 | 9 | | 2 | 16 | | 3 | 20 | | 4 | 33 | | 5 | 1 | | 6 | 1 | | 7 | 1 | | 8 | 26 | | 9 | 2 | | 10 | 21 | | 11 | 8 | | 12 | 5 | | 13 | 3 | | 14 | 24 | | 15 | 20 | | 16 | 31 | | 17 | 6 | | 18 | 15 | | 19 | 6 | | 20 | 20 | | 21 | 6 | | 22 | 15 | | 23 | 24 | | 24 | 9 | | 25 | 4 | | 26 | 21 | | 27 | 6 | | 28 | 2 | | 29 | 58 | | 30 | 5 | | 31 | 2 | | 32 | 10 | | 33 | 2 | | 34 | 30 | | 35 | 9 | | 36 | 2 | | 37 | 2 | | 38 | 11 | | 39 | 4 | | 40 | 7 | | 41 | 13 | | 42 | 23 | | 43 | 28 | | 44 | 48 | | 45 | 6 | | 46 | 25 | | 47 | 28 | | 48 | 25 | | 49 | 37 |
| |
| 53.99% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.3695652173913043 | | totalSentences | 92 | | uniqueOpeners | 34 | |
| 55.56% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 60 | | matches | | 0 | "Instead, the stairwell exhaled rain" |
| | ratio | 0.017 | |
| 13.33% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 60 | | matches | | 0 | "He leaned on the ivory" | | 1 | "he said, his voice carrying" | | 2 | "Her fingers tightened on the" | | 3 | "He knew she was lying." | | 4 | "He always knew." | | 5 | "It was a cramped, chaotic" | | 6 | "She’d asked in Whitechapel." | | 7 | "She stopped, the memory rising" | | 8 | "She had rehearsed indifference for" | | 9 | "He stepped across the threshold" | | 10 | "He moved through Eva’s clutter" | | 11 | "Her laugh was short, bitter" | | 12 | "She pushed her straight, shoulder-length" | | 13 | "He set his cane against" | | 14 | "He closed the distance between" | | 15 | "he said, softer now" | | 16 | "His gaze dropped to her" | | 17 | "His gloved hand lifted, hesitated" | | 18 | "His palm was cool, rain-cooled," | | 19 | "Her breath hitched." |
| | ratio | 0.517 | |
| 51.67% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 60 | | matches | | 0 | "The last deadbolt surrendered with" | | 1 | "Lucien Moreau stood on the" | | 2 | "Rain jeweled the broad shoulders" | | 3 | "He leaned on the ivory" | | 4 | "he said, his voice carrying" | | 5 | "Her fingers tightened on the" | | 6 | "He knew she was lying." | | 7 | "He always knew." | | 8 | "Ptolemy, Eva’s tabby, materialized from" | | 9 | "The flat exhaled its usual" | | 10 | "Every surface—windowsill, radiator, kitchen counter—served" | | 11 | "It was a cramped, chaotic" | | 12 | "The amber eye tracked her" | | 13 | "That was true, technically" | | 14 | "She’d asked in Whitechapel." | | 15 | "The corner of his mouth" | | 16 | "She stopped, the memory rising" | | 17 | "The word landed between them" | | 18 | "She had rehearsed indifference for" | | 19 | "He stepped across the threshold" |
| | ratio | 0.817 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 60 | | matches | (empty) | | ratio | 0 | |
| 75.89% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 3 | | matches | | 0 | "The last deadbolt surrendered with a finality that echoed in Rory’s molars, and she pulled the door inward, expecting nothing more threatening than the curry ho…" | | 1 | "She had rehearsed indifference for half a year—cool-headed, cerebral, the girl from Cardiff who’d outfoxed an abusive man and rebuilt a life in London plate by …" | | 2 | "She gripped the lapel of his charcoal suit, steadying herself, and felt the thunder beneath of a heart that was half blood, half brimstone, and presently, entir…" |
| |
| 93.75% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 1 | | matches | | 0 | "She leaned, her heart hammering a reckless rhythm against her ribs" |
| |
| 97.37% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 2 | | fancyTags | | 0 | "he murmured (murmur)" | | 1 | "Rory whispered (whisper)" |
| | dialogueSentences | 38 | | tagDensity | 0.184 | | leniency | 0.368 | | rawRatio | 0.286 | | effectiveRatio | 0.105 | |