| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said slowly [slowly]" | | 1 | "he said quietly [quietly]" |
| | dialogueSentences | 58 | | tagDensity | 0.362 | | leniency | 0.724 | | rawRatio | 0.095 | | effectiveRatio | 0.069 | |
| 77.03% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1524 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "very" | | 1 | "slowly" | | 2 | "really" |
| |
| 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) | |
| 93.44% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1524 | | totalAiIsms | 2 | | found | | | highlights | | |
| 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 | 1 | | hedgeCount | 1 | | narrationSentences | 72 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 106 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 95 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 6 | | markdownWords | 35 | | totalWords | 1532 | | ratio | 0.023 | | matches | | 0 | "and then you left," | | 1 | "and then you made me leave," | | 2 | "You do not know what I am," | | 3 | "I know exactly what you are, Luc, I've never once been confused about it," | | 4 | "decided" | | 5 | "Je te choisis," |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 91.74% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 944 | | uniqueNames | 9 | | maxNameDensity | 1.17 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 5 | | Rory | 11 | | Lucien | 5 | | Moreau | 2 | | October | 1 | | Ptolemy | 4 | | Rain | 1 | | Luc | 1 | | Bengali | 1 |
| | persons | | 0 | "Eva" | | 1 | "Rory" | | 2 | "Lucien" | | 3 | "Moreau" | | 4 | "Ptolemy" | | 5 | "Luc" |
| | places | | | globalScore | 0.917 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 39 | | glossingSentenceCount | 4 | | matches | | 0 | "looked like a hole punched in him" | | 1 | "looked like an expensive object delivered" | | 2 | "felt like armour and she knew exactly h" | | 3 | "quite hide, the black eye going somehow blacker" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1532 | | matches | (empty) | |
| 72.33% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 106 | | matches | | 0 | "was that he" | | 1 | "hated that she'd" | | 2 | "chose that moment" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 56 | | mean | 27.36 | | std | 28.09 | | cv | 1.027 | | sampleLengths | | 0 | 66 | | 1 | 23 | | 2 | 40 | | 3 | 17 | | 4 | 1 | | 5 | 9 | | 6 | 45 | | 7 | 13 | | 8 | 38 | | 9 | 7 | | 10 | 47 | | 11 | 56 | | 12 | 5 | | 13 | 7 | | 14 | 82 | | 15 | 5 | | 16 | 49 | | 17 | 29 | | 18 | 7 | | 19 | 9 | | 20 | 61 | | 21 | 107 | | 22 | 19 | | 23 | 9 | | 24 | 15 | | 25 | 21 | | 26 | 14 | | 27 | 15 | | 28 | 2 | | 29 | 76 | | 30 | 4 | | 31 | 58 | | 32 | 31 | | 33 | 11 | | 34 | 1 | | 35 | 8 | | 36 | 96 | | 37 | 11 | | 38 | 1 | | 39 | 39 | | 40 | 21 | | 41 | 21 | | 42 | 7 | | 43 | 8 | | 44 | 55 | | 45 | 15 | | 46 | 118 | | 47 | 8 | | 48 | 4 | | 49 | 1 |
| |
| 95.52% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 72 | | matches | | 0 | "being shut" | | 1 | "been reconciled" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 175 | | matches | | 0 | "was standing" | | 1 | "was holding" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 1 | | flaggedSentences | 7 | | totalSentences | 106 | | ratio | 0.066 | | matches | | 0 | "His cane came up — not fast, not aggressive, just placed, the tip finding the gap between door and frame with the casual precision of a man who had been shutting things and stopping things from being shut for a very long time." | | 1 | "That was the whole problem with him and always had been — he could take a shot to the ribs and turn it into a joke shared between them, like they were still on the same side of something." | | 2 | "It swallowed everyone — one room and a half, every horizontal surface drowning under Eva's books and scrolls and printed-out research with coffee rings on it, the single window fogged with October." | | 3 | "His hand on the side of her neck, thumb along her jaw, and his mouth almost — almost — and then the terrible careful way he had stepped back, and said, *You do not know what I am,* and she had said, *I know exactly what you are, Luc, I've never once been confused about it,* and he had walked away up the alley with his cane clicking on the wet stones and she had stood in the rain long enough to get properly cold, because she had refused to be the woman who ran after him." | | 4 | "Everything about him stayed level; that was the trick of him, the immaculate surface, and she had learned to read the hairline fractures." | | 5 | "She saw it get him — a flinch he didn't quite hide, the black eye going somehow blacker." | | 6 | "She reached up and took a fistful of his lapel — beautiful fabric, appalling price, warm from him — and did not pull." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 896 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 35 | | adverbRatio | 0.0390625 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.008928571428571428 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 106 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 106 | | mean | 14.45 | | std | 15.76 | | cv | 1.091 | | sampleLengths | | 0 | 5 | | 1 | 61 | | 2 | 23 | | 3 | 2 | | 4 | 4 | | 5 | 34 | | 6 | 8 | | 7 | 9 | | 8 | 1 | | 9 | 9 | | 10 | 43 | | 11 | 2 | | 12 | 13 | | 13 | 13 | | 14 | 17 | | 15 | 8 | | 16 | 7 | | 17 | 8 | | 18 | 39 | | 19 | 19 | | 20 | 15 | | 21 | 22 | | 22 | 5 | | 23 | 4 | | 24 | 3 | | 25 | 4 | | 26 | 32 | | 27 | 15 | | 28 | 3 | | 29 | 28 | | 30 | 5 | | 31 | 26 | | 32 | 4 | | 33 | 12 | | 34 | 7 | | 35 | 29 | | 36 | 7 | | 37 | 4 | | 38 | 5 | | 39 | 23 | | 40 | 3 | | 41 | 35 | | 42 | 9 | | 43 | 1 | | 44 | 97 | | 45 | 4 | | 46 | 7 | | 47 | 8 | | 48 | 3 | | 49 | 6 |
| |
| 58.81% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3867924528301887 | | totalSentences | 106 | | uniqueOpeners | 41 | |
| 56.50% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 59 | | matches | | 0 | "Somewhere below, a pan hissed" |
| | ratio | 0.017 | |
| 3.05% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 59 | | matches | | 0 | "He didn't wear hats." | | 1 | "Her second was that she" | | 2 | "she said, and started to" | | 3 | "His cane came up —" | | 4 | "She took the cat." | | 5 | "He came inside." | | 6 | "It swallowed everyone — one" | | 7 | "He didn't sit." | | 8 | "He stood in the two" | | 9 | "She folded her arms." | | 10 | "It felt like armour and" | | 11 | "It came out too fast" | | 12 | "His jaw shifted." | | 13 | "His hand on the side" | | 14 | "She had not run." | | 15 | "She was very proud of" | | 16 | "She'd been furious about it" | | 17 | "He set the cane against" | | 18 | "He never put it down." | | 19 | "He looked at her steadily" |
| | ratio | 0.542 | |
| 10.85% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 59 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory had told Eva a" | | 2 | "He didn't wear hats." | | 3 | "Rory's first thought was that" | | 4 | "Her second was that she" | | 5 | "she said, and started to" | | 6 | "His cane came up —" | | 7 | "Something moved at the corner" | | 8 | "That was the whole problem" | | 9 | "Ptolemy chose that moment to" | | 10 | "Lucien bent, caught the cat" | | 11 | "Ptolemy went boneless and outraged" | | 12 | "She took the cat." | | 13 | "He came inside." | | 14 | "The flat swallowed him." | | 15 | "It swallowed everyone — one" | | 16 | "Lucien in his charcoal suit" | | 17 | "He didn't sit." | | 18 | "He stood in the two" | | 19 | "Rory dumped Ptolemy on the" |
| | ratio | 0.898 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 59 | | matches | (empty) | | ratio | 0 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 24 | | technicalSentenceCount | 3 | | matches | | 0 | "His cane came up — not fast, not aggressive, just placed, the tip finding the gap between door and frame with the casual precision of a man who had been shuttin…" | | 1 | "Neither of them said the next part, which was: *and then you left,* or possibly, *and then you made me leave,* the two versions having never once been reconcile…" | | 2 | "His hand on the side of her neck, thumb along her jaw, and his mouth almost — almost — and then the terrible careful way he had stepped back, and said, *You do …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 58 | | tagDensity | 0.224 | | leniency | 0.448 | | rawRatio | 0 | | effectiveRatio | 0 | |