| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 90.66% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2141 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "lightly" | | 1 | "suddenly" | | 2 | "very" | | 3 | "completely" |
| |
| 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) | |
| 36.95% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2141 | | totalAiIsms | 27 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | word | "carried the weight" | | count | 1 |
| | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | |
| | highlights | | 0 | "tracing" | | 1 | "vibrated" | | 2 | "weight" | | 3 | "echoed" | | 4 | "raced" | | 5 | "flicked" | | 6 | "sentinel" | | 7 | "stomach" | | 8 | "familiar" | | 9 | "cataloged" | | 10 | "silence" | | 11 | "unreadable" | | 12 | "carried the weight" | | 13 | "etched" | | 14 | "pulse" | | 15 | "racing" | | 16 | "traced" | | 17 | "perfect" | | 18 | "marble" | | 19 | "thundered" | | 20 | "charged" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 93 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 93 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 116 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 73 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2137 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 1443 | | uniqueNames | 9 | | maxNameDensity | 0.76 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Moreau | 1 | | Eva | 2 | | French | 1 | | English | 1 | | Lucien | 11 | | Ptolemy | 8 | | Lane | 2 | | Brick | 2 | | Aurora | 9 |
| | persons | | 0 | "Moreau" | | 1 | "Eva" | | 2 | "Lucien" | | 3 | "Ptolemy" | | 4 | "Aurora" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 94.44% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 90 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like surrender, but the three dead" | | 1 | "felt like heated marble under her touch" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.468 | | wordCount | 2137 | | matches | | 0 | "not a caress but a deliberate test" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 116 | | matches | | 0 | "straighten that errant" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 55 | | mean | 38.85 | | std | 20.8 | | cv | 0.535 | | sampleLengths | | 0 | 76 | | 1 | 5 | | 2 | 1 | | 3 | 52 | | 4 | 8 | | 5 | 75 | | 6 | 11 | | 7 | 26 | | 8 | 61 | | 9 | 52 | | 10 | 7 | | 11 | 35 | | 12 | 16 | | 13 | 45 | | 14 | 18 | | 15 | 56 | | 16 | 9 | | 17 | 31 | | 18 | 31 | | 19 | 23 | | 20 | 32 | | 21 | 32 | | 22 | 63 | | 23 | 14 | | 24 | 72 | | 25 | 8 | | 26 | 50 | | 27 | 34 | | 28 | 24 | | 29 | 51 | | 30 | 18 | | 31 | 44 | | 32 | 47 | | 33 | 38 | | 34 | 36 | | 35 | 73 | | 36 | 39 | | 37 | 45 | | 38 | 40 | | 39 | 56 | | 40 | 64 | | 41 | 17 | | 42 | 52 | | 43 | 44 | | 44 | 63 | | 45 | 20 | | 46 | 27 | | 47 | 53 | | 48 | 79 | | 49 | 26 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 93 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 223 | | matches | (empty) | |
| 44.33% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 1 | | flaggedSentences | 4 | | totalSentences | 116 | | ratio | 0.034 | | matches | | 0 | "His slicked-back platinum hair held its shape despite the downpour outside, and those heterochromatic eyes—one amber, one black—fixed on her without flinching." | | 1 | "The tailored lines of his suit hugged his frame in a way that dragged memories forward uninvited—the press of that same fabric under her palms, the heat beneath it, the way his voice had dropped into French when words in English failed him." | | 2 | "Her height gave her no advantage in the cramped room; Lucien's presence seemed to expand until the walls pressed in." | | 3 | "The history pressed against her ribs—nights spent laughing over cheap wine in this same flat while Eva was away, the first time his cane clattered to the floor because he needed both hands on her waist, the morning silence that followed weeks later like a blade." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1456 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 42 | | adverbRatio | 0.028846153846153848 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.005494505494505495 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 116 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 116 | | mean | 18.42 | | std | 12.47 | | cv | 0.677 | | sampleLengths | | 0 | 14 | | 1 | 21 | | 2 | 19 | | 3 | 22 | | 4 | 5 | | 5 | 1 | | 6 | 11 | | 7 | 13 | | 8 | 28 | | 9 | 8 | | 10 | 10 | | 11 | 21 | | 12 | 20 | | 13 | 24 | | 14 | 11 | | 15 | 26 | | 16 | 8 | | 17 | 16 | | 18 | 16 | | 19 | 21 | | 20 | 15 | | 21 | 7 | | 22 | 30 | | 23 | 7 | | 24 | 21 | | 25 | 14 | | 26 | 16 | | 27 | 11 | | 28 | 11 | | 29 | 23 | | 30 | 18 | | 31 | 13 | | 32 | 43 | | 33 | 9 | | 34 | 26 | | 35 | 5 | | 36 | 31 | | 37 | 8 | | 38 | 15 | | 39 | 14 | | 40 | 6 | | 41 | 12 | | 42 | 32 | | 43 | 13 | | 44 | 16 | | 45 | 34 | | 46 | 14 | | 47 | 6 | | 48 | 9 | | 49 | 31 |
| |
| 54.60% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 0 | | diversityRatio | 0.3275862068965517 | | totalSentences | 116 | | uniqueOpeners | 38 | |
| 35.84% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 93 | | matches | | 0 | "Then she filled the kettle" |
| | ratio | 0.011 | |
| 69.46% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 93 | | matches | | 0 | "His slicked-back platinum hair held" | | 1 | "He offered a slight nod." | | 2 | "She tightened her grip on" | | 3 | "She had come here tonight" | | 4 | "She exhaled through her nose" | | 5 | "He crossed into the room," | | 6 | "She kept her back to" | | 7 | "His gaze lingered on a" | | 8 | "She spun to face him," | | 9 | "Her straight black hair swung" | | 10 | "His mismatched eyes narrowed, but" | | 11 | "She shut the tap off" | | 12 | "He left the cane where" | | 13 | "She dried the mug with" | | 14 | "Her gaze dropped to the" | | 15 | "She laughed once, the sound" | | 16 | "She killed the flame and" | | 17 | "Their fingers met on the" | | 18 | "She yanked back, but not" | | 19 | "His knuckles whitened around the" |
| | ratio | 0.376 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 89 | | totalSentences | 93 | | matches | | 0 | "The door swung inward after" | | 1 | "Aurora stood there, one hand" | | 2 | "Lucien Moreau leaned lightly on" | | 3 | "His slicked-back platinum hair held" | | 4 | "He offered a slight nod." | | 5 | "She tightened her grip on" | | 6 | "The small crescent scar on" | | 7 | "Ptolemy slinked out from behind" | | 8 | "Aurora shifted her weight, blocking" | | 9 | "The aroma of curry from" | | 10 | "Books and research notes covered" | | 11 | "She had come here tonight" | | 12 | "Lucien tapped the tip of" | | 13 | "She exhaled through her nose" | | 14 | "The movement felt like surrender," | | 15 | "He crossed into the room," | | 16 | "Ptolemy circled his ankles twice" | | 17 | "Aurora shut the door and" | | 18 | "The clicks echoed in the" | | 19 | "She kept her back to" |
| | ratio | 0.957 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 93 | | matches | (empty) | | ratio | 0 | |
| 60.04% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 69 | | technicalSentenceCount | 8 | | matches | | 0 | "Ptolemy slinked out from behind a teetering stack of scrolls, took one look at the visitor, and let out a low growl that vibrated through the cramped flat." | | 1 | "The tailored lines of his suit hugged his frame in a way that dragged memories forward uninvited—the press of that same fabric under her palms, the heat beneath…" | | 2 | "Every motion kept her eyes away from him, but she felt his stare tracking the line of her neck, the set of her shoulders, the quick movements that betrayed the …" | | 3 | "Attraction twisted low in her stomach, familiar and unwelcome, tangled tight with the hurt that had kept her up too many nights in this very flat." | | 4 | "Ptolemy jumped down from the sill and wove between their chairs, rubbing against Lucien's leg as if the half-demon carried catnip in his veins." | | 5 | "Ptolemy chose her lap this time, kneading tiny claws into her thigh as if to anchor her in place." | | 6 | "The history pressed against her ribs—nights spent laughing over cheap wine in this same flat while Eva was away, the first time his cane clattered to the floor …" | | 7 | "Outside, Brick Lane carried on its noisy life, oblivious to the two figures standing motionless amid the chaos of paper and memory, breaths syncing, bodies lean…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |