| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 34 | | tagDensity | 0.412 | | leniency | 0.824 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.39% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1711 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "very" | | 1 | "really" | | 2 | "softly" | | 3 | "gently" |
| |
| 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) | |
| 70.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1711 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "warmth" | | 1 | "flicker" | | 2 | "pulse" | | 3 | "weight" | | 4 | "footsteps" | | 5 | "silence" | | 6 | "traced" | | 7 | "could feel" |
| |
| 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 | 1 | | narrationSentences | 94 | | matches | | |
| 82.07% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 1 | | narrationSentences | 94 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 115 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 109 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 20 | | totalWords | 1724 | | ratio | 0.012 | | matches | | 0 | "Aurora, you deserve someone whose world is not a danger to you." | | 1 | "This is not a life for you." | | 2 | "knocked" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 11 | | wordCount | 1312 | | uniqueNames | 7 | | maxNameDensity | 0.38 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 5 | | Moreau | 1 | | Tube | 1 | | French | 1 | | Aurora | 1 | | Carter | 1 | | Eva | 1 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Tube" | | 3 | "Aurora" | | 4 | "Carter" | | 5 | "Eva" |
| | places | (empty) | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 50 | | glossingSentenceCount | 1 | | matches | | 0 | "not quite a laugh and not quite a sob" | | 1 | "not quite a sob" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.58 | | wordCount | 1724 | | matches | | 0 | "not the slicked-back severity he wore in public, but fallen across his forehead in a way" |
| |
| 50.72% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 4 | | totalSentences | 115 | | matches | | 0 | "remembered that smell" | | 1 | "hated that she hated that her" | | 2 | "hated that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 46 | | mean | 37.48 | | std | 35.64 | | cv | 0.951 | | sampleLengths | | 0 | 7 | | 1 | 121 | | 2 | 11 | | 3 | 90 | | 4 | 8 | | 5 | 34 | | 6 | 3 | | 7 | 83 | | 8 | 25 | | 9 | 59 | | 10 | 4 | | 11 | 3 | | 12 | 47 | | 13 | 77 | | 14 | 9 | | 15 | 7 | | 16 | 117 | | 17 | 99 | | 18 | 86 | | 19 | 13 | | 20 | 20 | | 21 | 34 | | 22 | 1 | | 23 | 11 | | 24 | 71 | | 25 | 3 | | 26 | 94 | | 27 | 9 | | 28 | 54 | | 29 | 7 | | 30 | 2 | | 31 | 4 | | 32 | 3 | | 33 | 98 | | 34 | 16 | | 35 | 6 | | 36 | 55 | | 37 | 60 | | 38 | 30 | | 39 | 23 | | 40 | 64 | | 41 | 3 | | 42 | 58 | | 43 | 20 | | 44 | 12 | | 45 | 63 |
| |
| 97.80% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 94 | | matches | | 0 | "been controlled" | | 1 | "were made" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 215 | | matches | | 0 | "was wearing" | | 1 | "was looking" | | 2 | "was choosing" | | 3 | "was dripping" | | 4 | "was standing" | | 5 | "was looking" | | 6 | "was still falling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 115 | | ratio | 0.061 | | matches | | 0 | "His hair was loose — not the slicked-back severity he wore in public, but fallen across his forehead in a way that made him look younger, less like the man who brokered secrets in the dark and more like the man who had once, eight months ago, stood too close to her in the rain and not kissed her." | | 1 | "She had spent three months learning it, the way you learn a person when you are half in love with them and half terrified of what that means — the exact notes of his cologne, the way he folded his shirts, the soft click of his cane on the floorboards when he walked her to the door at the end of a long evening and did not ask her to stay." | | 2 | "She heard them, and she heard what was underneath them — all the things she had not said in eight months, all the messages she had drafted and deleted, all the nights she had lain awake in the flat above Silas' bar and stared at the ceiling and told herself that he had made the right choice, that she was better off, that the way he had looked at her that last night — the way his hand had come up to her face and then stopped, his fingers a breath from her cheek, his eyes saying everything his mouth refused to — was not a wound she was allowed to name." | | 3 | "He crossed the distance between them in two steps, and his hand came up to her face — the same hand, the same almost-touch, the same breath of space between his fingertips and her skin that he had left eight months ago on the doorstep of Eva's flat after a case that had nearly killed them both." | | 4 | "Not a smile — Lucien did not smile like other men." | | 5 | "The two eyes — amber and black — regarded her with an honesty she had not earned and he had not offered, until now." | | 6 | "And he took her hand — gently, as though she were made of something precious and breakable, though she had told him a hundred times that she was neither — and led her deeper into the flat, away from the door, away from the cold, into the warm lamplight and the smell of sandalwood and the long, slow beginning of whatever came next." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 814 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 20 | | adverbRatio | 0.02457002457002457 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0036855036855036856 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 115 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 115 | | mean | 14.99 | | std | 18.73 | | cv | 1.249 | | sampleLengths | | 0 | 7 | | 1 | 5 | | 2 | 32 | | 3 | 25 | | 4 | 59 | | 5 | 6 | | 6 | 5 | | 7 | 5 | | 8 | 26 | | 9 | 5 | | 10 | 5 | | 11 | 49 | | 12 | 4 | | 13 | 4 | | 14 | 3 | | 15 | 4 | | 16 | 4 | | 17 | 23 | | 18 | 3 | | 19 | 8 | | 20 | 4 | | 21 | 71 | | 22 | 6 | | 23 | 19 | | 24 | 4 | | 25 | 5 | | 26 | 5 | | 27 | 30 | | 28 | 12 | | 29 | 3 | | 30 | 4 | | 31 | 3 | | 32 | 23 | | 33 | 24 | | 34 | 5 | | 35 | 14 | | 36 | 58 | | 37 | 5 | | 38 | 4 | | 39 | 7 | | 40 | 5 | | 41 | 112 | | 42 | 10 | | 43 | 89 | | 44 | 4 | | 45 | 30 | | 46 | 14 | | 47 | 5 | | 48 | 33 | | 49 | 7 |
| |
| 32.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 20 | | diversityRatio | 0.25217391304347825 | | totalSentences | 115 | | uniqueOpeners | 29 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 84 | | matches | | 0 | "Just a widening of space," | | 1 | "Somewhere below, a car hissed" | | 2 | "Just the lightest possible pressure," | | 3 | "Somewhere in the city, a" | | 4 | "Then her closed eyes." | | 5 | "Then the corner of her" |
| | ratio | 0.071 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 51 | | totalSentences | 84 | | matches | | 0 | "He was wearing no jacket." | | 1 | "He wore a white shirt," | | 2 | "His hair was loose —" | | 3 | "He didn't say anything at" | | 4 | "He just looked at her." | | 5 | "She'd written it on the" | | 6 | "He stepped back." | | 7 | "She stepped in." | | 8 | "She remembered that smell." | | 9 | "She had spent three months" | | 10 | "He closed the door behind" | | 11 | "She heard the three locks" | | 12 | "His voice was the same." | | 13 | "He set his glass down" | | 14 | "She turned on him then," | | 15 | "He had the most beautiful" | | 16 | "She heard them, and she" | | 17 | "she said, quieter now" | | 18 | "He stood with his weight" | | 19 | "He had been drinking alone." |
| | ratio | 0.607 | |
| 25.48% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 84 | | matches | | 0 | "The door opened, and the" | | 1 | "He was wearing no jacket." | | 2 | "That was the first thing" | | 3 | "He wore a white shirt," | | 4 | "His hair was loose —" | | 5 | "He didn't say anything at" | | 6 | "He just looked at her." | | 7 | "Rory had prepared a speech." | | 8 | "She'd written it on the" | | 9 | "The speech had been clever." | | 10 | "The speech had been controlled." | | 11 | "The speech had not accounted" | | 12 | "He stepped back." | | 13 | "She stepped in." | | 14 | "The flat smelled of sandalwood" | | 15 | "She remembered that smell." | | 16 | "She had spent three months" | | 17 | "He closed the door behind" | | 18 | "She heard the three locks" | | 19 | "His voice was the same." |
| | ratio | 0.869 | |
| 59.52% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 84 | | matches | | 0 | "If anything, it had grown" |
| | ratio | 0.012 | |
| 16.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 6 | | matches | | 0 | "His hair was loose — not the slicked-back severity he wore in public, but fallen across his forehead in a way that made him look younger, less like the man who …" | | 1 | "The speech had not accounted for the way his collarbones looked above that open collar, or the way the hallway light caught one amber eye and one black, or the …" | | 2 | "The low, unhurried French warmth of it, the slight smile he put into questions, as though everything were a small private joke the rest of the world wasn't priv…" | | 3 | "He had been drinking alone, and he had answered the door without it, which meant he had heard her footsteps on the stairs and known who it was before he turned …" | | 4 | "He crossed the distance between them in two steps, and his hand came up to her face — the same hand, the same almost-touch, the same breath of space between his…" | | 5 | "And he took her hand — gently, as though she were made of something precious and breakable, though she had told him a hundred times that she was neither — and l…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 91.18% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 2 | | fancyTags | | 0 | "she whispered (whisper)" | | 1 | "he murmured (murmur)" |
| | dialogueSentences | 34 | | tagDensity | 0.353 | | leniency | 0.706 | | rawRatio | 0.167 | | effectiveRatio | 0.118 | |