| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 38 | | tagDensity | 0.316 | | leniency | 0.632 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 91.50% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1177 | | totalAiIsmAdverbs | 2 | | 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) | |
| 49.02% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1177 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "marble" | | 1 | "weight" | | 2 | "unspoken" | | 3 | "echoed" | | 4 | "silence" | | 5 | "stomach" | | 6 | "lilt" | | 7 | "flicker" | | 8 | "flickered" | | 9 | "charged" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "blood ran cold" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "blood went cold" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 73 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 73 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 99 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1172 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 97.98% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 865 | | uniqueNames | 11 | | maxNameDensity | 1.04 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 2 | | Ptolemy | 4 | | Edinburgh | 1 | | Moreau | 1 | | Bermondsey | 1 | | Rory | 9 | | Lucien | 5 | | Cardiff | 1 | | Sunday | 1 | | Camden | 1 | | Market | 1 |
| | persons | | 0 | "Eva" | | 1 | "Ptolemy" | | 2 | "Moreau" | | 3 | "Rory" | | 4 | "Lucien" |
| | places | | 0 | "Edinburgh" | | 1 | "Bermondsey" | | 2 | "Cardiff" | | 3 | "Camden" |
| | globalScore | 0.98 | | windowScore | 1 | |
| 2.94% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 51 | | glossingSentenceCount | 3 | | matches | | 0 | "sounded like an accusation" | | 1 | "quite believe in anymore" | | 2 | "quite align, the demon and the man wrestling for dominance in the slant of the bulb" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1172 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 99 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 55 | | mean | 21.31 | | std | 16.47 | | cv | 0.773 | | sampleLengths | | 0 | 40 | | 1 | 34 | | 2 | 11 | | 3 | 53 | | 4 | 10 | | 5 | 54 | | 6 | 1 | | 7 | 8 | | 8 | 12 | | 9 | 24 | | 10 | 25 | | 11 | 4 | | 12 | 44 | | 13 | 5 | | 14 | 32 | | 15 | 36 | | 16 | 4 | | 17 | 36 | | 18 | 16 | | 19 | 14 | | 20 | 5 | | 21 | 45 | | 22 | 9 | | 23 | 4 | | 24 | 4 | | 25 | 4 | | 26 | 45 | | 27 | 10 | | 28 | 4 | | 29 | 59 | | 30 | 9 | | 31 | 19 | | 32 | 36 | | 33 | 9 | | 34 | 27 | | 35 | 26 | | 36 | 25 | | 37 | 19 | | 38 | 7 | | 39 | 38 | | 40 | 29 | | 41 | 4 | | 42 | 2 | | 43 | 18 | | 44 | 17 | | 45 | 4 | | 46 | 21 | | 47 | 23 | | 48 | 1 | | 49 | 56 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 73 | | matches | | |
| 13.52% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 143 | | matches | | 0 | "wasn’t expecting" | | 1 | "was studying" | | 2 | "was reading" | | 3 | "was still standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 99 | | ratio | 0.051 | | matches | | 0 | "The smell of curry and traffic floated up from the street below, mixing with the faint cologne he wore—bergamot and something darker, like smoked leather." | | 1 | "He had that effect—filling space without trying, his presence a gravitational pull she’d spent the last four months learning to resist." | | 2 | "When she turned, he was studying the room—the stacks of books on the floor, the corkboard covered in string and photographs, the half-empty mug of tea growing cold beside her notes." | | 3 | "Rory grabbed her coat from the hook by the door—a worn leather jacket she’d bought secondhand in Camden Market three years ago." | | 4 | "The stairwell light flickered again, casting his shadow long and strange against the wall—two shapes that didn’t quite align, the demon and the man wrestling for dominance in the slant of the bulb." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 873 | | adjectiveStacks | 1 | | stackExamples | | 0 | "growing cold beside her" |
| | adverbCount | 27 | | adverbRatio | 0.030927835051546393 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.003436426116838488 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 99 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 99 | | mean | 11.84 | | std | 8.25 | | cv | 0.697 | | sampleLengths | | 0 | 14 | | 1 | 26 | | 2 | 4 | | 3 | 18 | | 4 | 11 | | 5 | 1 | | 6 | 7 | | 7 | 4 | | 8 | 16 | | 9 | 18 | | 10 | 19 | | 11 | 10 | | 12 | 20 | | 13 | 20 | | 14 | 9 | | 15 | 5 | | 16 | 1 | | 17 | 8 | | 18 | 5 | | 19 | 7 | | 20 | 18 | | 21 | 6 | | 22 | 15 | | 23 | 10 | | 24 | 4 | | 25 | 4 | | 26 | 8 | | 27 | 3 | | 28 | 29 | | 29 | 5 | | 30 | 19 | | 31 | 13 | | 32 | 11 | | 33 | 25 | | 34 | 4 | | 35 | 14 | | 36 | 1 | | 37 | 21 | | 38 | 16 | | 39 | 14 | | 40 | 5 | | 41 | 8 | | 42 | 6 | | 43 | 31 | | 44 | 9 | | 45 | 4 | | 46 | 4 | | 47 | 4 | | 48 | 14 | | 49 | 23 |
| |
| 58.92% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.3838383838383838 | | totalSentences | 99 | | uniqueOpeners | 38 | |
| 51.28% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 65 | | matches | | | ratio | 0.015 | |
| 47.69% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 65 | | matches | | 0 | "She wasn’t expecting anyone." | | 1 | "She set Ptolemy aside and" | | 2 | "She opened the door a" | | 3 | "His charcoal suit was immaculate" | | 4 | "His voice was low, smooth" | | 5 | "He shifted his weight, and" | | 6 | "she repeated, and the disbelief" | | 7 | "She held his gaze." | | 8 | "She wouldn’t have." | | 9 | "She’d blocked his number after" | | 10 | "He gestured with his free" | | 11 | "She unhooked the chain." | | 12 | "He stepped past her into" | | 13 | "He had that effect—filling space" | | 14 | "She closed the door, redid" | | 15 | "He turned to face her" | | 16 | "She’d forgotten how intense it" | | 17 | "He set the cane against" | | 18 | "Her mother’s language, the one" | | 19 | "He didn’t look down." |
| | ratio | 0.431 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 65 | | matches | | 0 | "The knock came at half" | | 1 | "Rory looked up from the" | | 2 | "She wasn’t expecting anyone." | | 3 | "Eva was in Edinburgh for" | | 4 | "The flat above the curry" | | 5 | "The knock came again, harder" | | 6 | "A rhythm she recognised." | | 7 | "Rory’s blood went cold, then" | | 8 | "She set Ptolemy aside and" | | 9 | "The three deadbolts slid back" | | 10 | "She opened the door a" | | 11 | "Lucien Moreau stood under the" | | 12 | "His charcoal suit was immaculate" | | 13 | "The amber eye caught the" | | 14 | "The black one swallowed it." | | 15 | "His voice was low, smooth" | | 16 | "Rory didn’t unhook the chain." | | 17 | "He shifted his weight, and" | | 18 | "she repeated, and the disbelief" | | 19 | "She held his gaze." |
| | ratio | 0.923 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 65 | | matches | (empty) | | ratio | 0 | |
| 99.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 33 | | technicalSentenceCount | 2 | | matches | | 0 | "The three deadbolts slid back one by one with metallic clicks that seemed too loud in the narrow hallway." | | 1 | "The stairwell light flickered again, casting his shadow long and strange against the wall—two shapes that didn’t quite align, the demon and the man wrestling fo…" |
| |
| 41.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 2 | | matches | | 0 | "He shifted, and the cane tapped once against the floorboards" | | 1 | "Lucien said, a ghost of a smile touching his mouth" |
| |
| 97.37% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 2 | | fancyTags | | 0 | "she repeated (repeat)" | | 1 | "he observed (observe)" |
| | dialogueSentences | 38 | | tagDensity | 0.211 | | leniency | 0.421 | | rawRatio | 0.25 | | effectiveRatio | 0.105 | |