| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said again [again]" |
| | dialogueSentences | 42 | | tagDensity | 0.381 | | leniency | 0.762 | | rawRatio | 0.063 | | effectiveRatio | 0.048 | |
| 89.97% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1995 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "carefully" | | 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) | |
| 69.92% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1995 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "charm" | | 1 | "pulsed" | | 2 | "traced" | | 3 | "flicker" | | 4 | "silence" | | 5 | "resolve" | | 6 | "absolutely" | | 7 | "footsteps" | | 8 | "tracing" | | 9 | "could feel" | | 10 | "pulse" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 115 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 115 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "managed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 140 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2015 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 30 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 1669 | | uniqueNames | 16 | | maxNameDensity | 0.42 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 7 | | Moreau | 3 | | Ptolemy | 3 | | Eva | 3 | | Post-it | 1 | | Golden | 2 | | Empress | 2 | | Avaros | 1 | | Lucien | 6 | | Shoreditch | 1 | | Silas | 1 | | Veil | 1 | | Market | 1 | | Bangla | 1 | | London | 2 | | Cardiff | 1 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Eva" | | 4 | "Post-it" | | 5 | "Lucien" | | 6 | "Silas" |
| | places | | 0 | "Golden" | | 1 | "London" | | 2 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 56.25% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 80 | | glossingSentenceCount | 3 | | matches | | 0 | "smelled like turmeric and damp carpet" | | 1 | "felt like someone was pressing a thumb" | | 2 | "felt like laying down a weapon" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.496 | | wordCount | 2015 | | matches | | 0 | "Not the quick analytical scan he'd done at the door, but the other kind of looking" |
| |
| 95.24% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 140 | | matches | | 0 | "noticed that the" | | 1 | "screaming that this" | | 2 | "terrified that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 64 | | mean | 31.48 | | std | 29.32 | | cv | 0.931 | | sampleLengths | | 0 | 49 | | 1 | 6 | | 2 | 78 | | 3 | 19 | | 4 | 3 | | 5 | 37 | | 6 | 60 | | 7 | 6 | | 8 | 22 | | 9 | 82 | | 10 | 12 | | 11 | 26 | | 12 | 3 | | 13 | 2 | | 14 | 16 | | 15 | 63 | | 16 | 6 | | 17 | 1 | | 18 | 27 | | 19 | 75 | | 20 | 3 | | 21 | 76 | | 22 | 15 | | 23 | 63 | | 24 | 4 | | 25 | 33 | | 26 | 6 | | 27 | 83 | | 28 | 5 | | 29 | 6 | | 30 | 85 | | 31 | 6 | | 32 | 21 | | 33 | 22 | | 34 | 74 | | 35 | 6 | | 36 | 36 | | 37 | 23 | | 38 | 82 | | 39 | 12 | | 40 | 2 | | 41 | 12 | | 42 | 87 | | 43 | 11 | | 44 | 14 | | 45 | 3 | | 46 | 18 | | 47 | 69 | | 48 | 5 | | 49 | 56 |
| |
| 99.16% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 115 | | matches | | 0 | "was slicked" | | 1 | "was raised" |
| |
| 99.37% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 265 | | matches | | 0 | "was already talking" | | 1 | "was adding" | | 2 | "was pressing" | | 3 | "was committing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 140 | | ratio | 0.114 | | matches | | 0 | "Four months, two weeks, and — she refused to count the days." | | 1 | "His mismatched eyes — one amber, one black — tracked across her face with the careful attention of someone reading a contract for hidden clauses." | | 2 | "The flat was its usual catastrophe — every surface buried under Eva's research, the scrolls and annotated maps and Post-it notes in six colors that constituted her best friend's filing system." | | 3 | "\"You look well,\" Lucien said, and something about the way he said it — quiet, stripped of his usual performative charm — made her jaw tighten." | | 4 | "That black eye of his — his father's eye, the one from Avaros — always seemed to absorb light rather than reflect it, and she'd once made the mistake of telling him it was beautiful." | | 5 | "He entered the flat the way he entered every room — with precise economy of movement, cataloguing exits and angles in a single sweep." | | 6 | "Her hair — black, straight, still damp from the rain she'd walked through on her way back from a drop-off in Shoreditch — left wet marks on the sleeves of her jacket." | | 7 | "Not the quick analytical scan he'd done at the door, but the other kind of looking — the kind that had gotten them into trouble in the first place." | | 8 | "She'd never seen Lucien Moreau take a breath before speaking — he was always fluid, always ready, always three moves ahead in four languages." | | 9 | "That was the thing about Lucien — for all his underworld dealings, for all the demon blood in his veins, he had never once pushed past a boundary she set." | | 10 | "And there it was — the crack." | | 11 | "She lowered her hand and he was there, a foot away, near enough that she could see the fine weave of his charcoal lapel and catch the scent she'd tried so hard to forget — sandalwood and old paper and something underneath that was purely, unfairly him." | | 12 | "She remembered every reason this was a terrible idea — the underworld, the danger, the fundamental impossibility of a half-demon information broker and a delivery girl from Cardiff who hadn't even managed to finish her law degree." | | 13 | "His fingers curled against her skin — tentative in a way she'd never seen from him, the pad of his thumb tracing the line of her cheekbone like he was committing it to memory, as if he hadn't already mapped every angle of her face in a dozen stolen moments across London's hidden places." | | 14 | "The beat of it steadied something in her, proof that underneath the suits and the composure and the demon lineage, his blood moved the same as hers — fast and reckless and afraid." | | 15 | "The fracture in his composure widened into something real — a smile, small and startled, that reached both eyes, the amber and the black alike." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1655 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 53 | | adverbRatio | 0.03202416918429003 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.0072507552870090634 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 140 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 140 | | mean | 14.39 | | std | 12.9 | | cv | 0.897 | | sampleLengths | | 0 | 26 | | 1 | 23 | | 2 | 6 | | 3 | 12 | | 4 | 38 | | 5 | 10 | | 6 | 18 | | 7 | 7 | | 8 | 12 | | 9 | 3 | | 10 | 25 | | 11 | 6 | | 12 | 4 | | 13 | 2 | | 14 | 13 | | 15 | 10 | | 16 | 12 | | 17 | 25 | | 18 | 6 | | 19 | 12 | | 20 | 10 | | 21 | 21 | | 22 | 31 | | 23 | 9 | | 24 | 21 | | 25 | 5 | | 26 | 7 | | 27 | 26 | | 28 | 3 | | 29 | 2 | | 30 | 16 | | 31 | 5 | | 32 | 31 | | 33 | 19 | | 34 | 4 | | 35 | 4 | | 36 | 6 | | 37 | 1 | | 38 | 27 | | 39 | 4 | | 40 | 3 | | 41 | 35 | | 42 | 6 | | 43 | 15 | | 44 | 12 | | 45 | 3 | | 46 | 24 | | 47 | 22 | | 48 | 13 | | 49 | 3 |
| |
| 39.29% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.29285714285714287 | | totalSentences | 140 | | uniqueOpeners | 41 | |
| 98.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 102 | | matches | | 0 | "Just a man standing in" | | 1 | "Then she turned her cheek" | | 2 | "Just a fact, laid bare." |
| | ratio | 0.029 | |
| 0.39% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 56 | | totalSentences | 102 | | matches | | 0 | "She was already talking when" | | 1 | "He looked exactly the way" | | 2 | "His platinum hair was slicked" | | 3 | "She hadn't seen him in" | | 4 | "His mismatched eyes — one" | | 5 | "she said again, and meant" | | 6 | "She gripped the edge of" | | 7 | "She should close the door." | | 8 | "She knew she should close" | | 9 | "He absorbed that without flinching." | | 10 | "She'd always hated that about" | | 11 | "It made her want to" | | 12 | "She'd found it once." | | 13 | "She wished she hadn't." | | 14 | "He stared back." | | 15 | "She stepped aside." | | 16 | "He entered the flat the" | | 17 | "He set his cane against" | | 18 | "She noticed that the way" | | 19 | "She didn't offer him tea." |
| | ratio | 0.549 | |
| 43.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 85 | | totalSentences | 102 | | matches | | 0 | "The third deadbolt stuck the" | | 1 | "She was already talking when" | | 2 | "Lucien Moreau stood on the" | | 3 | "He looked exactly the way" | | 4 | "The charcoal suit was immaculate," | | 5 | "His platinum hair was slicked" | | 6 | "The ivory handle of his" | | 7 | "She hadn't seen him in" | | 8 | "His mismatched eyes — one" | | 9 | "The corner of his mouth" | | 10 | "she said again, and meant" | | 11 | "She gripped the edge of" | | 12 | "The crescent scar on her" | | 13 | "The words settled between them" | | 14 | "Rory felt the ripple of" | | 15 | "The flat was its usual" | | 16 | "A mug of cold tea" | | 17 | "Rory's delivery bag from the" | | 18 | "She should close the door." | | 19 | "She knew she should close" |
| | ratio | 0.833 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 102 | | matches | (empty) | | ratio | 0 | |
| 28.06% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 56 | | technicalSentenceCount | 9 | | matches | | 0 | "The charcoal suit was immaculate, cut close through the shoulders and tapered at the waist as though he'd stepped out of some magazine editorial rather than cli…" | | 1 | "The flat was its usual catastrophe — every surface buried under Eva's research, the scrolls and annotated maps and Post-it notes in six colors that constituted …" | | 2 | "Rory's delivery bag from the Golden Empress was slung over the back of the one chair that wasn't occupied by books." | | 3 | "Not the quick analytical scan he'd done at the door, but the other kind of looking — the kind that had gotten them into trouble in the first place." | | 4 | "The kind that had happened in the back room of the Veil Market three days after they'd met, when he'd traced the scar on her wrist with his thumb and asked her …" | | 5 | "His composure broke, just a fracture, but enough for her to see what was underneath: not the fixer, not the broker, not the half-demon who moved through London'…" | | 6 | "Just a man standing in a cluttered flat full of someone else's books, terrified that the only person who mattered was about to tell him to leave." | | 7 | "She remembered every reason this was a terrible idea — the underworld, the danger, the fundamental impossibility of a half-demon information broker and a delive…" | | 8 | "His fingers curled against her skin — tentative in a way she'd never seen from him, the pad of his thumb tracing the line of her cheekbone like he was committin…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 78.57% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 3 | | fancyTags | | 0 | "she whispered (whisper)" | | 1 | "he admitted (admit)" | | 2 | "he repeated (repeat)" |
| | dialogueSentences | 42 | | tagDensity | 0.31 | | leniency | 0.619 | | rawRatio | 0.231 | | effectiveRatio | 0.143 | |