| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 3 | | adverbTags | | 0 | "Lucien said quietly [quietly]" | | 1 | "he said dryly [dryly]" | | 2 | "She’d almost [almost]" |
| | dialogueSentences | 71 | | tagDensity | 0.183 | | leniency | 0.366 | | rawRatio | 0.231 | | effectiveRatio | 0.085 | |
| 91.56% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1777 | | totalAiIsmAdverbs | 3 | | 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) | |
| 49.35% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1777 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "pulse" | | 1 | "stomach" | | 2 | "flickered" | | 3 | "trembled" | | 4 | "unreadable" | | 5 | "eyebrow" | | 6 | "unspoken" | | 7 | "familiar" | | 8 | "weight" | | 9 | "tracing" | | 10 | "potential" | | 11 | "sense of" | | 12 | "comforting" | | 13 | "dance" |
| |
| 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 | 132 | | matches | (empty) | |
| 99.57% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 132 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 190 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 14 | | markdownWords | 29 | | totalWords | 1764 | | ratio | 0.016 | | matches | | 0 | "Meet me at the old docks. Midnight. Alone. Or the next body will be yours." | | 1 | "open it" | | 2 | "hoped" | | 3 | "you" | | 4 | "possible" | | 5 | "why" | | 6 | "is" | | 7 | "did" | | 8 | "my" | | 9 | "promise" | | 10 | "is" | | 11 | "did" | | 12 | "did" | | 13 | "she" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1250 | | uniqueNames | 6 | | maxNameDensity | 1.28 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 16 | | Eva | 5 | | Evan | 6 | | Lucien | 16 | | London | 1 | | Yu-Fei | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Evan" | | 3 | "Lucien" |
| | places | | | globalScore | 0.86 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 80 | | 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 | 1764 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 190 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 77 | | mean | 22.91 | | std | 20.54 | | cv | 0.897 | | sampleLengths | | 0 | 74 | | 1 | 8 | | 2 | 75 | | 3 | 41 | | 4 | 18 | | 5 | 68 | | 6 | 52 | | 7 | 5 | | 8 | 5 | | 9 | 9 | | 10 | 50 | | 11 | 8 | | 12 | 25 | | 13 | 6 | | 14 | 7 | | 15 | 13 | | 16 | 42 | | 17 | 48 | | 18 | 49 | | 19 | 6 | | 20 | 27 | | 21 | 22 | | 22 | 4 | | 23 | 6 | | 24 | 1 | | 25 | 51 | | 26 | 11 | | 27 | 10 | | 28 | 47 | | 29 | 6 | | 30 | 5 | | 31 | 15 | | 32 | 64 | | 33 | 22 | | 34 | 28 | | 35 | 4 | | 36 | 25 | | 37 | 34 | | 38 | 14 | | 39 | 33 | | 40 | 82 | | 41 | 10 | | 42 | 6 | | 43 | 27 | | 44 | 16 | | 45 | 12 | | 46 | 12 | | 47 | 27 | | 48 | 17 | | 49 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 132 | | matches | | |
| 58.16% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 235 | | matches | | 0 | "was wiping" | | 1 | "was switching" | | 2 | "was playing" | | 3 | "were trying" | | 4 | "were doing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 190 | | ratio | 0.058 | | matches | | 0 | "No one ever knocked on Eva’s door without calling first—especially not at this hour, when the scent of cumin and coriander from the curry house below still clung to the hallway like a second skin." | | 1 | "The flat’s three deadbolts were still fastened—Eva had drilled that into her after the incident with Evan." | | 2 | "When she finally pulled the door open, the scent of him—bergamot and something darker, like gunpowder and old parchment—rushed in before he did." | | 3 | "His heterochromatic eyes—one amber, one black—flickered over her with the kind of assessment that made her feel both exposed and invisible." | | 4 | "That was the problem with Lucien—he disarmed her without even trying." | | 5 | "But the handwriting wasn’t his—it was jagged, urgent." | | 6 | "“You think I’d believe Evan’s suddenly resurfaced with a dramatic note and a flair for the theatrical?” She threw the paper onto the nearest surface—a pile of Eva’s research notes." | | 7 | "And the truth was, she *did* know where the old docks were—Eva had dragged her there once on a wild goose chase for a cursed artifact." | | 8 | "Lucien checked his watch—a sleek, silver thing that probably cost more than her flat." | | 9 | "But the truth was, she *did* need saving—from Evan, from whatever game he was playing, from the way her past kept clawing its way back into her present." | | 10 | "The handwriting *did* look like Evan’s—messy, aggressive, the letters slanting like they were trying to escape the page." |
| |
| 96.09% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 922 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 41 | | adverbRatio | 0.044468546637744036 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.008676789587852495 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 190 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 190 | | mean | 9.28 | | std | 7.53 | | cv | 0.811 | | sampleLengths | | 0 | 17 | | 1 | 7 | | 2 | 35 | | 3 | 15 | | 4 | 7 | | 5 | 1 | | 6 | 10 | | 7 | 17 | | 8 | 18 | | 9 | 29 | | 10 | 1 | | 11 | 3 | | 12 | 6 | | 13 | 32 | | 14 | 2 | | 15 | 11 | | 16 | 5 | | 17 | 7 | | 18 | 2 | | 19 | 20 | | 20 | 16 | | 21 | 23 | | 22 | 25 | | 23 | 21 | | 24 | 6 | | 25 | 3 | | 26 | 2 | | 27 | 3 | | 28 | 2 | | 29 | 4 | | 30 | 5 | | 31 | 17 | | 32 | 24 | | 33 | 9 | | 34 | 4 | | 35 | 4 | | 36 | 19 | | 37 | 6 | | 38 | 6 | | 39 | 7 | | 40 | 5 | | 41 | 8 | | 42 | 14 | | 43 | 11 | | 44 | 9 | | 45 | 8 | | 46 | 12 | | 47 | 27 | | 48 | 9 | | 49 | 7 |
| |
| 49.65% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.3263157894736842 | | totalSentences | 190 | | uniqueOpeners | 62 | |
| 84.75% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 118 | | matches | | 0 | "Then Lucien reached out, his" | | 1 | "Just gave her that infuriating," | | 2 | "Almost possible to pretend this" |
| | ratio | 0.025 | |
| 77.63% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 42 | | totalSentences | 118 | | matches | | 0 | "She froze, the dishcloth suspended" | | 1 | "She padded across the cluttered" | | 2 | "Her pulse jumped." | | 3 | "She hadn’t seen him in" | | 4 | "he called, voice smooth, amused" | | 5 | "She undid the first deadbolt," | | 6 | "His heterochromatic eyes—one amber, one" | | 7 | "His mouth quirked." | | 8 | "She crossed her arms." | | 9 | "He pushed off the doorframe," | | 10 | "His laugh was low, rich." | | 11 | "She shot him a glare," | | 12 | "He reached into his inner" | | 13 | "Her breath hitched." | | 14 | "She looked up." | | 15 | "She’d thought she was free" | | 16 | "She’d *hoped* she was free" | | 17 | "She crumpled the note in" | | 18 | "She threw the paper onto" | | 19 | "She turned away, rubbing her" |
| | ratio | 0.356 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 84 | | totalSentences | 118 | | matches | | 0 | "The first knock came just" | | 1 | "She froze, the dishcloth suspended" | | 2 | "Ptolemy, the tabby cat, lifted" | | 3 | "The knock came again, sharper" | | 4 | "Rory exhaled through her nose" | | 5 | "The flat’s three deadbolts were" | | 6 | "She padded across the cluttered" | | 7 | "The peephole offered a distorted" | | 8 | "Her pulse jumped." | | 9 | "She hadn’t seen him in" | | 10 | "he called, voice smooth, amused" | | 11 | "Rory pressed her forehead against" | | 12 | "She undid the first deadbolt," | | 13 | "Lucien leaned against the doorframe," | | 14 | "His heterochromatic eyes—one amber, one" | | 15 | "His mouth quirked." | | 16 | "She crossed her arms." | | 17 | "He pushed off the doorframe," | | 18 | "The flat seemed to shrink" | | 19 | "Ptolemy hissed and arched his" |
| | ratio | 0.712 | |
| 42.37% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 118 | | matches | | | ratio | 0.008 | |
| 97.26% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 3 | | matches | | 0 | "She padded across the cluttered floor, sidestepping a stack of books that had spilled from the coffee table." | | 1 | "His heterochromatic eyes—one amber, one black—flickered over her with the kind of assessment that made her feel both exposed and invisible." | | 2 | "Then Lucien reached out, his fingers brushing against her left wrist, tracing the small crescent-shaped scar there." |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "he called, voice smooth, amused" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 2 | | fancyTags | | 0 | "Rory lied (lie)" | | 1 | "he murmured (murmur)" |
| | dialogueSentences | 71 | | tagDensity | 0.099 | | leniency | 0.197 | | rawRatio | 0.286 | | effectiveRatio | 0.056 | |