| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 1 | | adverbTags | | 0 | "he agreed quietly [quietly]" |
| | dialogueSentences | 39 | | tagDensity | 0.41 | | leniency | 0.821 | | rawRatio | 0.063 | | effectiveRatio | 0.051 | |
| 79.67% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1230 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "truly" | | 1 | "slightly" | | 2 | "very" |
| |
| 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) | |
| 75.61% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1230 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "glint" | | 1 | "silence" | | 2 | "weight" | | 3 | "charm" | | 4 | "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 | 67 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 67 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 89 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 59 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 3 | | totalWords | 1241 | | ratio | 0.002 | | matches | | 0 | "Oh-roh-rah." | | 1 | "that." | | 2 | "Malphora." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 938 | | uniqueNames | 9 | | maxNameDensity | 0.53 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 4 | | Ptolemy | 3 | | Moreau | 1 | | Golden | 1 | | Empress | 1 | | Brick | 1 | | Lane | 1 | | Lucien | 5 | | Rory | 2 |
| | persons | | 0 | "Eva" | | 1 | "Ptolemy" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Rory" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 82.43% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 37 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1241 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 89 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 29.55 | | std | 26.73 | | cv | 0.905 | | sampleLengths | | 0 | 5 | | 1 | 46 | | 2 | 8 | | 3 | 69 | | 4 | 15 | | 5 | 4 | | 6 | 81 | | 7 | 24 | | 8 | 17 | | 9 | 24 | | 10 | 5 | | 11 | 43 | | 12 | 5 | | 13 | 31 | | 14 | 6 | | 15 | 1 | | 16 | 85 | | 17 | 4 | | 18 | 2 | | 19 | 12 | | 20 | 8 | | 21 | 52 | | 22 | 20 | | 23 | 26 | | 24 | 46 | | 25 | 64 | | 26 | 3 | | 27 | 10 | | 28 | 75 | | 29 | 29 | | 30 | 12 | | 31 | 4 | | 32 | 61 | | 33 | 14 | | 34 | 87 | | 35 | 5 | | 36 | 57 | | 37 | 25 | | 38 | 16 | | 39 | 9 | | 40 | 72 | | 41 | 59 |
| |
| 94.79% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 67 | | matches | | 0 | "been poured" | | 1 | "been caught" |
| |
| 79.52% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 166 | | matches | | 0 | "was tallying" | | 1 | "was still pretending" | | 2 | "was dripping" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 89 | | ratio | 0.056 | | matches | | 0 | "Rory wrestled it free with the heel of her hand, muttering a curse she'd inherited from her father, and only then registered the shape on the other side of the peephole — a slash of charcoal, a glint of pale hair under the stairwell's dying bulb." | | 1 | "He looked at her the way he always had — like she was a ledger he was tallying, a sum he hadn't finished." | | 2 | "He sighed — a small, theatrical thing — and shifted his weight onto the cane, and she saw then what she hadn't from the peephole: the careful way he favored his left leg, the faint stiffness in his shoulders." | | 3 | "He had to duck slightly under the low lintel — five-eleven in a doorway built for shorter, harder lives — and the flat seemed to shrink around him, the way a room always did when Lucien entered it." | | 4 | "Outside, a bus groaned past, and its headlights swung across the ceiling and over the planes of his face — the scar of light in the amber eye, the dark unknowable pool of the other — and he looked, just then, almost mortal." |
| |
| 98.35% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 931 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 39 | | adverbRatio | 0.04189044038668099 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.00644468313641246 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 89 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 89 | | mean | 13.94 | | std | 13.53 | | cv | 0.97 | | sampleLengths | | 0 | 5 | | 1 | 46 | | 2 | 8 | | 3 | 5 | | 4 | 34 | | 5 | 30 | | 6 | 6 | | 7 | 6 | | 8 | 3 | | 9 | 4 | | 10 | 47 | | 11 | 6 | | 12 | 5 | | 13 | 23 | | 14 | 3 | | 15 | 12 | | 16 | 9 | | 17 | 15 | | 18 | 2 | | 19 | 20 | | 20 | 4 | | 21 | 5 | | 22 | 30 | | 23 | 13 | | 24 | 5 | | 25 | 4 | | 26 | 27 | | 27 | 6 | | 28 | 1 | | 29 | 39 | | 30 | 5 | | 31 | 12 | | 32 | 29 | | 33 | 4 | | 34 | 2 | | 35 | 12 | | 36 | 8 | | 37 | 6 | | 38 | 26 | | 39 | 20 | | 40 | 9 | | 41 | 11 | | 42 | 12 | | 43 | 14 | | 44 | 3 | | 45 | 25 | | 46 | 4 | | 47 | 14 | | 48 | 3 | | 49 | 3 |
| |
| 56.18% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.4044943820224719 | | totalSentences | 89 | | uniqueOpeners | 36 | |
| 57.47% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 58 | | matches | | 0 | "Almost like the half of" |
| | ratio | 0.017 | |
| 26.90% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 58 | | matches | | 0 | "She froze with her fingers" | | 1 | "She could have left it." | | 2 | "She could have pretended she'd" | | 3 | "He always knew." | | 4 | "She opened the door." | | 5 | "He looked at her the" | | 6 | "Her voice came out steadier" | | 7 | "He sighed — a small," | | 8 | "It was, she'd long ago" | | 9 | "He arranged himself like a" | | 10 | "She hated that he was" | | 11 | "She hated, more, that her" | | 12 | "He looked up." | | 13 | "he agreed quietly" | | 14 | "She stepped back." | | 15 | "It wasn't surrender." | | 16 | "She told herself it wasn't" | | 17 | "He came in." | | 18 | "He had to duck slightly" | | 19 | "He took in the towers" |
| | ratio | 0.483 | |
| 37.59% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 58 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory wrestled it free with" | | 2 | "She froze with her fingers" | | 3 | "She could have left it." | | 4 | "She could have pretended she'd" | | 5 | "The smell of cumin and" | | 6 | "He always knew." | | 7 | "She opened the door." | | 8 | "Lucien Moreau stood on the" | | 9 | "The amber eye caught the" | | 10 | "The black one drank it." | | 11 | "He looked at her the" | | 12 | "The accent rolled over the" | | 13 | "*Oh-roh-rah.* No one else made" | | 14 | "Her voice came out steadier" | | 15 | "A faint incline of his" | | 16 | "A ghost of a smile" | | 17 | "The smile died entirely." | | 18 | "He sighed — a small," | | 19 | "Lucien did not show pain." |
| | 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 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 4 | | matches | | 0 | "Rory wrestled it free with the heel of her hand, muttering a curse she'd inherited from her father, and only then registered the shape on the other side of the …" | | 1 | "The smell of cumin and frying onions drifted up through the floorboards from the curry house below, the same smell that had become, over these weeks, something …" | | 2 | "Lucien Moreau stood on the landing as though he'd been poured into it, one gloved hand resting atop the ivory handle of his cane, the other tucked into the pock…" | | 3 | "Ptolemy leapt up onto the sill beside him and curled into the curve of his hip as though he belonged there, and Rory stood in the middle of Eva's borrowed flat …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 47.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 4 | | fancyTags | | 0 | "his head conceding (concede)" | | 1 | "Lucien murmured (murmur)" | | 2 | "he agreed quietly (agree)" | | 3 | "she whispered (whisper)" |
| | dialogueSentences | 39 | | tagDensity | 0.282 | | leniency | 0.564 | | rawRatio | 0.364 | | effectiveRatio | 0.205 | |