| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 76 | | tagDensity | 0.329 | | leniency | 0.658 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 94.44% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1800 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 77.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1800 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "affection" | | 1 | "absolutely" | | 2 | "tension" | | 3 | "encounter" | | 4 | "silence" | | 5 | "weight" | | 6 | "flickered" |
| |
| 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 | 102 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 102 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "tended to" | | 2 | "began to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 153 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1808 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1145 | | uniqueNames | 18 | | maxNameDensity | 0.87 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Golden | 1 | | Empress | 1 | | Yu-Fei | 2 | | November | 1 | | Eva | 3 | | Moreau | 3 | | Ptolemy | 6 | | One | 1 | | Rory | 9 | | French-accented | 1 | | Lucien | 10 | | Books | 1 | | Brick | 1 | | Lane | 1 | | Silas | 1 | | Cardiff | 1 | | Ashworth | 1 | | London | 1 |
| | persons | | 0 | "Yu-Fei" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Ptolemy" | | 4 | "One" | | 5 | "Rory" | | 6 | "Lucien" | | 7 | "Silas" |
| | places | | 0 | "Golden" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Cardiff" | | 4 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1808 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 153 | | matches | | 0 | "Hated that he" | | 1 | "shaved that morning" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 74 | | mean | 24.43 | | std | 25.16 | | cv | 1.03 | | sampleLengths | | 0 | 64 | | 1 | 11 | | 2 | 96 | | 3 | 11 | | 4 | 42 | | 5 | 25 | | 6 | 12 | | 7 | 44 | | 8 | 11 | | 9 | 5 | | 10 | 11 | | 11 | 33 | | 12 | 60 | | 13 | 14 | | 14 | 42 | | 15 | 13 | | 16 | 13 | | 17 | 2 | | 18 | 7 | | 19 | 39 | | 20 | 91 | | 21 | 6 | | 22 | 4 | | 23 | 2 | | 24 | 1 | | 25 | 17 | | 26 | 81 | | 27 | 6 | | 28 | 9 | | 29 | 45 | | 30 | 62 | | 31 | 7 | | 32 | 5 | | 33 | 51 | | 34 | 80 | | 35 | 13 | | 36 | 13 | | 37 | 3 | | 38 | 59 | | 39 | 16 | | 40 | 10 | | 41 | 4 | | 42 | 82 | | 43 | 7 | | 44 | 54 | | 45 | 13 | | 46 | 14 | | 47 | 34 | | 48 | 6 | | 49 | 9 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 102 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 204 | | matches | (empty) | |
| 12.14% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 153 | | ratio | 0.046 | | matches | | 0 | "That was part of the problem — she read him too well, and he knew it, and it unnerved him in ways he would never admit." | | 1 | "\"Which is why I was fifteen minutes behind you and not an hour.\" His voice remained level, but something shifted behind his eyes — the amber one, the one that gave him away." | | 2 | "Outside, Brick Lane hummed with its evening chorus — car horns, fragments of conversation from the curry house below, someone laughing too loud at the corner." | | 3 | "He looked tired — a rare admission the evidence forced her to make." | | 4 | "Without it as a prop, he looked different — less composed, more human." | | 5 | "She studied him — the precise line of his collar, the faint shadow along his jaw where he had shaved that morning, the way his left hand hung at his side with the fingers slightly curled, as if still holding something he had put down." | | 6 | "The hesitation itself was an admission — he never hesitated." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 973 | | adjectiveStacks | 1 | | stackExamples | | 0 | "logical, self-preserving things" |
| | adverbCount | 31 | | adverbRatio | 0.03186022610483042 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.008221993833504625 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 153 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 153 | | mean | 11.82 | | std | 10.45 | | cv | 0.884 | | sampleLengths | | 0 | 17 | | 1 | 23 | | 2 | 24 | | 3 | 11 | | 4 | 33 | | 5 | 10 | | 6 | 31 | | 7 | 22 | | 8 | 7 | | 9 | 4 | | 10 | 15 | | 11 | 17 | | 12 | 10 | | 13 | 3 | | 14 | 3 | | 15 | 19 | | 16 | 8 | | 17 | 4 | | 18 | 23 | | 19 | 10 | | 20 | 11 | | 21 | 11 | | 22 | 5 | | 23 | 11 | | 24 | 7 | | 25 | 15 | | 26 | 4 | | 27 | 7 | | 28 | 24 | | 29 | 7 | | 30 | 2 | | 31 | 15 | | 32 | 12 | | 33 | 9 | | 34 | 5 | | 35 | 3 | | 36 | 9 | | 37 | 4 | | 38 | 26 | | 39 | 8 | | 40 | 5 | | 41 | 13 | | 42 | 2 | | 43 | 7 | | 44 | 33 | | 45 | 6 | | 46 | 17 | | 47 | 22 | | 48 | 22 | | 49 | 30 |
| |
| 50.54% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.3660130718954248 | | totalSentences | 153 | | uniqueOpeners | 56 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 85 | | matches | | 0 | "Instead she leaned against the" | | 1 | "Somewhere below, the curry house's" | | 2 | "Then he moved the cane" |
| | ratio | 0.035 | |
| 50.59% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 85 | | matches | | 0 | "She finally wrenched the bolt" | | 1 | "His ivory-handled cane hung from" | | 2 | "He wore a charcoal suit" | | 3 | "She didn't move from the" | | 4 | "He hadn't shifted from his" | | 5 | "His voice carried that particular" | | 6 | "She looked down." | | 7 | "He was right." | | 8 | "She snatched them out, kicked" | | 9 | "She tugged it down." | | 10 | "He lifted the cane from" | | 11 | "She had spent enough time" | | 12 | "His jaw tightened." | | 13 | "She always caught it." | | 14 | "His voice remained level, but" | | 15 | "She stepped closer, and the" | | 16 | "She stared at him." | | 17 | "His tone hadn't changed, but" | | 18 | "She hated that." | | 19 | "He looked tired — a" |
| | ratio | 0.424 | |
| 30.59% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 85 | | matches | | 0 | "The third deadbolt stuck the" | | 1 | "Rory wrestled with it one-handed," | | 2 | "The smell of five-spice and" | | 3 | "She finally wrenched the bolt" | | 4 | "Lucien Moreau stood in the" | | 5 | "His ivory-handled cane hung from" | | 6 | "He wore a charcoal suit" | | 7 | "She didn't move from the" | | 8 | "He hadn't shifted from his" | | 9 | "His voice carried that particular" | | 10 | "She looked down." | | 11 | "He was right." | | 12 | "She snatched them out, kicked" | | 13 | "Lucien observed, glancing at the" | | 14 | "Rory dropped the takeaway bag" | | 15 | "Ptolemy abandoned Lucien and wound" | | 16 | "Rory turned to face him," | | 17 | "The crescent scar on her" | | 18 | "She tugged it down." | | 19 | "He lifted the cane from" |
| | ratio | 0.859 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 85 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 4 | | matches | | 0 | "Lucien Moreau stood in the narrow entryway of the flat, his back to the window, Ptolemy weaving between his ankles with the shameless affection of a cat who had…" | | 1 | "She should do any of the logical, self-preserving things that the Rory who had fled Cardiff and an ex with bruised knuckles and broken promises knew how to do." | | 2 | "She studied him — the precise line of his collar, the faint shadow along his jaw where he had shaved that morning, the way his left hand hung at his side with t…" | | 3 | "And Lucien Moreau, who spoke five languages and brokered deals in London's supernatural underground with the precision of a surgeon, began to talk." |
| |
| 85.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 2 | | matches | | 0 | "He straightened, and the cane shifted to his side" | | 1 | "She sat, their knees nearly touching under the cluttered table" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 2 | | fancyTags | | 0 | "Lucien observed (observe)" | | 1 | "Lucien continued (continue)" |
| | dialogueSentences | 76 | | tagDensity | 0.132 | | leniency | 0.263 | | rawRatio | 0.2 | | effectiveRatio | 0.053 | |