| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said again [again]" |
| | dialogueSentences | 42 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.071 | | effectiveRatio | 0.048 | |
| 85.60% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1042 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "gently" | | 1 | "slightly" | | 2 | "tightly" |
| |
| 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) | |
| 85.60% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1042 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "tension" | | 1 | "flickered" | | 2 | "warmth" |
| |
| 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 | 40 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 40 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 68 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 18 | | totalWords | 1054 | | ratio | 0.017 | | matches | | 0 | "this had better be good, Eva" | | 1 | "seconds" | | 2 | "He left. He let me leave. He didn't come after me." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 14 | | wordCount | 737 | | uniqueNames | 10 | | maxNameDensity | 0.41 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 2 | | Moreau | 1 | | Lucien | 3 | | Wapping | 1 | | Jarek | 1 | | Yu-Fei | 1 | | Frenchman | 1 | | Carter | 1 | | Eva | 2 | | Pressed | 1 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Jarek" | | 4 | "Yu-Fei" | | 5 | "Frenchman" | | 6 | "Carter" | | 7 | "Eva" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 31 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like a man who had rehearsed this" | | 1 | "not quite an invitation, not quite a retreat" | | 2 | "not quite a retreat" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1054 | | matches | (empty) | |
| 19.61% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 68 | | matches | | 0 | "concerned — that he" | | 1 | "hated that she" | | 2 | "passing, that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 25.71 | | std | 23.6 | | cv | 0.918 | | sampleLengths | | 0 | 36 | | 1 | 38 | | 2 | 2 | | 3 | 43 | | 4 | 2 | | 5 | 28 | | 6 | 10 | | 7 | 9 | | 8 | 35 | | 9 | 20 | | 10 | 57 | | 11 | 1 | | 12 | 2 | | 13 | 13 | | 14 | 12 | | 15 | 113 | | 16 | 5 | | 17 | 6 | | 18 | 46 | | 19 | 22 | | 20 | 2 | | 21 | 58 | | 22 | 39 | | 23 | 17 | | 24 | 62 | | 25 | 62 | | 26 | 24 | | 27 | 2 | | 28 | 10 | | 29 | 4 | | 30 | 2 | | 31 | 37 | | 32 | 53 | | 33 | 11 | | 34 | 6 | | 35 | 7 | | 36 | 22 | | 37 | 44 | | 38 | 20 | | 39 | 50 | | 40 | 22 |
| |
| 96.49% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 40 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 124 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 68 | | ratio | 0.132 | | matches | | 0 | "His amber eye caught the light from the hallway; the black one swallowed it whole." | | 1 | "\"No.\" She said it flatly, already moving to shut the door, but his hand came up against the frame, unhurried, and she remembered — too late, always too late where he was concerned — that he was stronger than his elegant wrists suggested." | | 2 | "\"I know what time it is. I wouldn't be here otherwise.\" He glanced past her shoulder at the chaos of books and scrolls stacked on every surface, the candle guttering on the windowsill, and something in his expression flickered — amusement, maybe, or a memory." | | 3 | "Six months since she'd seen him last, since the warehouse in Wapping, since he'd looked at her with that same maddening calm while the demon broker Jarek's men closed in and told her to run, and she had — she'd run and left him to whatever came after, because that was the deal, that was always going to be the deal with a man who dealt in other people's secrets for a living." | | 4 | "She felt her spine straighten, felt the old careful blankness slide over her face — the mask she'd learned to wear before she'd learned much else in this city." | | 5 | "There it was — the thing she hadn't said in six months, hadn't let herself say even to Eva, who asked, who always asked with that careful patient look." | | 6 | "Ptolemy had abandoned them both for the warmth of the flat, leaving the doorway achingly, stupidly intimate — just the two of them and the cold air and six months of things unsaid piling up like snow no one had bothered to shovel." | | 7 | "She studied him — the damp platinum hair, the tired set of his mouth, the cane he was gripping just a fraction too tightly for someone so studiously relaxed." | | 8 | "Something in her chest gave, small and traitorous, the way it always had around him — that low, persistent pull she'd spent six months trying to convince herself she'd imagined." |
| |
| 85.79% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 729 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 41 | | adverbRatio | 0.056241426611796985 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.012345679012345678 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 68 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 68 | | mean | 15.5 | | std | 14 | | cv | 0.903 | | sampleLengths | | 0 | 36 | | 1 | 23 | | 2 | 15 | | 3 | 2 | | 4 | 43 | | 5 | 2 | | 6 | 28 | | 7 | 10 | | 8 | 9 | | 9 | 5 | | 10 | 29 | | 11 | 1 | | 12 | 15 | | 13 | 5 | | 14 | 45 | | 15 | 12 | | 16 | 1 | | 17 | 2 | | 18 | 13 | | 19 | 7 | | 20 | 5 | | 21 | 4 | | 22 | 7 | | 23 | 73 | | 24 | 29 | | 25 | 5 | | 26 | 6 | | 27 | 10 | | 28 | 29 | | 29 | 7 | | 30 | 13 | | 31 | 9 | | 32 | 2 | | 33 | 18 | | 34 | 29 | | 35 | 2 | | 36 | 4 | | 37 | 5 | | 38 | 12 | | 39 | 27 | | 40 | 6 | | 41 | 6 | | 42 | 5 | | 43 | 48 | | 44 | 14 | | 45 | 19 | | 46 | 43 | | 47 | 24 | | 48 | 2 | | 49 | 10 |
| |
| 56.86% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.4117647058823529 | | totalSentences | 68 | | uniqueOpeners | 28 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 35 | | matches | (empty) | | ratio | 0 | |
| 2.86% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 19 | | totalSentences | 35 | | matches | | 0 | "His amber eye caught the" | | 1 | "She said it flatly, already" | | 2 | "He glanced past her shoulder" | | 3 | "She wanted to laugh." | | 4 | "She hated that she wanted" | | 5 | "She hadn't known if he" | | 6 | "She felt her spine straighten," | | 7 | "He said it gently, which" | | 8 | "He let me leave." | | 9 | "He didn't come after me.*" | | 10 | "His voice had gone low," | | 11 | "she said, but it came" | | 12 | "She studied him — the" | | 13 | "He looked like a man" | | 14 | "she said, without heat now," | | 15 | "She stepped back from the" | | 16 | "He stepped over the threshold," | | 17 | "she said again, but this" | | 18 | "It was something closer to" |
| | ratio | 0.543 | |
| 31.43% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 30 | | totalSentences | 35 | | matches | | 0 | "The three deadbolts took Rory" | | 1 | "Lucien Moreau stood on the" | | 2 | "His amber eye caught the" | | 3 | "She said it flatly, already" | | 4 | "Ptolemy wound around her ankles," | | 5 | "Rory said, quieter now, aware" | | 6 | "He glanced past her shoulder" | | 7 | "She wanted to laugh." | | 8 | "She hated that she wanted" | | 9 | "She hadn't known if he" | | 10 | "The name landed like a" | | 11 | "She felt her spine straighten," | | 12 | "He said it gently, which" | | 13 | "The words came out before" | | 14 | "He let me leave." | | 15 | "He didn't come after me.*" | | 16 | "Lucien's jaw tightened, just slightly," | | 17 | "His voice had gone low," | | 18 | "The rain kept falling behind" | | 19 | "Ptolemy had abandoned them both" |
| | ratio | 0.857 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 35 | | matches | (empty) | | ratio | 0 | |
| 23.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 18 | | technicalSentenceCount | 3 | | matches | | 0 | "Ptolemy wound around her ankles, unbothered by the tension crackling in the doorway, and butted his head against Lucien's shin as if the cat, at least, held no …" | | 1 | "Six months since she'd seen him last, since the warehouse in Wapping, since he'd looked at her with that same maddening calm while the demon broker Jarek's men …" | | 2 | "He looked like a man who had rehearsed this on the way over and abandoned the script somewhere around the second flight of stairs." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 42 | | tagDensity | 0.19 | | leniency | 0.381 | | rawRatio | 0 | | effectiveRatio | 0 | |