| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 24 | | tagDensity | 0.542 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1743 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 65.58% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1743 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "measured" | | 1 | "silence" | | 2 | "warmth" | | 3 | "stomach" | | 4 | "intensity" | | 5 | "pulse" | | 6 | "electric" | | 7 | "traced" | | 8 | "fluttered" | | 9 | "unravel" |
| |
| 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 | 81 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 81 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 91 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 76 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1740 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 1357 | | uniqueNames | 20 | | maxNameDensity | 0.52 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Moreau | 1 | | Ptolemy | 3 | | Rory | 7 | | Cool-headed | 2 | | Marseille | 2 | | English | 1 | | Brick | 2 | | Lane | 2 | | Eva | 1 | | Lucien | 6 | | Six | 1 | | Soho | 1 | | Yu-Fei | 1 | | Turned | 1 | | Bengali | 1 | | Carter | 1 | | Pre-Law | 1 | | Evan | 1 | | Avaros | 1 | | London | 1 |
| | persons | | 0 | "Moreau" | | 1 | "Ptolemy" | | 2 | "Rory" | | 3 | "English" | | 4 | "Eva" | | 5 | "Lucien" | | 6 | "Yu-Fei" | | 7 | "Carter" | | 8 | "Evan" |
| | places | | 0 | "Marseille" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Soho" | | 4 | "Bengali" | | 5 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 1 | | matches | | 0 | "smelled like rainstorms and expensive fail" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1740 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 91 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 54.38 | | std | 30.09 | | cv | 0.553 | | sampleLengths | | 0 | 47 | | 1 | 78 | | 2 | 8 | | 3 | 16 | | 4 | 37 | | 5 | 75 | | 6 | 86 | | 7 | 79 | | 8 | 66 | | 9 | 19 | | 10 | 82 | | 11 | 113 | | 12 | 20 | | 13 | 30 | | 14 | 105 | | 15 | 35 | | 16 | 23 | | 17 | 46 | | 18 | 32 | | 19 | 85 | | 20 | 70 | | 21 | 86 | | 22 | 72 | | 23 | 80 | | 24 | 68 | | 25 | 11 | | 26 | 44 | | 27 | 97 | | 28 | 33 | | 29 | 1 | | 30 | 51 | | 31 | 45 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 81 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 212 | | matches | | |
| 48.67% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 2 | | flaggedSentences | 3 | | totalSentences | 91 | | ratio | 0.033 | | matches | | 0 | "She could still map every hour of the last night they spent together: the Soho hotel room that smelled of gin and ink and the faint ozone of whatever power he kept leashed under his skin; the way his mismatched eyes had fixed on the crescent scar when he kissed the inside of her wrist; the precise moment she realised he was already halfway out the door in his head even while his mouth promised dawn." | | 1 | "She kissed him the way she should have the night he left—open, angry, starved—and felt the answering sound low in his throat, more vibration than voice." | | 2 | "Lucien’s smile was a slow, private thing—equal parts relief and the promise of every complicated word still waiting between them." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1384 | | adjectiveStacks | 1 | | stackExamples | | 0 | "messy, rain-soaked night," |
| | adverbCount | 52 | | adverbRatio | 0.03757225433526012 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.01083815028901734 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 91 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 91 | | mean | 19.12 | | std | 13.73 | | cv | 0.718 | | sampleLengths | | 0 | 9 | | 1 | 38 | | 2 | 19 | | 3 | 17 | | 4 | 14 | | 5 | 28 | | 6 | 8 | | 7 | 16 | | 8 | 11 | | 9 | 1 | | 10 | 25 | | 11 | 28 | | 12 | 25 | | 13 | 22 | | 14 | 6 | | 15 | 13 | | 16 | 29 | | 17 | 17 | | 18 | 21 | | 19 | 40 | | 20 | 14 | | 21 | 25 | | 22 | 23 | | 23 | 18 | | 24 | 18 | | 25 | 7 | | 26 | 16 | | 27 | 3 | | 28 | 4 | | 29 | 66 | | 30 | 12 | | 31 | 11 | | 32 | 76 | | 33 | 5 | | 34 | 2 | | 35 | 19 | | 36 | 20 | | 37 | 27 | | 38 | 3 | | 39 | 28 | | 40 | 60 | | 41 | 17 | | 42 | 16 | | 43 | 19 | | 44 | 13 | | 45 | 5 | | 46 | 5 | | 47 | 17 | | 48 | 10 | | 49 | 19 |
| |
| 65.93% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.46153846153846156 | | totalSentences | 91 | | uniqueOpeners | 42 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 77 | | matches | | 0 | "Then Ptolemy yowled from somewhere" | | 1 | "Exactly the tone she had" | | 2 | "Instead she stepped back, opened" | | 3 | "Only the residual warmth of" | | 4 | "Instead her fingers curled into" |
| | ratio | 0.065 | |
| 53.77% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 77 | | matches | | 0 | "His voice carried the same" | | 1 | "He tilted the ivory head" | | 2 | "She should have shut the" | | 3 | "She knew it the way" | | 4 | "She locked all three bolts" | | 5 | "He set his cane against" | | 6 | "She could still map every" | | 7 | "He had left before light." | | 8 | "She had spent weeks telling" | | 9 | "Her voice stayed level, professional," | | 10 | "He said it without apology" | | 11 | "She backed up until her" | | 12 | "He stopped stroking the cat" | | 13 | "she said, quieter now" | | 14 | "She hated how the admission" | | 15 | "He stopped within arm’s reach." | | 16 | "His hand lifted, hovering near" | | 17 | "She wanted to sneer." | | 18 | "She wanted to bark something" | | 19 | "Their mouths met with the" |
| | ratio | 0.416 | |
| 63.90% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 77 | | matches | | 0 | "The last bolt gave with" | | 1 | "Rory gripped the knob and" | | 2 | "Lucien Moreau filled the narrow" | | 3 | "Rain darkened the shoulders of" | | 4 | "Platinum hair, usually slicked into" | | 5 | "The words came out steady" | | 6 | "His voice carried the same" | | 7 | "He tilted the ivory head" | | 8 | "She should have shut the" | | 9 | "She knew it the way" | | 10 | "Bergamot and rain and the" | | 11 | "She locked all three bolts" | | 12 | "The one-bedroom above the Brick" | | 13 | "The air smelled of cumin" | | 14 | "A single lamp threw honey" | | 15 | "He set his cane against" | | 16 | "Water slapped the floorboards as" | | 17 | "The half-demon still looked expensive" | | 18 | "Rory crossed her arms, more" | | 19 | "A pause, just long enough" |
| | ratio | 0.792 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 77 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 11 | | matches | | 0 | "Lucien Moreau filled the narrow landing as if the cramped brick stairwell had been built expressly to frame him." | | 1 | "One amber eye and one black regarded her with the unblinking composure of a man who had measured every possible reaction before she ever turns the first lock." | | 2 | "She could still map every hour of the last night they spent together: the Soho hotel room that smelled of gin and ink and the faint ozone of whatever power he k…" | | 3 | "She had spent weeks telling herself she was finished with men who vanished, finished with the particular ache of almost." | | 4 | "The half-demon absently stroked the tabby’s wet-spiked head, long fingers gentle, an absurd softness that made Rory’s stomach twist." | | 5 | "Cool-headed Rory Carter, Pre-Law dropout, survivor of Evan’s particular brand of careful trauma, reduced to honesty by a man who smelled like rainstorms and exp…" | | 6 | "She wanted to bark something clever about fixer theatrics and half-demons who specialised in beautiful exits." | | 7 | "Their mouths met with the desperate, rattled precision of two people who had rehearsed the argument a hundred times and still lost the script the moment skin to…" | | 8 | "His hands found her waist, then the small of her back, pulling her flush against the hard plane of his body as if months of deliberate absence could be erased b…" | | 9 | "She simply looked up into mismatched eyes that had once left her without warning, and decided the night still held at least a few more hours of unfinished conve…" | | 10 | "The ordinary world of dumpling deliveries deferred itself for one messy, rain-soaked night, and Rory let her cool-headed caution unravel one careful layer at a …" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "The amber eye gleamed, restless" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 24 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0.25 | | effectiveRatio | 0.083 | |