| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 3 | | adverbTags | | 0 | "He turned back [back]" | | 1 | "she said quietly [quietly]" | | 2 | "His fingers curved around [around]" |
| | dialogueSentences | 70 | | tagDensity | 0.357 | | leniency | 0.714 | | rawRatio | 0.12 | | effectiveRatio | 0.086 | |
| 94.65% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1870 | | totalAiIsmAdverbs | 2 | | 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) | |
| 73.26% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1870 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "charm" | | 1 | "weight" | | 2 | "chaotic" | | 3 | "traced" | | 4 | "tension" | | 5 | "perfect" | | 6 | "pounding" | | 7 | "absolutely" |
| |
| 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 | 100 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 100 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 143 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1879 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 32 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 1226 | | uniqueNames | 11 | | maxNameDensity | 0.65 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 2 | | Moreau | 3 | | August | 1 | | Ptolemy | 3 | | Lucien | 8 | | Eva | 7 | | Paris | 2 | | French | 1 | | Brick | 2 | | Lane | 2 | | Avaros | 2 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Lucien" | | 4 | "Eva" |
| | places | | 0 | "Paris" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Avaros" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 62.28% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 57 | | glossingSentenceCount | 2 | | matches | | 0 | "er contact had apparently lost his mind" | | 1 | "quite hide" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.532 | | wordCount | 1879 | | matches | | 0 | "not an excuse,\" she said, but her voice had lost its edge" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 143 | | matches | | 0 | "was that he" | | 1 | "smile that she'd" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 77 | | mean | 24.4 | | std | 26.72 | | cv | 1.095 | | sampleLengths | | 0 | 24 | | 1 | 6 | | 2 | 88 | | 3 | 2 | | 4 | 30 | | 5 | 10 | | 6 | 28 | | 7 | 4 | | 8 | 22 | | 9 | 2 | | 10 | 31 | | 11 | 1 | | 12 | 53 | | 13 | 12 | | 14 | 20 | | 15 | 3 | | 16 | 2 | | 17 | 44 | | 18 | 53 | | 19 | 79 | | 20 | 6 | | 21 | 85 | | 22 | 6 | | 23 | 5 | | 24 | 35 | | 25 | 69 | | 26 | 5 | | 27 | 3 | | 28 | 4 | | 29 | 33 | | 30 | 68 | | 31 | 4 | | 32 | 57 | | 33 | 4 | | 34 | 3 | | 35 | 4 | | 36 | 5 | | 37 | 32 | | 38 | 6 | | 39 | 8 | | 40 | 4 | | 41 | 25 | | 42 | 58 | | 43 | 3 | | 44 | 9 | | 45 | 71 | | 46 | 31 | | 47 | 13 | | 48 | 68 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 100 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 202 | | matches | | 0 | "was standing" | | 1 | "was stepping" | | 2 | "was already crumbling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 143 | | ratio | 0.063 | | matches | | 0 | "That was what she would have done three months ago, before—" | | 1 | "Lucien entered like he was stepping onto a stage — aware of the space, aware of how he occupied it." | | 2 | "She'd spent the last three days buried in Eva's research — historical accounts of half-demon lineage, territorial disputes in Avaros, anything that might explain why a certain fixer with a nice suit and a blade in his cane had done something so monumentally stupid as to almost die for a woman who'd told him, in no uncertain terms, that whatever they had was over." | | 3 | "\"Your own things.\" He set the cane against the wall by the door, and the gesture struck her as strangely intimate — him disarming himself, even if only symbolically." | | 4 | "She'd known it was bad — she'd pieced together enough from fragments and Eva's careful briefings — but not that." | | 5 | "The amber eye caught the light from the window; the black one seemed to absorb it entirely." | | 6 | "Her wrist itched — the old scar there, the one from when she was eight and fell off a wall trying to keep up with Eva." | | 7 | "She poured water over the bags — Eva's expensive jasmine, the only nice thing in the kitchen — and turned to hand him a mug." | | 8 | "She could hear the certainty in his voice, and the thing she hated — the thing she absolutely hated — was that he was right." |
| |
| 99.83% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1219 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 49 | | adverbRatio | 0.04019688269073011 | | lyAdverbCount | 20 | | lyAdverbRatio | 0.016406890894175553 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 143 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 143 | | mean | 13.14 | | std | 12.56 | | cv | 0.956 | | sampleLengths | | 0 | 13 | | 1 | 11 | | 2 | 6 | | 3 | 23 | | 4 | 33 | | 5 | 10 | | 6 | 22 | | 7 | 2 | | 8 | 5 | | 9 | 14 | | 10 | 11 | | 11 | 4 | | 12 | 6 | | 13 | 5 | | 14 | 23 | | 15 | 4 | | 16 | 13 | | 17 | 9 | | 18 | 2 | | 19 | 27 | | 20 | 4 | | 21 | 1 | | 22 | 26 | | 23 | 27 | | 24 | 12 | | 25 | 20 | | 26 | 3 | | 27 | 2 | | 28 | 14 | | 29 | 8 | | 30 | 15 | | 31 | 7 | | 32 | 4 | | 33 | 28 | | 34 | 5 | | 35 | 5 | | 36 | 11 | | 37 | 2 | | 38 | 33 | | 39 | 44 | | 40 | 6 | | 41 | 20 | | 42 | 23 | | 43 | 5 | | 44 | 10 | | 45 | 8 | | 46 | 19 | | 47 | 6 | | 48 | 5 | | 49 | 17 |
| |
| 31.12% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 27 | | diversityRatio | 0.2937062937062937 | | totalSentences | 143 | | uniqueOpeners | 42 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 84 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 84 | | matches | | 0 | "His charcoal suit was immaculate," | | 1 | "His amber eye found hers" | | 2 | "She gripped the door frame." | | 3 | "It wasn't a question." | | 4 | "She was too controlled for" | | 5 | "He paused, tilting his head" | | 6 | "He straightened, and the full" | | 7 | "He shifted his weight, and" | | 8 | "She knew what was inside" | | 9 | "She knew a lot of" | | 10 | "She should say no." | | 11 | "She should say no and" | | 12 | "She stepped back from the" | | 13 | "He ducked slightly under the" | | 14 | "He turned back to her," | | 15 | "She'd spent the last three" | | 16 | "He set the cane against" | | 17 | "She'd been avoiding it." | | 18 | "She realized that now." | | 19 | "She looked at him." |
| | ratio | 0.56 | |
| 13.57% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 84 | | matches | | 0 | "The third deadbolt clicked back" | | 1 | "The words died in her" | | 2 | "Lucien Moreau stood in the" | | 3 | "His charcoal suit was immaculate," | | 4 | "The ivory handle of his" | | 5 | "His amber eye found hers" | | 6 | "She gripped the door frame." | | 7 | "The wood was old and" | | 8 | "It wasn't a question." | | 9 | "She was too controlled for" | | 10 | "Lucien's mouth curved, just barely." | | 11 | "He paused, tilting his head" | | 12 | "He straightened, and the full" | | 13 | "Ptolemy appeared between her ankles," | | 14 | "Lucien glanced down at the" | | 15 | "He shifted his weight, and" | | 16 | "She knew what was inside" | | 17 | "She knew a lot of" | | 18 | "She should say no." | | 19 | "She should say no and" |
| | ratio | 0.893 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 84 | | matches | | 0 | "Before the warehouse on the" | | 1 | "Before the hotel room afterward," |
| | ratio | 0.024 | |
| 48.87% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 5 | | matches | | 0 | "His charcoal suit was immaculate, not a crease in it, which was absurd given the August heat and the fact that he was standing in a stairwell that smelled perma…" | | 1 | "Before the warehouse on the outskirts of the 13th arrondissement, and the demon that had nearly taken her arm off, and Lucien putting himself between her and so…" | | 2 | "She'd spent the last three days buried in Eva's research — historical accounts of half-demon lineage, territorial disputes in Avaros, anything that might explai…" | | 3 | "Looking at his face meant looking at the sharp line of his jaw, and the way his platinum hair fell across his forehead, and the scar that traced the edge of his…" | | 4 | "She filled the kettle and set it to boil, a rote motion that gave her hands something to do." |
| |
| 45.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 4 | | matches | | 0 | "He shifted, and the cane tapped once against the floor" | | 1 | "He set, and the gesture struck her as strangely intimate — him disarming himself, even if only symbolically" | | 2 | "she said, but her voice had lost its edge" | | 3 | "she asked, not looking at him" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 15 | | fancyCount | 2 | | fancyTags | | 0 | "She pressed (press)" | | 1 | "he agreed (agree)" |
| | dialogueSentences | 70 | | tagDensity | 0.214 | | leniency | 0.429 | | rawRatio | 0.133 | | effectiveRatio | 0.057 | |