| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said quietly [quietly]" |
| | dialogueSentences | 43 | | tagDensity | 0.465 | | leniency | 0.93 | | rawRatio | 0.05 | | effectiveRatio | 0.047 | |
| 72.29% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1624 | | totalAiIsmAdverbs | 9 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | adverb | "deliberately" | | count | 1 |
|
| | highlights | | 0 | "carefully" | | 1 | "slightly" | | 2 | "very" | | 3 | "quickly" | | 4 | "deliberately" |
| |
| 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) | |
| 81.53% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1624 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "profound" | | 1 | "silence" | | 2 | "tension" | | 3 | "resolved" |
| |
| 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 | 72 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 72 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 95 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 100 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1635 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 28 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 1341 | | uniqueNames | 13 | | maxNameDensity | 0.6 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Eva" | | discoveredNames | | Rory | 5 | | Eva | 6 | | Tesco | 1 | | Moreau | 3 | | Marseille | 1 | | London | 2 | | Lucien | 8 | | Brick | 1 | | Lane | 1 | | Started | 1 | | October | 1 | | Cardiff | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Ptolemy" |
| | places | | 0 | "Marseille" | | 1 | "London" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.612 | | wordCount | 1635 | | matches | | 0 | "not his silences or his careful distances but the fact" |
| |
| 26.32% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 4 | | totalSentences | 95 | | matches | | 0 | "noticed that, the" | | 1 | "register that he'd" | | 2 | "unguarded that she" | | 3 | "thought that it" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 55 | | mean | 29.73 | | std | 28.6 | | cv | 0.962 | | sampleLengths | | 0 | 35 | | 1 | 4 | | 2 | 55 | | 3 | 45 | | 4 | 6 | | 5 | 2 | | 6 | 4 | | 7 | 19 | | 8 | 60 | | 9 | 78 | | 10 | 14 | | 11 | 54 | | 12 | 41 | | 13 | 6 | | 14 | 66 | | 15 | 7 | | 16 | 39 | | 17 | 6 | | 18 | 8 | | 19 | 5 | | 20 | 66 | | 21 | 30 | | 22 | 5 | | 23 | 4 | | 24 | 65 | | 25 | 71 | | 26 | 46 | | 27 | 13 | | 28 | 7 | | 29 | 1 | | 30 | 7 | | 31 | 10 | | 32 | 4 | | 33 | 87 | | 34 | 3 | | 35 | 9 | | 36 | 65 | | 37 | 6 | | 38 | 4 | | 39 | 49 | | 40 | 4 | | 41 | 71 | | 42 | 22 | | 43 | 3 | | 44 | 5 | | 45 | 64 | | 46 | 100 | | 47 | 5 | | 48 | 3 | | 49 | 39 |
| |
| 95.52% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 72 | | matches | | 0 | "been replaced" | | 1 | "being asked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 231 | | matches | | 0 | "was choosing" | | 1 | "were running" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 95 | | ratio | 0.063 | | matches | | 0 | "\"Carter.\" His voice was exactly as she remembered it — that low, unhurried baritone carrying the ghost of Marseille underneath the London polish." | | 1 | "He came in carefully, the way he always moved in unfamiliar spaces — cataloguing exits, she'd learned, old habit from years of operating in rooms where the wrong person might recognise him." | | 2 | "He'd stayed near the door — she noticed that, the care he'd taken not to advance — and he looked, for the first time she could remember, slightly damp." | | 3 | "She watched him do it — the deliberate pace of it, the way he angled slightly so she had a clear line to the door, and she thought, not for the first time, that the most maddening thing about Lucien Moreau was not his silences or his careful distances but the fact that his silences and careful distances were always a form of fluency." | | 4 | "\"You were safe. I made sure you were safe.\" And there it was — just beneath the careful syntax — something raw and unguarded that she was fairly certain Lucien Moreau had not intended to let out." | | 5 | "But his shoulder was warm where it pressed against her arm, and he hadn't moved away, and when Ptolemy climbed deliberately into his lap and Lucien set down his mug and rested his chin briefly against the top of her head — just for a moment, barely registering, almost nothing — she thought that it was, at the very least, a start." |
| |
| 93.33% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 987 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 47 | | adverbRatio | 0.047619047619047616 | | lyAdverbCount | 19 | | lyAdverbRatio | 0.019250253292806486 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 95 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 95 | | mean | 17.21 | | std | 18.29 | | cv | 1.063 | | sampleLengths | | 0 | 35 | | 1 | 4 | | 2 | 55 | | 3 | 23 | | 4 | 22 | | 5 | 6 | | 6 | 2 | | 7 | 4 | | 8 | 4 | | 9 | 11 | | 10 | 4 | | 11 | 5 | | 12 | 36 | | 13 | 19 | | 14 | 32 | | 15 | 30 | | 16 | 16 | | 17 | 13 | | 18 | 1 | | 19 | 32 | | 20 | 22 | | 21 | 4 | | 22 | 19 | | 23 | 18 | | 24 | 6 | | 25 | 3 | | 26 | 29 | | 27 | 3 | | 28 | 31 | | 29 | 7 | | 30 | 39 | | 31 | 6 | | 32 | 8 | | 33 | 3 | | 34 | 2 | | 35 | 7 | | 36 | 27 | | 37 | 32 | | 38 | 12 | | 39 | 12 | | 40 | 6 | | 41 | 5 | | 42 | 4 | | 43 | 37 | | 44 | 28 | | 45 | 7 | | 46 | 64 | | 47 | 26 | | 48 | 20 | | 49 | 13 |
| |
| 50.88% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3684210526315789 | | totalSentences | 95 | | uniqueOpeners | 35 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 58 | | matches | | 0 | "Instead she stepped back from" | | 1 | "Just enough for it to" |
| | ratio | 0.034 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 58 | | matches | | 0 | "It was not Eva." | | 1 | "His voice was exactly as" | | 2 | "His mismatched eyes moved over" | | 3 | "She should have said no." | | 4 | "He came in carefully, the" | | 5 | "He took in the towers" | | 6 | "She crossed to the kitchen" | | 7 | "She turned around." | | 8 | "He'd stayed near the door" | | 9 | "He set the cane against" | | 10 | "He said it quietly, the" | | 11 | "He never called her that" | | 12 | "She heard the edge in" | | 13 | "She'd spent four months building" | | 14 | "He came three steps closer" | | 15 | "She watched him do it" | | 16 | "he said, He paused" | | 17 | "His jaw tightened." | | 18 | "He looked away, briefly, toward" | | 19 | "She pushed off the counter." |
| | ratio | 0.552 | |
| 37.59% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 58 | | matches | | 0 | "The third deadbolt gave its" | | 1 | "It was not Eva." | | 2 | "Lucien Moreau stood in the" | | 3 | "His voice was exactly as" | | 4 | "His mismatched eyes moved over" | | 5 | "A small, controlled smile that" | | 6 | "She should have said no." | | 7 | "That was the correct answer," | | 8 | "He came in carefully, the" | | 9 | "He took in the towers" | | 10 | "The tabby materialised from behind" | | 11 | "Rory said, because she needed" | | 12 | "The cat sat down and" | | 13 | "Lucien reached down without breaking" | | 14 | "She crossed to the kitchen" | | 15 | "She turned around." | | 16 | "He'd stayed near the door" | | 17 | "He set the cane against" | | 18 | "The kettle began its low" | | 19 | "Rory kept her back against" |
| | ratio | 0.845 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 58 | | matches | (empty) | | ratio | 0 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 4 | | matches | | 0 | "That was the correct answer, the one the version of herself who had not spent the last four months occasionally waking up furious about things he'd said and thi…" | | 1 | "The cat sat down and regarded Lucien with the sovereign indifference of a creature that had decided this visitor was acceptable and therefore the tension in the…" | | 2 | "She crossed the last foot of distance and stood in front of him, and he looked up at her without moving, and she thought about Cardiff and London and everything…" | | 3 | "There were still the unsaid things, still the long careful architecture of a man who found closeness risky and said so only by other means, still her own layere…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 1 | | matches | | 0 | "He said, the word worn smooth at the edges" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 43 | | tagDensity | 0.326 | | leniency | 0.651 | | rawRatio | 0.071 | | effectiveRatio | 0.047 | |