| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 1 | | adverbTags | | 0 | "Rory moved back [back]" |
| | dialogueSentences | 44 | | tagDensity | 0.295 | | leniency | 0.591 | | rawRatio | 0.077 | | effectiveRatio | 0.045 | |
| 79.94% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 997 | | totalAiIsmAdverbs | 4 | | 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) | |
| 100.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 997 | | totalAiIsms | 0 | | found | (empty) | | highlights | (empty) | |
| 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 | 53 | | matches | (empty) | |
| 88.95% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 53 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 84 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1007 | | ratio | 0 | | matches | (empty) | |
| 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 | 24 | | wordCount | 750 | | uniqueNames | 7 | | maxNameDensity | 0.93 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Ptolemy | 3 | | Rory | 7 | | Eva | 4 | | Moreau | 2 | | Lucien | 6 | | Brick | 1 | | Lane | 1 |
| | persons | | 0 | "Ptolemy" | | 1 | "Rory" | | 2 | "Eva" | | 3 | "Moreau" | | 4 | "Lucien" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 38 | | glossingSentenceCount | 4 | | matches | | 0 | "not quite an apology, not quite a concession, something in between" | | 1 | "not quite a concession, something in between" | | 2 | "quite smoke, that she'd never been able to name and had spent more time thinking about than she'd ever admit" | | 3 | "felt like enough distance" | | 4 | "not quite" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.993 | | wordCount | 1007 | | matches | | 0 | "not this specific scenario, but the general shape of it, the possibility of him turning up s" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 84 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 53 | | mean | 19 | | std | 19.22 | | cv | 1.012 | | sampleLengths | | 0 | 39 | | 1 | 5 | | 2 | 52 | | 3 | 42 | | 4 | 6 | | 5 | 23 | | 6 | 6 | | 7 | 9 | | 8 | 72 | | 9 | 1 | | 10 | 16 | | 11 | 1 | | 12 | 5 | | 13 | 13 | | 14 | 4 | | 15 | 4 | | 16 | 43 | | 17 | 4 | | 18 | 41 | | 19 | 3 | | 20 | 43 | | 21 | 16 | | 22 | 27 | | 23 | 37 | | 24 | 5 | | 25 | 7 | | 26 | 8 | | 27 | 32 | | 28 | 8 | | 29 | 7 | | 30 | 54 | | 31 | 17 | | 32 | 3 | | 33 | 1 | | 34 | 60 | | 35 | 8 | | 36 | 3 | | 37 | 27 | | 38 | 1 | | 39 | 4 | | 40 | 65 | | 41 | 22 | | 42 | 5 | | 43 | 5 | | 44 | 3 | | 45 | 10 | | 46 | 35 | | 47 | 28 | | 48 | 11 | | 49 | 3 |
| |
| 98.64% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 53 | | matches | | |
| 94.18% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 126 | | matches | | 0 | "was watching" | | 1 | "was shouting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 84 | | ratio | 0.107 | | matches | | 0 | "Eva was out — some errand she'd been cagey about, which meant Rory was alone with her leftover rice and a stack of Eva's research notes she wasn't supposed to be reading." | | 1 | "Three months since she'd last seen him — three months since she'd told him, in a car outside a burning warehouse, that she needed him to leave her alone — and he looked exactly as he always had." | | 2 | "He held her gaze for a moment, that amber eye catching the light from the hallway bulb, and then he tilted his head very slightly in that particular way he had — not quite an apology, not quite a concession, something in between." | | 3 | "She'd rehearsed this, actually — not this specific scenario, but the general shape of it, the possibility of him turning up somewhere and what she would say." | | 4 | "He moved past her and she caught it — just briefly — the smell of him, cedar and something underneath it that wasn't quite smoke, that she'd never been able to name and had spent more time thinking about than she'd ever admit." | | 5 | "\"Nothing's happened.\" He settled into the armchair — Eva's armchair, the one with the broken spring that everyone else complained about, though it didn't seem to bother him." | | 6 | "Rory leant against the counter and looked at him — at the careful line of his posture, the way his hands rested on the cane, relaxed but not quite." | | 7 | "That was the thing about Lucien — he never raised his voice, never pushed, which somehow made it harder to push back." | | 8 | "She didn't know what she meant to do — move to the sofa, move to the window — she just needed to not be standing still." |
| |
| 95.98% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 740 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.0445945945945946 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.010810810810810811 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 84 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 84 | | mean | 11.99 | | std | 10.92 | | cv | 0.911 | | sampleLengths | | 0 | 9 | | 1 | 30 | | 2 | 5 | | 3 | 32 | | 4 | 20 | | 5 | 27 | | 6 | 7 | | 7 | 8 | | 8 | 6 | | 9 | 23 | | 10 | 6 | | 11 | 9 | | 12 | 4 | | 13 | 5 | | 14 | 38 | | 15 | 3 | | 16 | 22 | | 17 | 1 | | 18 | 13 | | 19 | 3 | | 20 | 1 | | 21 | 5 | | 22 | 9 | | 23 | 4 | | 24 | 4 | | 25 | 4 | | 26 | 43 | | 27 | 4 | | 28 | 7 | | 29 | 27 | | 30 | 7 | | 31 | 3 | | 32 | 43 | | 33 | 15 | | 34 | 1 | | 35 | 25 | | 36 | 2 | | 37 | 28 | | 38 | 7 | | 39 | 2 | | 40 | 5 | | 41 | 7 | | 42 | 8 | | 43 | 6 | | 44 | 26 | | 45 | 8 | | 46 | 7 | | 47 | 15 | | 48 | 10 | | 49 | 29 |
| |
| 61.11% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.4166666666666667 | | totalSentences | 84 | | uniqueOpeners | 35 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 47 | | matches | (empty) | | ratio | 0 | |
| 7.23% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 47 | | matches | | 0 | "She set down her fork." | | 1 | "She crossed the flat in" | | 2 | "His ivory-handled cane rested against" | | 3 | "His suit was the colour" | | 4 | "She stood there for a" | | 5 | "She turned all three locks" | | 6 | "He looked the same." | | 7 | "He glanced past her at" | | 8 | "He held her gaze for" | | 9 | "She'd rehearsed this, actually —" | | 10 | "She'd been very clear in" | | 11 | "She stepped aside." | | 12 | "He moved past her and" | | 13 | "He settled into the armchair" | | 14 | "He set his cane across" | | 15 | "He said it without heat" | | 16 | "She looked at the ceiling" | | 17 | "He leant forward, elbows on" | | 18 | "She pushed off the counter" | | 19 | "She didn't know what she" |
| | ratio | 0.532 | |
| 13.19% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 42 | | totalSentences | 47 | | matches | | 0 | "The third knock was louder" | | 1 | "Rory had ignored the first," | | 2 | "She set down her fork." | | 3 | "Eva was out — some" | | 4 | "She crossed the flat in" | | 5 | "Lucien Moreau stood in the" | | 6 | "His ivory-handled cane rested against" | | 7 | "His suit was the colour" | | 8 | "Rory stepped back from the" | | 9 | "She stood there for a" | | 10 | "She turned all three locks" | | 11 | "He looked the same." | | 12 | "That was the irritating thing." | | 13 | "Composure like armour." | | 14 | "That one amber eye and" | | 15 | "He glanced past her at" | | 16 | "Rory leant against the doorframe" | | 17 | "He held her gaze for" | | 18 | "Every sensible instinct she had" | | 19 | "She'd rehearsed this, actually —" |
| | ratio | 0.894 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 47 | | matches | (empty) | | ratio | 0 | |
| 35.71% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 3 | | matches | | 0 | "Lucien Moreau stood in the hallway, examining the ceiling with the patient disinterest of a man who had all the time in the world and knew it." | | 1 | "He moved past her and she caught it — just briefly — the smell of him, cedar and something underneath it that wasn't quite smoke, that she'd never been able to …" | | 2 | "She stood in the middle of the flat with Eva's research notes on every surface around her and three deadbolts on the door she'd just unlocked and looked at Luci…" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 44 | | tagDensity | 0.114 | | leniency | 0.227 | | rawRatio | 0 | | effectiveRatio | 0 | |