| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 36 | | tagDensity | 0.417 | | leniency | 0.833 | | rawRatio | 0.067 | | effectiveRatio | 0.056 | |
| 86.78% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1135 | | 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) | |
| 69.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1135 | | totalAiIsms | 7 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "the last thing" | | count | 1 |
| | 4 | | | 5 | |
| | highlights | | 0 | "silence" | | 1 | "efficient" | | 2 | "traced" | | 3 | "the last thing" | | 4 | "determined" | | 5 | "pulse" |
| |
| 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 | 0 | | narrationSentences | 45 | | matches | (empty) | |
| 47.62% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 45 | | filterMatches | | | hedgeMatches | | 0 | "managed to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 65 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 73 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1146 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 11 | | wordCount | 696 | | uniqueNames | 7 | | maxNameDensity | 0.57 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 4 | | Moreau | 1 | | Eva | 2 | | Ptolemy | 1 | | Southwark | 1 | | London | 1 | | Started | 1 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Ptolemy" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 29 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 25.48% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.745 | | wordCount | 1146 | | matches | | 0 | "not the practiced sympathy he wore for clients, not the smooth amusement, but something raw" | | 1 | "not the smooth amusement, but something raw" |
| |
| 64.10% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 65 | | matches | | 0 | "chose that moment" | | 1 | "noticing that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 31.83 | | std | 28.41 | | cv | 0.893 | | sampleLengths | | 0 | 30 | | 1 | 89 | | 2 | 3 | | 3 | 13 | | 4 | 61 | | 5 | 4 | | 6 | 5 | | 7 | 62 | | 8 | 6 | | 9 | 2 | | 10 | 7 | | 11 | 57 | | 12 | 90 | | 13 | 3 | | 14 | 50 | | 15 | 25 | | 16 | 5 | | 17 | 39 | | 18 | 36 | | 19 | 5 | | 20 | 1 | | 21 | 62 | | 22 | 56 | | 23 | 3 | | 24 | 72 | | 25 | 12 | | 26 | 93 | | 27 | 26 | | 28 | 50 | | 29 | 51 | | 30 | 48 | | 31 | 4 | | 32 | 1 | | 33 | 7 | | 34 | 28 | | 35 | 40 |
| |
| 97.47% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 45 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 122 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 65 | | ratio | 0.138 | | matches | | 0 | "A single strand of platinum hair had come loose from its slick discipline and curved against his temple, and for a moment that was all she could look at — that one undisciplined thing about a man who allowed himself nothing of the kind." | | 1 | "\"You answered to your own name without thinking. That's careless.\" His mismatched eyes moved past her, into the flat — over the tide of books and the unspooled scrolls, the lamp throwing yellow over Eva's chaos." | | 2 | "Lucien's hand twitched on the cane — an old instinct, to catch her — and stilled." | | 3 | "There were a great many reasons to say no, and most of them lived in the memory of a rooftop in Southwark and the things he'd said there — and the things he hadn't, which had been worse." | | 4 | "She heard him move — the soft displacement of a man crossing a room he'd already mapped — and when he spoke he was closer than she'd braced for." | | 5 | "The crescent scar on her left wrist caught the lamplight as she gripped the counter edge; she felt his gaze land on it, the way it always had, that small flaw he'd once traced with his thumb as though it were the most interesting thing in London." | | 6 | "\"I bought you time,\" he said, and there it was — the flare of something under the polish, amber eye and black, both of them burning." | | 7 | "Something crossed his face that she'd never seen on it — not the practiced sympathy he wore for clients, not the smooth amusement, but something raw and unhandsome and entirely his." | | 8 | "And against every cool-headed, out-of-the-box, sensible thing she had ever prided herself on, Rory found her hand closing over his wrist — over the smooth leather, over the steady pulse beneath it — and she did not pull it away." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 687 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.027656477438136828 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005822416302765648 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 65 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 65 | | mean | 17.63 | | std | 16.47 | | cv | 0.934 | | sampleLengths | | 0 | 30 | | 1 | 40 | | 2 | 5 | | 3 | 44 | | 4 | 3 | | 5 | 7 | | 6 | 6 | | 7 | 36 | | 8 | 25 | | 9 | 4 | | 10 | 3 | | 11 | 2 | | 12 | 18 | | 13 | 16 | | 14 | 6 | | 15 | 22 | | 16 | 6 | | 17 | 2 | | 18 | 7 | | 19 | 19 | | 20 | 38 | | 21 | 5 | | 22 | 38 | | 23 | 47 | | 24 | 3 | | 25 | 36 | | 26 | 7 | | 27 | 7 | | 28 | 17 | | 29 | 8 | | 30 | 5 | | 31 | 25 | | 32 | 14 | | 33 | 7 | | 34 | 29 | | 35 | 5 | | 36 | 1 | | 37 | 8 | | 38 | 35 | | 39 | 19 | | 40 | 9 | | 41 | 47 | | 42 | 3 | | 43 | 72 | | 44 | 3 | | 45 | 4 | | 46 | 5 | | 47 | 26 | | 48 | 67 | | 49 | 5 |
| |
| 65.13% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4461538461538462 | | totalSentences | 65 | | uniqueOpeners | 29 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 37 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 37 | | matches | | 0 | "She didn't open the door" | | 1 | "His mismatched eyes moved past" | | 2 | "She saw him decide not" | | 3 | "He inclined his head, a" | | 4 | "She should have said no." | | 5 | "She stepped back." | | 6 | "He came in the way" | | 7 | "He set his cane against" | | 8 | "He did not take off" | | 9 | "she said, because she needed" | | 10 | "She filled the kettle anyway," | | 11 | "She heard him move —" | | 12 | "he said quietly" | | 13 | "She set the kettle down" | | 14 | "he went on, relentless and" | | 15 | "She turned around." | | 16 | "She hadn't meant to." | | 17 | "he said, and there it" | | 18 | "He took a step closer." | | 19 | "She didn't step back, and" |
| | ratio | 0.568 | |
| 14.05% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 33 | | totalSentences | 37 | | matches | | 0 | "The three deadbolts came undone" | | 1 | "Lucien Moreau filled the narrow" | | 2 | "Rain had darkened his shoulders." | | 3 | "A single strand of platinum" | | 4 | "She didn't open the door" | | 5 | "His mismatched eyes moved past" | | 6 | "Ptolemy chose that moment to" | | 7 | "Lucien's hand twitched on the" | | 8 | "She saw him decide not" | | 9 | "That, more than anything, told" | | 10 | "He inclined his head, a" | | 11 | "She should have said no." | | 12 | "She stepped back." | | 13 | "He came in the way" | | 14 | "He set his cane against" | | 15 | "He did not take off" | | 16 | "she said, because she needed" | | 17 | "She filled the kettle anyway," | | 18 | "The silence behind her had" | | 19 | "She heard him move —" |
| | ratio | 0.892 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 37 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 15 | | technicalSentenceCount | 4 | | matches | | 0 | "Lucien Moreau filled the narrow landing as though it had been built around him, one gloved hand resting on the ivory head of his cane, the charcoal of his suit …" | | 1 | "A single strand of platinum hair had come loose from its slick discipline and curved against his temple, and for a moment that was all she could look at — that …" | | 2 | "He came in the way he did everything, without hurry and without wasted motion, easing the door shut behind him and turning the topmost deadbolt with a click tha…" | | 3 | "The crescent scar on her left wrist caught the lamplight as she gripped the counter edge; she felt his gaze land on it, the way it always had, that small flaw h…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 94.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 2 | | fancyTags | | 0 | "he agreed (agree)" | | 1 | "he murmured (murmur)" |
| | dialogueSentences | 36 | | tagDensity | 0.278 | | leniency | 0.556 | | rawRatio | 0.2 | | effectiveRatio | 0.111 | |