| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 1 | | adverbTags | | 0 | "Rory said quietly [quietly]" |
| | dialogueSentences | 39 | | tagDensity | 0.385 | | leniency | 0.769 | | rawRatio | 0.067 | | effectiveRatio | 0.051 | |
| 90.74% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1619 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "precisely" | | 1 | "very" | | 2 | "slowly" |
| |
| 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) | |
| 56.76% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1619 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "familiar" | | 1 | "intricate" | | 2 | "beacon" | | 3 | "flicked" | | 4 | "throbbed" | | 5 | "echoed" | | 6 | "glistening" | | 7 | "stomach" | | 8 | "trembled" | | 9 | "pulse" | | 10 | "whisper" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 141 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 141 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 165 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 7 | | markdownWords | 18 | | totalWords | 1602 | | ratio | 0.011 | | matches | | 0 | "Damn it." | | 1 | "tap" | | 2 | "Avaros." | | 3 | "ages" | | 4 | "particular" | | 5 | "\"I can't be what you need me to be.\"" | | 6 | "Well? Fix this." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 75 | | wordCount | 1233 | | uniqueNames | 20 | | maxNameDensity | 1.95 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 9 | | Lucien | 20 | | Rory | 24 | | Brick | 1 | | Lane | 1 | | Sumerian | 1 | | Welsh | 1 | | Ptolemy | 3 | | London-shadow-banking | 1 | | Cream | 1 | | Hollowed | 1 | | Circle | 1 | | Carmichael | 2 | | Camden | 1 | | Coffee | 1 | | Ring | 1 | | Curse | 1 | | Cardiff | 1 | | Soho | 1 | | Tommy | 3 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Rory" | | 3 | "Sumerian" | | 4 | "Ptolemy" | | 5 | "Carmichael" | | 6 | "Tommy" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "London-shadow-banking" | | 3 | "Camden" | | 4 | "Cardiff" | | 5 | "Soho" |
| | globalScore | 0.527 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 1 | | matches | | 0 | "void that seemed to pull at the corners of her vision" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1602 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 165 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 60 | | mean | 26.7 | | std | 21.86 | | cv | 0.819 | | sampleLengths | | 0 | 66 | | 1 | 98 | | 2 | 2 | | 3 | 57 | | 4 | 55 | | 5 | 36 | | 6 | 25 | | 7 | 39 | | 8 | 43 | | 9 | 14 | | 10 | 54 | | 11 | 23 | | 12 | 27 | | 13 | 27 | | 14 | 4 | | 15 | 61 | | 16 | 66 | | 17 | 30 | | 18 | 3 | | 19 | 8 | | 20 | 22 | | 21 | 7 | | 22 | 76 | | 23 | 9 | | 24 | 29 | | 25 | 19 | | 26 | 66 | | 27 | 3 | | 28 | 3 | | 29 | 24 | | 30 | 55 | | 31 | 6 | | 32 | 24 | | 33 | 14 | | 34 | 16 | | 35 | 19 | | 36 | 32 | | 37 | 5 | | 38 | 7 | | 39 | 18 | | 40 | 42 | | 41 | 33 | | 42 | 17 | | 43 | 4 | | 44 | 7 | | 45 | 15 | | 46 | 27 | | 47 | 63 | | 48 | 10 | | 49 | 3 |
| |
| 95.31% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 141 | | matches | | 0 | "been taken" | | 1 | "was—blurred" | | 2 | "was gone" | | 3 | "got mixed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 211 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 165 | | ratio | 0.067 | | matches | | 0 | "It hadn't been her idea—Eva's obsession with organisation had reached quarantine-level stratagem—but the way Lucien's cane tapped against the doorjamb made her regret every swing of the claw hammer." | | 1 | "Three deadbolts, all undone in less than ten seconds—enough to make Rory's jaw ache with envy." | | 2 | "Then the cane—ivory-handled, carved with something intricate, not tarnished at all despite the gust of curry-scented air blasting in from Brick Lane's late-night chaos." | | 3 | "His gaze flicked to the scattered volumes—Sumerian scrolls, dog-eared romance paperbacks, a first-edition Welsh dictionary—and that damnable smile twitched at the corner of his mouth." | | 4 | "Lucien's cane made contact with the floor again—*tap*—and Rory's wrist throbbed in sympathetic pain." | | 5 | "The book—an ancient, leather-bound ritual manual Eva swore would \"bring order to the cosmic mess\"—wobbled." | | 6 | "Instead, he pulled something else from an inner pocket—a photograph." | | 7 | "The space between them thrummed with that old, familiar current—the one that had once sent them both stumbling into alleyways, shadows, beds, and eventually the kind of recklessness that left bruises behind." | | 8 | "The camera angle suggested it had been taken from a window—someone's voyeuristic, late-night snap." | | 9 | "Eva's research notes on the Coffee Ring Curse—whatever that was—blurred into illegible scribbles." | | 10 | "She remembered it vividly—the late-night call from an unknown number, just after she'd finished a double shift at the restaurant." |
| |
| 93.44% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1058 | | adjectiveStacks | 1 | | stackExamples | | 0 | "ancient, leather-bound ritual" |
| | adverbCount | 43 | | adverbRatio | 0.04064272211720227 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.012287334593572778 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 165 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 165 | | mean | 9.71 | | std | 7.97 | | cv | 0.821 | | sampleLengths | | 0 | 3 | | 1 | 2 | | 2 | 6 | | 3 | 26 | | 4 | 29 | | 5 | 7 | | 6 | 2 | | 7 | 16 | | 8 | 22 | | 9 | 24 | | 10 | 27 | | 11 | 2 | | 12 | 25 | | 13 | 25 | | 14 | 7 | | 15 | 3 | | 16 | 8 | | 17 | 21 | | 18 | 23 | | 19 | 14 | | 20 | 16 | | 21 | 6 | | 22 | 12 | | 23 | 2 | | 24 | 2 | | 25 | 1 | | 26 | 8 | | 27 | 30 | | 28 | 7 | | 29 | 2 | | 30 | 10 | | 31 | 23 | | 32 | 5 | | 33 | 5 | | 34 | 6 | | 35 | 8 | | 36 | 5 | | 37 | 17 | | 38 | 15 | | 39 | 10 | | 40 | 7 | | 41 | 14 | | 42 | 9 | | 43 | 17 | | 44 | 10 | | 45 | 5 | | 46 | 19 | | 47 | 3 | | 48 | 3 | | 49 | 1 |
| |
| 58.59% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.3696969696969697 | | totalSentences | 165 | | uniqueOpeners | 61 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 10 | | totalSentences | 123 | | matches | | 0 | "Then the cane—ivory—handled, carved with" | | 1 | "Finally, his face: one amber" | | 2 | "Only then did she notice" | | 3 | "Too fancy for takeaway flyers." | | 4 | "Instead, she pulled the last" | | 5 | "Instead, he pulled something else" | | 6 | "Literally and otherwise." | | 7 | "Only Lucien could make it" | | 8 | "Of course he did." | | 9 | "Then he was gone." |
| | ratio | 0.081 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 123 | | matches | | 0 | "It hadn't been her idea—Eva's" | | 1 | "She registered the tailored charcoal" | | 2 | "he said, stepping over the" | | 3 | "His gaze flicked to the" | | 4 | "She set the hammer down" | | 5 | "She'd spent two years mastering" | | 6 | "His fingers drummed against the" | | 7 | "She chose to ignore that." | | 8 | "He tapped the envelope" | | 9 | "He held it out, but" | | 10 | "She yanked the photograph free." | | 11 | "Her stomach dropped." | | 12 | "He stepped closer" | | 13 | "She didn't flinch at the" | | 14 | "He tossed it onto Eva's" | | 15 | "It unfolded in the air," | | 16 | "Her pulse accelerated." | | 17 | "She should have known it" | | 18 | "Her voice shook" | | 19 | "Her oldest friend." |
| | ratio | 0.22 | |
| 57.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 99 | | totalSentences | 123 | | matches | | 0 | "The lock clicked." | | 1 | "A familiar rhythm, precise as" | | 2 | "Rory's fingers tightened around the" | | 3 | "It hadn't been her idea—Eva's" | | 4 | "The door swung inward without" | | 5 | "She registered the tailored charcoal" | | 6 | "he said, stepping over the" | | 7 | "His gaze flicked to the" | | 8 | "Rory didn't answer." | | 9 | "She set the hammer down" | | 10 | "Eva's tabby, Ptolemy, chose that" | | 11 | "The cat gave a low," | | 12 | "Lucien's cane made contact with" | | 13 | "The old crescent scar had" | | 14 | "The question came out clearer" | | 15 | "She'd spent two years mastering" | | 16 | "The charcoal suit settled onto" | | 17 | "His fingers drummed against the" | | 18 | "Rory wiped concrete dust from" | | 19 | "Cream paper, embossed in silver." |
| | ratio | 0.805 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 123 | | matches | (empty) | | ratio | 0 | |
| 74.83% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 4 | | matches | | 0 | "Finally, his face: one amber eye locking onto hers like a beacon, the other a black void that seemed to pull at the corners of her vision." | | 1 | "The charcoal suit settled onto Eva's moth-eaten sofa with the same casual disregard as if he owned the flat, which, knowing him, he probably did in some oblique…" | | 2 | "A man lay sprawled across a cobblestone alley, his face frozen in an expression Rory recognised immediately: the slack-jawed surprise of a person who'd expected…" | | 3 | "Sweet-faced, always humming off-key, the guy who'd once helped her carry a mattress up three flights of stairs in Camden." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | 0 | "manual Eva swore (swear)" |
| | dialogueSentences | 39 | | tagDensity | 0.103 | | leniency | 0.205 | | rawRatio | 0.25 | | effectiveRatio | 0.051 | |