| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said finally [finally]" | | 1 | "she asked instead [instead]" |
| | dialogueSentences | 47 | | tagDensity | 0.277 | | leniency | 0.553 | | rawRatio | 0.154 | | effectiveRatio | 0.085 | |
| 65.72% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1021 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "suddenly" | | 1 | "really" | | 2 | "slightly" | | 3 | "loosely" | | 4 | "quickly" |
| |
| 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.51% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1021 | | totalAiIsms | 5 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "practiced ease" | | count | 1 |
| | 4 | |
| | highlights | | 0 | "stomach" | | 1 | "familiar" | | 2 | "calculated" | | 3 | "practiced ease" | | 4 | "flicked" |
| |
| 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 | 32 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 32 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 66 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1028 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 8 | | wordCount | 535 | | uniqueNames | 3 | | maxNameDensity | 0.56 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | | persons | | | places | (empty) | | globalScore | 1 | | windowScore | 1 | |
| 36.36% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 22 | | glossingSentenceCount | 1 | | matches | | 0 | "Something like relief crossed his face, quic" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1028 | | matches | (empty) | |
| 65.66% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 66 | | matches | | 0 | "was — that look" | | 1 | "enough that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 21.42 | | std | 18.78 | | cv | 0.877 | | sampleLengths | | 0 | 38 | | 1 | 26 | | 2 | 37 | | 3 | 8 | | 4 | 3 | | 5 | 48 | | 6 | 4 | | 7 | 6 | | 8 | 52 | | 9 | 5 | | 10 | 24 | | 11 | 7 | | 12 | 6 | | 13 | 83 | | 14 | 5 | | 15 | 4 | | 16 | 37 | | 17 | 8 | | 18 | 9 | | 19 | 15 | | 20 | 6 | | 21 | 43 | | 22 | 23 | | 23 | 1 | | 24 | 19 | | 25 | 1 | | 26 | 7 | | 27 | 29 | | 28 | 4 | | 29 | 1 | | 30 | 40 | | 31 | 39 | | 32 | 4 | | 33 | 28 | | 34 | 42 | | 35 | 25 | | 36 | 2 | | 37 | 26 | | 38 | 28 | | 39 | 32 | | 40 | 7 | | 41 | 63 | | 42 | 2 | | 43 | 13 | | 44 | 47 | | 45 | 15 | | 46 | 16 | | 47 | 40 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 32 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 104 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 66 | | ratio | 0.061 | | matches | | 0 | "Behind her, the flat smelled of jasmine tea and old paper, and she was suddenly conscious of how she must look — hair scraped back, an oversized jumper that had definitely belonged to Eva at some point, no shoes." | | 1 | "He took in the flat — the towers of books, the maps pinned to the wall with red string connecting locations she hadn't wanted to explain to him, the general chaos that was Eva's idea of organised research — and said nothing, which was somehow worse than if he'd commented." | | 2 | "\"I know whose flat it is.\" He turned, and there it was — that look, the one that made her stomach do something unpleasant and familiar." | | 3 | "Rory studied him — the rain still clinging to his shoulders, the cane resting against the sofa like a held breath, the careful, unpractised honesty sitting strange on features built for concealment — and felt something in her chest loosen, just slightly, just enough to be dangerous." |
| |
| 85.47% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 530 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 30 | | adverbRatio | 0.05660377358490566 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.018867924528301886 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 66 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 66 | | mean | 15.58 | | std | 12.47 | | cv | 0.801 | | sampleLengths | | 0 | 21 | | 1 | 17 | | 2 | 26 | | 3 | 21 | | 4 | 16 | | 5 | 5 | | 6 | 3 | | 7 | 3 | | 8 | 20 | | 9 | 28 | | 10 | 4 | | 11 | 6 | | 12 | 13 | | 13 | 39 | | 14 | 5 | | 15 | 24 | | 16 | 7 | | 17 | 6 | | 18 | 33 | | 19 | 50 | | 20 | 5 | | 21 | 4 | | 22 | 26 | | 23 | 11 | | 24 | 8 | | 25 | 9 | | 26 | 15 | | 27 | 6 | | 28 | 21 | | 29 | 22 | | 30 | 5 | | 31 | 18 | | 32 | 1 | | 33 | 3 | | 34 | 16 | | 35 | 1 | | 36 | 7 | | 37 | 29 | | 38 | 4 | | 39 | 1 | | 40 | 25 | | 41 | 15 | | 42 | 8 | | 43 | 31 | | 44 | 4 | | 45 | 28 | | 46 | 35 | | 47 | 7 | | 48 | 9 | | 49 | 16 |
| |
| 65.15% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.45454545454545453 | | totalSentences | 66 | | uniqueOpeners | 30 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 24 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 24 | | matches | | 0 | "She yanked the door open" | | 1 | "His black eye caught the" | | 2 | "He tilted his head, water" | | 3 | "She almost laughed, caught it" | | 4 | "She stepped back before she'd" | | 5 | "He took in the flat" | | 6 | "he said finally" | | 7 | "He turned, and there it" | | 8 | "She didn't answer that, because" | | 9 | "she asked instead" | | 10 | "He looked older in the" | | 11 | "He exhaled, and something in" | | 12 | "He looked toward the window," | | 13 | "He looked at her then," | | 14 | "He leaned forward, elbows on" |
| | ratio | 0.625 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 23 | | totalSentences | 24 | | matches | | 0 | "The three deadbolts took Rory" | | 1 | "Ptolemy yowled from the windowsill" | | 2 | "She yanked the door open" | | 3 | "Lucien stood in the hallway," | | 4 | "His black eye caught the" | | 5 | "He tilted his head, water" | | 6 | "She almost laughed, caught it" | | 7 | "She stepped back before she'd" | | 8 | "He took in the flat" | | 9 | "he said finally" | | 10 | "He turned, and there it" | | 11 | "She didn't answer that, because" | | 12 | "she asked instead" | | 13 | "Lucien set his cane against" | | 14 | "He looked older in the" | | 15 | "He exhaled, and something in" | | 16 | "He looked toward the window," | | 17 | "Rory sat on the arm" | | 18 | "Ptolemy's tail flicked from beneath" | | 19 | "He looked at her then," |
| | ratio | 0.958 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 24 | | matches | (empty) | | ratio | 0 | |
| 23.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 18 | | technicalSentenceCount | 3 | | matches | | 0 | "Behind her, the flat smelled of jasmine tea and old paper, and she was suddenly conscious of how she must look — hair scraped back, an oversized jumper that had…" | | 1 | "He took in the flat — the towers of books, the maps pinned to the wall with red string connecting locations she hadn't wanted to explain to him, the general cha…" | | 2 | "Rory sat on the arm of the chair across from him, careful to keep the coffee table between them, careful to keep some kind of distance that felt necessary even …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 47 | | tagDensity | 0.213 | | leniency | 0.426 | | rawRatio | 0.1 | | effectiveRatio | 0.043 | |