| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 46 | | tagDensity | 0.283 | | leniency | 0.565 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.45% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1099 | | totalAiIsmAdverbs | 1 | | 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) | |
| 77.25% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1099 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "footsteps" | | 1 | "measured" | | 2 | "charged" | | 3 | "familiar" | | 4 | "stomach" |
| |
| 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 | 44 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 44 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 76 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1111 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 21 | | wordCount | 578 | | uniqueNames | 11 | | maxNameDensity | 0.87 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | East | 1 | | London | 1 | | Moreau | 2 | | Eva | 3 | | Marseille | 1 | | Sumerian | 1 | | Lucien | 5 | | Quieter | 1 | | Evan | 1 | | Embankment | 1 | | Ptolemy | 4 |
| | persons | | 0 | "Moreau" | | 1 | "Eva" | | 2 | "Lucien" | | 3 | "Evan" | | 4 | "Ptolemy" |
| | places | | 0 | "East" | | 1 | "London" | | 2 | "Marseille" |
| | globalScore | 1 | | windowScore | 1 | |
| 60.71% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 28 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1111 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 76 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 23.15 | | std | 22.06 | | cv | 0.953 | | sampleLengths | | 0 | 48 | | 1 | 5 | | 2 | 48 | | 3 | 4 | | 4 | 2 | | 5 | 10 | | 6 | 42 | | 7 | 3 | | 8 | 38 | | 9 | 6 | | 10 | 11 | | 11 | 76 | | 12 | 10 | | 13 | 2 | | 14 | 46 | | 15 | 40 | | 16 | 3 | | 17 | 12 | | 18 | 1 | | 19 | 73 | | 20 | 2 | | 21 | 5 | | 22 | 50 | | 23 | 8 | | 24 | 63 | | 25 | 44 | | 26 | 17 | | 27 | 19 | | 28 | 4 | | 29 | 4 | | 30 | 51 | | 31 | 12 | | 32 | 44 | | 33 | 7 | | 34 | 10 | | 35 | 3 | | 36 | 72 | | 37 | 36 | | 38 | 32 | | 39 | 4 | | 40 | 7 | | 41 | 34 | | 42 | 10 | | 43 | 2 | | 44 | 37 | | 45 | 39 | | 46 | 4 | | 47 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 44 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 92 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 76 | | ratio | 0.118 | | matches | | 0 | "Rory had flipped all three the moment she'd heard the footsteps pause outside her door — slow, measured, weighted by something heavier than shoes." | | 1 | "His mismatched eyes — one amber, one black — found hers and stayed there." | | 2 | "He crossed the threshold the way he crossed every room — as if the room should be grateful — and leaned the cane against the bookshelf, settling onto Eva's sagging sofa like it was a throne in Marseille." | | 3 | "The amber eye caught the lamplight; the black one swallowed it." | | 4 | "Ptolemy jumped onto the sofa and claimed Lucien's lap with the shamelessness of his species, and Lucien — demon-blooded fixer, dealer in secrets, man who charged five hundred quid for a rumour — stroked the cat's ears like it was the most natural thing in the world." | | 5 | "Her scar itched — the crescent on her wrist, the one from the bad summer, the one Evan had never asked about and Lucien had kissed once, wordless, in the back of a black cab on the Embankment." | | 6 | "She crossed the room and sat beside him — not close, one cushion of distance, Ptolemy sprawled between them like a fuzzy demilitarised zone." | | 7 | "She looked at him — at the rain-damp platinum hair, the careful hands, the eyes that never matched and never lied, not to her, not once." | | 8 | "He set the cat aside and turned to face her fully, and for the first time since she'd known him, Lucien Moreau looked uncertain — a small, astonishing crack in all that tailored armour." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 569 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 16 | | adverbRatio | 0.028119507908611598 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0017574692442882249 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 76 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 76 | | mean | 14.62 | | std | 13.13 | | cv | 0.898 | | sampleLengths | | 0 | 2 | | 1 | 24 | | 2 | 22 | | 3 | 5 | | 4 | 26 | | 5 | 8 | | 6 | 14 | | 7 | 4 | | 8 | 2 | | 9 | 10 | | 10 | 6 | | 11 | 19 | | 12 | 17 | | 13 | 3 | | 14 | 19 | | 15 | 19 | | 16 | 6 | | 17 | 11 | | 18 | 3 | | 19 | 38 | | 20 | 15 | | 21 | 20 | | 22 | 10 | | 23 | 2 | | 24 | 25 | | 25 | 18 | | 26 | 3 | | 27 | 29 | | 28 | 11 | | 29 | 3 | | 30 | 12 | | 31 | 1 | | 32 | 6 | | 33 | 11 | | 34 | 56 | | 35 | 2 | | 36 | 5 | | 37 | 3 | | 38 | 47 | | 39 | 6 | | 40 | 2 | | 41 | 47 | | 42 | 16 | | 43 | 38 | | 44 | 6 | | 45 | 17 | | 46 | 7 | | 47 | 12 | | 48 | 4 | | 49 | 4 |
| |
| 70.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.4473684210526316 | | totalSentences | 76 | | uniqueOpeners | 34 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 38 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 38 | | matches | | 0 | "She opened the door anyway." | | 1 | "His mismatched eyes — one" | | 2 | "She should have shut the" | | 3 | "Her hand was on the" | | 4 | "He tilted his head" | | 5 | "She stepped back." | | 6 | "He crossed the threshold the" | | 7 | "He moved them without looking," | | 8 | "she said, because offering him" | | 9 | "She pulled Eva's cheap merlot" | | 10 | "She drank instead." | | 11 | "He accepted the glass, fingers" | | 12 | "He set the glass down" | | 13 | "He looked up" | | 14 | "Her scar itched — the" | | 15 | "She curled her fingers around" | | 16 | "She crossed the room and" | | 17 | "He said it fast, before" | | 18 | "His hand stilled on Ptolemy's" | | 19 | "She looked at him —" |
| | ratio | 0.632 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 38 | | totalSentences | 38 | | matches | | 0 | "Rory had flipped all three" | | 1 | "Nobody in East London climbed" | | 2 | "She opened the door anyway." | | 3 | "Lucien Moreau stood in the" | | 4 | "Rain had darkened the shoulders" | | 5 | "His mismatched eyes — one" | | 6 | "She should have shut the" | | 7 | "Her hand was on the" | | 8 | "Ptolemy wound between her ankles" | | 9 | "He tilted his head" | | 10 | "She stepped back." | | 11 | "He crossed the threshold the" | | 12 | "The hem of his coat" | | 13 | "He moved them without looking," | | 14 | "she said, because offering him" | | 15 | "She pulled Eva's cheap merlot" | | 16 | "The words snagged" | | 17 | "She drank instead." | | 18 | "He accepted the glass, fingers" | | 19 | "He set the glass down" |
| | ratio | 1 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 38 | | matches | (empty) | | ratio | 0 | |
| 23.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 18 | | technicalSentenceCount | 3 | | matches | | 0 | "He crossed the threshold the way he crossed every room — as if the room should be grateful — and leaned the cane against the bookshelf, settling onto Eva's sagg…" | | 1 | "Ptolemy jumped onto the sofa and claimed Lucien's lap with the shamelessness of his species, and Lucien — demon-blooded fixer, dealer in secrets, man who charge…" | | 2 | "She looked at the door, at the three deadbolts she'd locked against the world, and then back at the man sitting in Eva's shabby sofa as if he'd been waiting eig…" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "He accepted, fingers brushing hers, deliberate" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 46 | | tagDensity | 0.13 | | leniency | 0.261 | | rawRatio | 0 | | effectiveRatio | 0 | |