| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 1 | | adverbTags | | 0 | "The words came quietly [quietly]" |
| | dialogueSentences | 36 | | tagDensity | 0.194 | | leniency | 0.389 | | rawRatio | 0.143 | | effectiveRatio | 0.056 | |
| 91.41% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1164 | | totalAiIsmAdverbs | 2 | | found | | 0 | | adverb | "deliberately" | | count | 1 |
| | 1 | |
| | highlights | | 0 | "deliberately" | | 1 | "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) | |
| 57.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1164 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "intensity" | | 1 | "silence" | | 2 | "weight" | | 3 | "mechanical" | | 4 | "stomach" | | 5 | "charged" | | 6 | "measured" | | 7 | "perfect" |
| |
| 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 | 59 | | matches | (empty) | |
| 46.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 59 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 87 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1156 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 70.29% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 690 | | uniqueNames | 11 | | maxNameDensity | 1.59 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 11 | | Brick | 2 | | Lane | 2 | | Ptolemy | 2 | | London | 2 | | French | 1 | | Eva | 2 | | Lucien | 10 | | Mayfair | 1 | | Worse | 1 | | Water | 3 |
| | persons | | 0 | "Rory" | | 1 | "Ptolemy" | | 2 | "Eva" | | 3 | "Lucien" | | 4 | "Worse" | | 5 | "Water" |
| | places | | | globalScore | 0.703 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 42 | | glossingSentenceCount | 3 | | matches | | 0 | "rain that seemed to carry the grime of centuries" | | 1 | "smelled like curry from downstairs and the" | | 2 | "smelled like chai and old paper and Eva's" | | 3 | "sounded like static, white noise swallowin" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1156 | | matches | (empty) | |
| 90.04% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 87 | | matches | | 0 | "been that way" | | 1 | "made that choice" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 24.6 | | std | 21.17 | | cv | 0.861 | | sampleLengths | | 0 | 14 | | 1 | 2 | | 2 | 64 | | 3 | 6 | | 4 | 45 | | 5 | 3 | | 6 | 5 | | 7 | 5 | | 8 | 55 | | 9 | 27 | | 10 | 15 | | 11 | 5 | | 12 | 13 | | 13 | 57 | | 14 | 13 | | 15 | 5 | | 16 | 14 | | 17 | 49 | | 18 | 30 | | 19 | 2 | | 20 | 9 | | 21 | 43 | | 22 | 5 | | 23 | 49 | | 24 | 5 | | 25 | 25 | | 26 | 63 | | 27 | 9 | | 28 | 40 | | 29 | 56 | | 30 | 5 | | 31 | 62 | | 32 | 23 | | 33 | 6 | | 34 | 34 | | 35 | 30 | | 36 | 40 | | 37 | 46 | | 38 | 25 | | 39 | 4 | | 40 | 6 | | 41 | 38 | | 42 | 2 | | 43 | 74 | | 44 | 18 | | 45 | 5 | | 46 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 59 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 127 | | matches | (empty) | |
| 11.49% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 87 | | ratio | 0.046 | | matches | | 0 | "He gripped his ivory-handled cane with one hand while the other hung at his side, and his heterochromatic eyes—amber and black—fixed on her with the intensity of something that had been practicing this moment for months." | | 1 | "It had always been that way with him—proximity became a weapon." | | 2 | "Worse—resigned." | | 3 | "Rory moved to the kitchen area—three steps in this shoebox flat—and filled the kettle." |
| |
| 99.85% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 697 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.040172166427546625 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.011477761836441894 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 87 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 87 | | mean | 13.29 | | std | 10.7 | | cv | 0.806 | | sampleLengths | | 0 | 10 | | 1 | 4 | | 2 | 2 | | 3 | 19 | | 4 | 9 | | 5 | 36 | | 6 | 6 | | 7 | 6 | | 8 | 19 | | 9 | 20 | | 10 | 3 | | 11 | 5 | | 12 | 5 | | 13 | 3 | | 14 | 23 | | 15 | 29 | | 16 | 27 | | 17 | 8 | | 18 | 7 | | 19 | 5 | | 20 | 13 | | 21 | 3 | | 22 | 22 | | 23 | 20 | | 24 | 4 | | 25 | 8 | | 26 | 13 | | 27 | 5 | | 28 | 14 | | 29 | 17 | | 30 | 9 | | 31 | 23 | | 32 | 30 | | 33 | 2 | | 34 | 9 | | 35 | 6 | | 36 | 13 | | 37 | 13 | | 38 | 11 | | 39 | 5 | | 40 | 14 | | 41 | 35 | | 42 | 5 | | 43 | 25 | | 44 | 3 | | 45 | 22 | | 46 | 4 | | 47 | 34 | | 48 | 9 | | 49 | 5 |
| |
| 71.65% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.4367816091954023 | | totalSentences | 87 | | uniqueOpeners | 38 | |
| 61.73% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 54 | | matches | | 0 | "Even the cat remembered him." |
| | ratio | 0.019 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 11 | | totalSentences | 54 | | matches | | 0 | "He gripped his ivory-handled cane" | | 1 | "She stepped aside." | | 2 | "He'd been to this flat" | | 3 | "She remained standing, arms crossed," | | 4 | "It had always been that" | | 5 | "She'd made that choice deliberately," | | 6 | "They'd argued about it during" | | 7 | "Her hands needed something to" | | 8 | "She stood with her hands" | | 9 | "She sat on the opposite" | | 10 | "He stood, weight still favoring" |
| | ratio | 0.204 | |
| 6.30% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 54 | | matches | | 0 | "The door swung open before" | | 1 | "Eva's face went slack." | | 2 | "Lucien stood in the hallway" | | 3 | "Water beaded off the shoulders" | | 4 | "He gripped his ivory-handled cane" | | 5 | "Rory's hand stayed on the" | | 6 | "The hallway smelled like curry" | | 7 | "Lucien's jaw worked." | | 8 | "The rain fell harder against" | | 9 | "The words landed like stones" | | 10 | "Rory's grip on the door" | | 11 | "She stepped aside." | | 12 | "Lucien crossed the threshold with" | | 13 | "The flat smelled like chai" | | 14 | "Books cluttered every surface." | | 15 | "Scrolls leaned against the radiator" | | 16 | "Ptolemy emerged from behind the" | | 17 | "Rory pressed, closing the door" | | 18 | "Lucien lowered himself onto the" | | 19 | "Water dripped from his cuffs" |
| | ratio | 0.907 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 54 | | matches | (empty) | | ratio | 0 | |
| 40.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 4 | | matches | | 0 | "He gripped his ivory-handled cane with one hand while the other hung at his side, and his heterochromatic eyes—amber and black—fixed on her with the intensity o…" | | 1 | "The hallway smelled like curry from downstairs and the particular London rain that seemed to carry the grime of centuries." | | 2 | "The rain fell harder against the window at the end of the corridor, creating a steady percussion that filled the silence between them." | | 3 | "They'd argued about it during their last night together, voices escalating in his Mayfair flat until she'd grabbed her coat and left, neither of them bothering …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 36 | | tagDensity | 0.056 | | leniency | 0.111 | | rawRatio | 0.5 | | effectiveRatio | 0.056 | |