| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 50 | | tagDensity | 0.36 | | leniency | 0.72 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1176 | | 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) | |
| 87.24% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1176 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "standard" | | 1 | "weight" | | 2 | "determined" |
| |
| 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 | 47 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 47 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 79 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1180 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 89.76% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 664 | | uniqueNames | 8 | | maxNameDensity | 1.2 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 5 | | Ptolemy | 5 | | One | 1 | | Rory | 5 | | Lucien | 8 | | Marseille | 1 | | Brick | 1 | | Lane | 1 |
| | persons | | 0 | "Eva" | | 1 | "Ptolemy" | | 2 | "One" | | 3 | "Rory" | | 4 | "Lucien" |
| | places | | 0 | "Marseille" | | 1 | "Brick" | | 2 | "Lane" |
| | globalScore | 0.898 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 36 | | 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 | 1180 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 79 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 25.11 | | std | 20.74 | | cv | 0.826 | | sampleLengths | | 0 | 48 | | 1 | 15 | | 2 | 16 | | 3 | 19 | | 4 | 58 | | 5 | 6 | | 6 | 48 | | 7 | 36 | | 8 | 5 | | 9 | 15 | | 10 | 1 | | 11 | 1 | | 12 | 48 | | 13 | 63 | | 14 | 7 | | 15 | 12 | | 16 | 20 | | 17 | 16 | | 18 | 1 | | 19 | 44 | | 20 | 5 | | 21 | 62 | | 22 | 34 | | 23 | 39 | | 24 | 9 | | 25 | 58 | | 26 | 14 | | 27 | 5 | | 28 | 5 | | 29 | 42 | | 30 | 69 | | 31 | 40 | | 32 | 7 | | 33 | 43 | | 34 | 18 | | 35 | 7 | | 36 | 12 | | 37 | 4 | | 38 | 74 | | 39 | 31 | | 40 | 18 | | 41 | 6 | | 42 | 21 | | 43 | 34 | | 44 | 6 | | 45 | 4 | | 46 | 34 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 47 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 105 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 79 | | ratio | 0.051 | | matches | | 0 | "\"I find things. It's the whole trade.\" His eyes moved past her shoulder into the flat — the stacks of books eating the sofa, the scrolls weighted down with mugs, Ptolemy stretched across a pile of research notes like he was guarding state secrets." | | 1 | "She leaned against the door and studied the way his knuckles sat on the ivory handle — white at the joints, no tremor in him, none at all." | | 2 | "His gaze tracked along the desk — Eva's diagrams, the red string, the photograph of the Marseille waterfront that Rory had turned face-down the week after she met him and had not turned back over." | | 3 | "\"A woman who calls herself Hélène. She works out of a shop on Fashion Street and she owes me money instead of favours, which is worse, because favours expire.\" Lucien crossed the flat in three steps and stood close enough that she caught his cologne — bergamot, and something underneath it that no human skin made." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 662 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 18 | | adverbRatio | 0.027190332326283987 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0015105740181268882 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 79 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 79 | | mean | 14.94 | | std | 12.24 | | cv | 0.819 | | sampleLengths | | 0 | 7 | | 1 | 41 | | 2 | 15 | | 3 | 14 | | 4 | 2 | | 5 | 13 | | 6 | 6 | | 7 | 44 | | 8 | 5 | | 9 | 5 | | 10 | 4 | | 11 | 6 | | 12 | 30 | | 13 | 18 | | 14 | 8 | | 15 | 28 | | 16 | 5 | | 17 | 11 | | 18 | 4 | | 19 | 1 | | 20 | 1 | | 21 | 29 | | 22 | 19 | | 23 | 15 | | 24 | 10 | | 25 | 3 | | 26 | 35 | | 27 | 7 | | 28 | 12 | | 29 | 9 | | 30 | 11 | | 31 | 16 | | 32 | 1 | | 33 | 7 | | 34 | 6 | | 35 | 31 | | 36 | 5 | | 37 | 25 | | 38 | 37 | | 39 | 3 | | 40 | 31 | | 41 | 13 | | 42 | 26 | | 43 | 9 | | 44 | 23 | | 45 | 35 | | 46 | 8 | | 47 | 6 | | 48 | 5 | | 49 | 5 |
| |
| 62.03% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4177215189873418 | | totalSentences | 79 | | uniqueOpeners | 33 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 45 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 45 | | matches | | 0 | "He raised one hand, palm" | | 1 | "She kept her hand on" | | 2 | "His eyes moved past her" | | 3 | "She leaned against the door" | | 4 | "He smiled with half his" | | 5 | "She held out her hand" | | 6 | "She shut the door on" | | 7 | "He touched nothing." | | 8 | "His gaze tracked along the" | | 9 | "He turned it up with" | | 10 | "He released the photograph" | | 11 | "She set Ptolemy on the" | | 12 | "She pressed her thumb into" | | 13 | "He leaned the cane against" | | 14 | "He said it the way" | | 15 | "He looked at the desk" | | 16 | "She moved to the window" | | 17 | "Her reflection looked back at" | | 18 | "His voice dropped" | | 19 | "She turned around." |
| | ratio | 0.556 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 42 | | totalSentences | 45 | | matches | | 0 | "The third deadbolt stuck before" | | 1 | "Rory put her shoulder into" | | 2 | "Lucien filled the narrow doorframe" | | 3 | "He raised one hand, palm" | | 4 | "She kept her hand on" | | 5 | "His eyes moved past her" | | 6 | "Both settled back on her." | | 7 | "Lucien shifted his weight onto" | | 8 | "Rory felt the flat behind" | | 9 | "She leaned against the door" | | 10 | "He smiled with half his" | | 11 | "She held out her hand" | | 12 | "She shut the door on" | | 13 | "Lucien stepped in and the" | | 14 | "He touched nothing." | | 15 | "His gaze tracked along the" | | 16 | "He turned it up with" | | 17 | "He released the photograph" | | 18 | "She set Ptolemy on the" | | 19 | "The cat circled twice and" |
| | ratio | 0.933 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 45 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 15 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 2 | | fancyTags | | 0 | "She pressed (press)" | | 1 | "she repeated (repeat)" |
| | dialogueSentences | 50 | | tagDensity | 0.08 | | leniency | 0.16 | | rawRatio | 0.5 | | effectiveRatio | 0.08 | |