| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 53 | | tagDensity | 0.34 | | leniency | 0.679 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.71% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1400 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "utterly" | | 1 | "very" | | 2 | "carefully" |
| |
| 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) | |
| 89.29% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1400 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "could feel" | | 1 | "weight" | | 2 | "unreadable" |
| |
| 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 | 58 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 58 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 93 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 103 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1406 | | ratio | 0 | | matches | (empty) | |
| 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 | 30 | | wordCount | 930 | | uniqueNames | 11 | | maxNameDensity | 0.75 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 7 | | Eva | 5 | | Bengali | 1 | | Lucien | 7 | | Moreau | 3 | | Deptford | 1 | | Rors | 1 | | Aurora | 1 | | Frenchman | 1 | | French | 1 | | Ptolemy | 2 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Bengali" | | 3 | "Lucien" | | 4 | "Moreau" | | 5 | "Ptolemy" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 32 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 57.75% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.422 | | wordCount | 1406 | | matches | | 0 | "not amber but something hotter" | | 1 | "neither in nor" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 93 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 60 | | mean | 23.43 | | std | 27.89 | | cv | 1.19 | | sampleLengths | | 0 | 60 | | 1 | 4 | | 2 | 68 | | 3 | 3 | | 4 | 4 | | 5 | 47 | | 6 | 22 | | 7 | 47 | | 8 | 4 | | 9 | 2 | | 10 | 9 | | 11 | 107 | | 12 | 3 | | 13 | 7 | | 14 | 39 | | 15 | 11 | | 16 | 24 | | 17 | 2 | | 18 | 20 | | 19 | 68 | | 20 | 25 | | 21 | 2 | | 22 | 10 | | 23 | 3 | | 24 | 7 | | 25 | 90 | | 26 | 11 | | 27 | 36 | | 28 | 4 | | 29 | 75 | | 30 | 2 | | 31 | 82 | | 32 | 34 | | 33 | 5 | | 34 | 7 | | 35 | 12 | | 36 | 2 | | 37 | 44 | | 38 | 4 | | 39 | 2 | | 40 | 2 | | 41 | 111 | | 42 | 3 | | 43 | 1 | | 44 | 2 | | 45 | 15 | | 46 | 21 | | 47 | 15 | | 48 | 10 | | 49 | 1 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 58 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 167 | | matches | | |
| 19.97% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 2 | | flaggedSentences | 4 | | totalSentences | 93 | | ratio | 0.043 | | matches | | 0 | "He stood on the landing in charcoal wool with the shoulders damp from rain, one gloved hand resting on the ivory head of his cane, and he looked at her the way he had always looked at her — like she was a document he'd already read and was rereading for pleasure." | | 1 | "He did, meticulously, and stepped past her into the flat, and the smell of him came with him — cedar and cold rain and something underneath it that wasn't anything she could name, that had never had a name, that she had once fallen asleep breathing in the back of a car outside a warehouse in Deptford." | | 2 | "She was aware of her hair, unwashed, tucked behind her ears; of the jumper with the hole in the cuff; of the crescent scar on her left wrist, pale and old and utterly unremarkable, which she nonetheless pulled her sleeve down over." | | 3 | "In Eva's terrible armchair with the sprung seat, ankle crossed over knee, spine straight as a rule, and it was so absurd — the Frenchman in his four-hundred-pound coat perched in a chair with foam coming out of it, a tabby cat immediately and treacherously arranging itself on his shin — that Rory laughed." |
| |
| 97.28% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 928 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 40 | | adverbRatio | 0.04310344827586207 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.011853448275862068 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 93 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 93 | | mean | 15.12 | | std | 17.82 | | cv | 1.179 | | sampleLengths | | 0 | 60 | | 1 | 4 | | 2 | 52 | | 3 | 10 | | 4 | 6 | | 5 | 3 | | 6 | 4 | | 7 | 23 | | 8 | 3 | | 9 | 6 | | 10 | 15 | | 11 | 22 | | 12 | 2 | | 13 | 3 | | 14 | 42 | | 15 | 4 | | 16 | 2 | | 17 | 9 | | 18 | 57 | | 19 | 50 | | 20 | 3 | | 21 | 7 | | 22 | 5 | | 23 | 34 | | 24 | 11 | | 25 | 19 | | 26 | 5 | | 27 | 2 | | 28 | 16 | | 29 | 4 | | 30 | 22 | | 31 | 4 | | 32 | 42 | | 33 | 25 | | 34 | 2 | | 35 | 10 | | 36 | 3 | | 37 | 7 | | 38 | 11 | | 39 | 5 | | 40 | 4 | | 41 | 3 | | 42 | 8 | | 43 | 23 | | 44 | 36 | | 45 | 3 | | 46 | 8 | | 47 | 10 | | 48 | 26 | | 49 | 4 |
| |
| 63.08% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.43010752688172044 | | totalSentences | 93 | | uniqueOpeners | 40 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 46 | | matches | | 0 | "Then she slid the deadbolts" | | 1 | "Somewhere below, the curry house" |
| | ratio | 0.043 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 46 | | matches | | 0 | "It was Lucien Moreau." | | 1 | "He stood on the landing" | | 2 | "She shut the door." | | 3 | "She stood with her palm" | | 4 | "He didn't knock." | | 5 | "He didn't say her name" | | 6 | "He simply waited, and she" | | 7 | "She counted them." | | 8 | "He did, meticulously, and stepped" | | 9 | "He took in the room" | | 10 | "He set the cane against" | | 11 | "She filled the kettle." | | 12 | "She was aware of her" | | 13 | "she said to the kettle" | | 14 | "He said it quietly, and" | | 15 | "Her mother said Rory." | | 16 | "She turned around." | | 17 | "He looked away, at the" | | 18 | "It came out wrong, ragged" | | 19 | "He didn't offer a handkerchief." |
| | ratio | 0.565 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 43 | | totalSentences | 46 | | matches | | 0 | "The third deadbolt was the" | | 1 | "It was Lucien Moreau." | | 2 | "He stood on the landing" | | 3 | "The amber eye caught the" | | 4 | "The black one gave her" | | 5 | "She shut the door." | | 6 | "She stood with her palm" | | 7 | "He didn't knock." | | 8 | "He didn't say her name" | | 9 | "He simply waited, and she" | | 10 | "Ptolemy wound around her ankles" | | 11 | "She counted them." | | 12 | "He did, meticulously, and stepped" | | 13 | "He took in the room" | | 14 | "He set the cane against" | | 15 | "Something moved through his voice," | | 16 | "Rory crossed to the kitchen" | | 17 | "She filled the kettle." | | 18 | "She was aware of her" | | 19 | "she said to the kettle" |
| | ratio | 0.935 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 46 | | matches | (empty) | | ratio | 0 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 2 | | matches | | 0 | "He did, meticulously, and stepped past her into the flat, and the smell of him came with him — cedar and cold rain and something underneath it that wasn't anyth…" | | 1 | "The black eye was unreadable, as always, but the amber one had gone soft and terrible and human, and she thought: oh, that's the trick of him, that's the whole …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 53 | | tagDensity | 0.245 | | leniency | 0.491 | | rawRatio | 0 | | effectiveRatio | 0 | |