| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 3 | | adverbTags | | 0 | "The hallway smelled like [like]" | | 1 | "She gestured around [around]" | | 2 | "He moved further [further]" |
| | dialogueSentences | 62 | | tagDensity | 0.403 | | leniency | 0.806 | | rawRatio | 0.12 | | effectiveRatio | 0.097 | |
| 93.20% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1470 | | 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) | |
| 79.59% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1470 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "weight" | | 1 | "ensure" | | 2 | "sense of" | | 3 | "silence" | | 4 | "stomach" | | 5 | "calculated" |
| |
| 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 | 89 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 89 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 124 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1452 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 1001 | | uniqueNames | 11 | | maxNameDensity | 0.8 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Chapter | 1 | | Seven | 1 | | Reckoning | 1 | | Rory | 8 | | Marseille | 1 | | Lucien | 5 | | Moreau | 2 | | Eva | 2 | | Ptolemy | 3 | | Tap-tap | 1 | | London | 1 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Ptolemy" | | 5 | "Tap-tap" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 29.03% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 3 | | matches | | 0 | "smelled like tumeric and old wood, the kin" | | 1 | "felt like it was suffocating her" | | 2 | "tasted like goodbye and petrol and the ki" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 2.066 | | wordCount | 1452 | | matches | | 0 | "not the tentative tap of a neighbour, but something deliberate" | | 1 | "Not an invitation, but the admission of defeat" | | 2 | "not just observed, but parsed, her fears catalogued" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 124 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 58 | | mean | 25.03 | | std | 19.92 | | cv | 0.796 | | sampleLengths | | 0 | 5 | | 1 | 11 | | 2 | 40 | | 3 | 40 | | 4 | 17 | | 5 | 7 | | 6 | 51 | | 7 | 21 | | 8 | 14 | | 9 | 43 | | 10 | 5 | | 11 | 65 | | 12 | 5 | | 13 | 41 | | 14 | 53 | | 15 | 5 | | 16 | 50 | | 17 | 4 | | 18 | 50 | | 19 | 18 | | 20 | 26 | | 21 | 1 | | 22 | 3 | | 23 | 33 | | 24 | 18 | | 25 | 27 | | 26 | 3 | | 27 | 40 | | 28 | 8 | | 29 | 39 | | 30 | 68 | | 31 | 15 | | 32 | 17 | | 33 | 46 | | 34 | 5 | | 35 | 69 | | 36 | 22 | | 37 | 57 | | 38 | 3 | | 39 | 46 | | 40 | 31 | | 41 | 29 | | 42 | 19 | | 43 | 3 | | 44 | 22 | | 45 | 3 | | 46 | 51 | | 47 | 1 | | 48 | 47 | | 49 | 3 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 89 | | matches | | |
| 84.39% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 173 | | matches | | 0 | "was suffocating" | | 1 | "was watching" | | 2 | "was being" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 124 | | ratio | 0.065 | | matches | | 0 | "She'd been halfway through her tea when the knock came—not the tentative tap of a neighbour, but something deliberate." | | 1 | "That was Lucien all over—present tense, no apologies, just facts that settled into your chest like stones." | | 2 | "He turned to face her, and the light from the table lamp caught the heterochromia at an angle that made him look like two different people—one amber and warm, one black as a well." | | 3 | "She'd loved him for that once—that sense that he could protect her from anything, that he would burn the world down if she asked nicely enough." | | 4 | "\"I chose many things where you were concerned.\" His black eye fixed on her, and she had the unsettling sense of being truly seen—not just observed, but parsed, her fears catalogued and filed away in whatever impossible architecture his mind used for such things." | | 5 | "Inside, only the sound of Ptolemy's tail hitting the windowsill—tap-tap, tap-tap, like a clock counting down." | | 6 | "His hand lifted to her face, and she let him—stupid, she was so stupid—let his thumb brush across her cheekbone where tears had begun without her permission." | | 7 | "The knock came at the door—sharp, authoritative." |
| |
| 90.30% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1018 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 52 | | adverbRatio | 0.05108055009823183 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.0068762278978389 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 124 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 124 | | mean | 11.71 | | std | 9.15 | | cv | 0.782 | | sampleLengths | | 0 | 16 | | 1 | 19 | | 2 | 1 | | 3 | 15 | | 4 | 2 | | 5 | 3 | | 6 | 20 | | 7 | 20 | | 8 | 17 | | 9 | 7 | | 10 | 30 | | 11 | 9 | | 12 | 12 | | 13 | 11 | | 14 | 4 | | 15 | 6 | | 16 | 8 | | 17 | 6 | | 18 | 24 | | 19 | 7 | | 20 | 8 | | 21 | 4 | | 22 | 5 | | 23 | 17 | | 24 | 10 | | 25 | 30 | | 26 | 8 | | 27 | 5 | | 28 | 14 | | 29 | 27 | | 30 | 3 | | 31 | 19 | | 32 | 31 | | 33 | 5 | | 34 | 32 | | 35 | 10 | | 36 | 8 | | 37 | 4 | | 38 | 34 | | 39 | 6 | | 40 | 4 | | 41 | 6 | | 42 | 6 | | 43 | 12 | | 44 | 8 | | 45 | 18 | | 46 | 1 | | 47 | 3 | | 48 | 21 | | 49 | 9 |
| |
| 67.20% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.45161290322580644 | | totalSentences | 124 | | uniqueOpeners | 56 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 78 | | matches | | 0 | "Then she'd learned what it" | | 1 | "Instead, she pulled him closer," | | 2 | "Then he moved toward the" |
| | ratio | 0.038 | |
| 35.38% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 78 | | matches | | 0 | "She'd been halfway through her" | | 1 | "They always knew." | | 2 | "She pulled the door open" | | 3 | "He stood in her hallway" | | 4 | "His smile didn't reach the" | | 5 | "He'd shown up at her" | | 6 | "She'd watched him cross the" | | 7 | "He shifted his weight, and" | | 8 | "He moved through the doorway" | | 9 | "He surveyed the room: books" | | 10 | "He turned to face her," | | 11 | "He'd always been two different" | | 12 | "She gestured around herself like" | | 13 | "He moved further into the" | | 14 | "Her ex's name was another." | | 15 | "His jaw tightened" | | 16 | "He stopped in front of" | | 17 | "He turned to face her," | | 18 | "She'd loved him for that" | | 19 | "She heard the tremor in" |
| | ratio | 0.462 | |
| 36.92% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 66 | | totalSentences | 78 | | matches | | 0 | "# Chapter Seven: The Reckoning" | | 1 | "She'd been halfway through her" | | 2 | "Ptolemy had lifted his tabby" | | 3 | "They always knew." | | 4 | "The amber eye was the" | | 5 | "She pulled the door open" | | 6 | "He stood in her hallway" | | 7 | "The ivory-handled cane tapped once" | | 8 | "Rory kept the door open," | | 9 | "His smile didn't reach the" | | 10 | "The hallway smelled like tumeric" | | 11 | "Rory had never minded it" | | 12 | "That was Lucien all over—present" | | 13 | "He'd shown up at her" | | 14 | "She'd watched him cross the" | | 15 | "Something had always gone wrong" | | 16 | "He shifted his weight, and" | | 17 | "Rory stepped back." | | 18 | "He moved through the doorway" | | 19 | "He surveyed the room: books" |
| | ratio | 0.846 | |
| 64.10% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 78 | | matches | | | ratio | 0.013 | |
| 23.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 5 | | matches | | 0 | "Not an invitation, but the admission of defeat that came with knowing Lucien Moreau well enough to anticipate him." | | 1 | "He moved through the doorway with the kind of grace that made her furious, that made her notice the limp that became more pronounced when he thought no one was …" | | 2 | "He turned to face her, and the light from the table lamp caught the heterochromia at an angle that made him look like two different people—one amber and warm, o…" | | 3 | "Lucien had always operated in the spaces between legality and necessity, had always known people who could solve problems that didn't have conventional solution…" | | 4 | "Inside, only the sound of Ptolemy's tail hitting the windowsill—tap-tap, tap-tap, like a clock counting down." |
| |
| 45.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 4 | | matches | | 0 | "He shifted, and the cane bore more of his burden" | | 1 | "He moved further, his cane tapping a rhythm against the worn wooden floorboards" | | 2 | "He turned, and his expression was flat, dangerous, ancient in a way that reminded her he was only half-human" | | 3 | "He leaned, and the cane fell away" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 62 | | tagDensity | 0.113 | | leniency | 0.226 | | rawRatio | 0 | | effectiveRatio | 0 | |