| 42.11% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 3 | | adverbTags | | 0 | "she said instead [instead]" | | 1 | "Lucien asked quietly [quietly]" | | 2 | "He sounded almost [almost]" |
| | dialogueSentences | 34 | | tagDensity | 0.559 | | leniency | 1 | | rawRatio | 0.158 | | effectiveRatio | 0.158 | |
| 87.58% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1208 | | totalAiIsmAdverbs | 3 | | 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) | |
| 87.58% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1208 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "echoed" | | 1 | "weight" | | 2 | "silence" |
| |
| 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 | 60 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 60 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 75 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1223 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 18 | | wordCount | 812 | | uniqueNames | 9 | | maxNameDensity | 0.62 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 5 | | Eva | 1 | | Moreau | 1 | | Force | 1 | | Pressed | 1 | | Brick | 1 | | Lane | 1 | | Lucien | 4 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Ptolemy" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 7.14% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 35 | | glossingSentenceCount | 2 | | matches | | 0 | "sounded like exactly what they were" | | 1 | "appeared beside hers in the dark glass, half-lit, the amber eye gone to gold" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.818 | | wordCount | 1223 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 75 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 33.97 | | std | 26.81 | | cv | 0.789 | | sampleLengths | | 0 | 39 | | 1 | 81 | | 2 | 28 | | 3 | 36 | | 4 | 10 | | 5 | 36 | | 6 | 48 | | 7 | 5 | | 8 | 5 | | 9 | 39 | | 10 | 69 | | 11 | 8 | | 12 | 44 | | 13 | 52 | | 14 | 5 | | 15 | 59 | | 16 | 6 | | 17 | 54 | | 18 | 20 | | 19 | 76 | | 20 | 5 | | 21 | 1 | | 22 | 1 | | 23 | 70 | | 24 | 46 | | 25 | 73 | | 26 | 77 | | 27 | 10 | | 28 | 16 | | 29 | 76 | | 30 | 22 | | 31 | 6 | | 32 | 1 | | 33 | 9 | | 34 | 25 | | 35 | 65 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 60 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 137 | | matches | | 0 | "was standing" | | 1 | "wasn't doing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 75 | | ratio | 0.08 | | matches | | 0 | "Lucien Moreau looked exactly as he always did — which was to say, immaculate, infuriating, and entirely out of place against the peeling paint of the landing." | | 1 | "His mismatched eyes — one warm amber, one a black so total it seemed to drink the light — found hers and held." | | 2 | "Below them, the curry house exhaled its evening breath up through the floorboards — cardamom and frying onions, the muffled clatter of a kitchen." | | 3 | "Lucien crossed the threshold the way he did everything — without hurry, as though the room had been waiting for him." | | 4 | "That was the thing she'd forgotten — or made herself forget — about how he could change, how the polish could fall away in an instant and leave something underneath that was older and more careful and harder to look at directly." | | 5 | "He was very careful, always, about touching her without permission — it was one of the things she'd held against him, and one of the things she'd never admitted she loved." |
| |
| 96.01% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 808 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 36 | | adverbRatio | 0.04455445544554455 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.011138613861386138 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 75 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 75 | | mean | 16.31 | | std | 12.49 | | cv | 0.766 | | sampleLengths | | 0 | 39 | | 1 | 27 | | 2 | 15 | | 3 | 16 | | 4 | 23 | | 5 | 3 | | 6 | 2 | | 7 | 23 | | 8 | 8 | | 9 | 28 | | 10 | 10 | | 11 | 15 | | 12 | 21 | | 13 | 24 | | 14 | 24 | | 15 | 5 | | 16 | 5 | | 17 | 3 | | 18 | 5 | | 19 | 31 | | 20 | 21 | | 21 | 36 | | 22 | 3 | | 23 | 9 | | 24 | 8 | | 25 | 20 | | 26 | 3 | | 27 | 16 | | 28 | 5 | | 29 | 10 | | 30 | 42 | | 31 | 5 | | 32 | 32 | | 33 | 12 | | 34 | 15 | | 35 | 6 | | 36 | 21 | | 37 | 33 | | 38 | 5 | | 39 | 4 | | 40 | 11 | | 41 | 14 | | 42 | 42 | | 43 | 4 | | 44 | 16 | | 45 | 5 | | 46 | 1 | | 47 | 1 | | 48 | 39 | | 49 | 31 |
| |
| 60.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.4266666666666667 | | totalSentences | 75 | | uniqueOpeners | 32 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 52 | | matches | | 0 | "Of course she knew that." | | 1 | "Then the floor, which betrayed" |
| | ratio | 0.038 | |
| 50.77% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 52 | | matches | | 0 | "His mismatched eyes — one" | | 1 | "Her full name, the way" | | 2 | "She got as far as" | | 3 | "she said instead" | | 4 | "He tilted his head, the" | | 5 | "She knew that." | | 6 | "She stepped back anyway, because" | | 7 | "He took in the flat" | | 8 | "She didn't want him reading" | | 9 | "He turned, and the lazy" | | 10 | "She crossed her arms" | | 11 | "Her voice came out steadier" | | 12 | "She heard the bitterness and" | | 13 | "She didn't finish that one" | | 14 | "She turned away instead, toward" | | 15 | "He did not touch her." | | 16 | "He was very careful, always," | | 17 | "he said, A pause" | | 18 | "His reflection appeared beside hers" | | 19 | "He sounded almost rueful" |
| | ratio | 0.423 | |
| 46.54% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 43 | | totalSentences | 52 | | matches | | 0 | "The third deadbolt gave with" | | 1 | "Lucien Moreau looked exactly as" | | 2 | "Charcoal suit, no wrinkles, the" | | 3 | "The bare bulb above him" | | 4 | "His mismatched eyes — one" | | 5 | "Her full name, the way" | | 6 | "She got as far as" | | 7 | "she said instead" | | 8 | "He tilted his head, the" | | 9 | "Ptolemy appeared from somewhere behind" | | 10 | "She knew that." | | 11 | "She stepped back anyway, because" | | 12 | "Lucien crossed the threshold the" | | 13 | "He took in the flat" | | 14 | "The single lamp." | | 15 | "The mug of tea going" | | 16 | "Rory shut the door, slid" | | 17 | "Force of habit." | | 18 | "She didn't want him reading" | | 19 | "He turned, and the lazy" |
| | ratio | 0.827 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 52 | | matches | (empty) | | ratio | 0 | |
| 28.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 4 | | matches | | 0 | "The third deadbolt gave with a thunk that echoed down the narrow stairwell, and Rory pulled the door open expecting Eva, or the delivery she'd forgotten she'd o…" | | 1 | "Ptolemy appeared from somewhere behind her ankles, tail high, and wound a slow figure-eight between her feet as if to vouch for the visitor." | | 2 | "She turned away instead, toward the window and the orange wash of Brick Lane below, the late buses and the boys outside the bagel shop and the rain that had sta…" | | 3 | "Then the floor, which betrayed everyone in this flat eventually, gave a low groan under his weight as he crossed to her." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 34 | | tagDensity | 0.294 | | leniency | 0.588 | | rawRatio | 0.1 | | effectiveRatio | 0.059 | |