| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 56 | | tagDensity | 0.286 | | leniency | 0.571 | | rawRatio | 0.063 | | effectiveRatio | 0.036 | |
| 96.17% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1304 | | totalAiIsmAdverbs | 1 | | 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) | |
| 76.99% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1304 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "measured" | | 1 | "stomach" | | 2 | "pulse" | | 3 | "determined" | | 4 | "silence" | | 5 | "eyebrow" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 60 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 60 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 60 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1296 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 1 | | matches | | 0 | "She took the bag from him and walked to the kitchen, and halfway there, without turning around, without meaning to at al…" |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 7 | | wordCount | 707 | | uniqueNames | 6 | | maxNameDensity | 0.28 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Moreau | 1 | | Blood | 1 | | Lucien | 2 | | Ptolemy | 1 | | Eva | 1 | | God | 1 |
| | persons | | 0 | "Moreau" | | 1 | "Lucien" | | 2 | "Eva" | | 3 | "God" |
| | places | (empty) | | globalScore | 1 | | windowScore | 1 | |
| 89.02% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | 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 | 1296 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 98 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 53 | | mean | 24.45 | | std | 25.66 | | cv | 1.049 | | sampleLengths | | 0 | 36 | | 1 | 6 | | 2 | 31 | | 3 | 4 | | 4 | 45 | | 5 | 1 | | 6 | 49 | | 7 | 64 | | 8 | 2 | | 9 | 3 | | 10 | 9 | | 11 | 31 | | 12 | 5 | | 13 | 53 | | 14 | 5 | | 15 | 14 | | 16 | 107 | | 17 | 23 | | 18 | 10 | | 19 | 17 | | 20 | 29 | | 21 | 69 | | 22 | 8 | | 23 | 39 | | 24 | 96 | | 25 | 11 | | 26 | 11 | | 27 | 9 | | 28 | 2 | | 29 | 55 | | 30 | 6 | | 31 | 105 | | 32 | 13 | | 33 | 7 | | 34 | 32 | | 35 | 5 | | 36 | 3 | | 37 | 1 | | 38 | 16 | | 39 | 8 | | 40 | 9 | | 41 | 50 | | 42 | 12 | | 43 | 13 | | 44 | 15 | | 45 | 9 | | 46 | 29 | | 47 | 31 | | 48 | 27 | | 49 | 5 |
| |
| 93.57% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 60 | | matches | | 0 | "been pressed" | | 1 | "been shot" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 126 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 1 | | flaggedSentences | 5 | | totalSentences | 98 | | ratio | 0.051 | | matches | | 0 | "\"Good evening to you too, Carter.\" Lucien Moreau leaned on the ivory handle, and she noticed—because her traitorous eyes had always noticed everything about him first—that he favored his left leg more than usual." | | 1 | "That was always the trouble with Lucien—one amber eye and one black, and both of them saw too much." | | 2 | "He'd sat in this exact spot last spring and told her, in that infuriating silver voice, that the men hunting her had put a price on her head, and he'd smiled while he said it, and she'd thought—she'd thought he was telling her for money." | | 3 | "Ptolemy—no, that was Eva's cat; here it was just the radiator ticking and the street noise below—right, no cat, just her own pulse in her ears." | | 4 | "And that—God help her—that did it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 715 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 24 | | adverbRatio | 0.033566433566433566 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0013986013986013986 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 13.22 | | std | 12.14 | | cv | 0.918 | | sampleLengths | | 0 | 18 | | 1 | 18 | | 2 | 2 | | 3 | 2 | | 4 | 2 | | 5 | 6 | | 6 | 25 | | 7 | 4 | | 8 | 34 | | 9 | 7 | | 10 | 4 | | 11 | 1 | | 12 | 6 | | 13 | 14 | | 14 | 29 | | 15 | 21 | | 16 | 27 | | 17 | 3 | | 18 | 13 | | 19 | 2 | | 20 | 3 | | 21 | 8 | | 22 | 1 | | 23 | 26 | | 24 | 5 | | 25 | 5 | | 26 | 4 | | 27 | 19 | | 28 | 30 | | 29 | 5 | | 30 | 14 | | 31 | 10 | | 32 | 24 | | 33 | 3 | | 34 | 7 | | 35 | 45 | | 36 | 18 | | 37 | 8 | | 38 | 15 | | 39 | 5 | | 40 | 5 | | 41 | 9 | | 42 | 4 | | 43 | 4 | | 44 | 29 | | 45 | 21 | | 46 | 48 | | 47 | 8 | | 48 | 20 | | 49 | 19 |
| |
| 56.80% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.37755102040816324 | | totalSentences | 98 | | uniqueOpeners | 37 | |
| 62.89% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 53 | | matches | | | ratio | 0.019 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 53 | | matches | | 0 | "She considered not opening the" | | 1 | "She considered it for a" | | 2 | "He held up a paper" | | 3 | "She left the door open" | | 4 | "He followed, closed the door" | | 5 | "Her stomach dropped before she" | | 6 | "He lowered himself onto her" | | 7 | "He looked at her." | | 8 | "She stood by the window" | | 9 | "He never yelled." | | 10 | "He'd sat in this exact" | | 11 | "She'd found out later he'd" | | 12 | "He'd already walked out with" | | 13 | "She could always tell." | | 14 | "He leaned forward, elbows on" | | 15 | "He gestured, and for the" | | 16 | "It came out louder than" | | 17 | "He said nothing." | | 18 | "He rose, wincing, and crossed" | | 19 | "She lifted her chin." |
| | ratio | 0.566 | |
| 7.17% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 48 | | totalSentences | 53 | | matches | | 0 | "The knock came at half" | | 1 | "Rory set down the takeaway" | | 2 | "She considered not opening the" | | 3 | "She considered it for a" | | 4 | "Lucien Moreau leaned on the" | | 5 | "Blood on his trouser cuff," | | 6 | "He held up a paper" | | 7 | "Grease marks bloomed through the" | | 8 | "She left the door open" | | 9 | "He followed, closed the door" | | 10 | "The coat hook by the" | | 11 | "Her stomach dropped before she" | | 12 | "He lowered himself onto her" | | 13 | "He looked at her." | | 14 | "That was always the trouble" | | 15 | "The flat was small and" | | 16 | "She stood by the window" | | 17 | "He never yelled." | | 18 | "That was the whole problem" | | 19 | "He'd sat in this exact" |
| | ratio | 0.906 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 53 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 56 | | tagDensity | 0.107 | | leniency | 0.214 | | rawRatio | 0.167 | | effectiveRatio | 0.036 | |