| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 22 | | tagDensity | 0.182 | | leniency | 0.364 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.50% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1111 | | totalAiIsmAdverbs | 1 | | 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) | |
| 77.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1111 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "echo" | | 1 | "glint" | | 2 | "measured" | | 3 | "facade" | | 4 | "footsteps" |
| |
| 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 | 44 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 44 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 66 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1095 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 94.92% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 817 | | uniqueNames | 10 | | maxNameDensity | 1.1 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 9 | | Eva | 9 | | Lucien | 9 | | Evan | 6 | | London | 2 | | Camden | 1 | | Avaros | 1 | | Ptolemy | 3 | | Cardiff | 2 | | Bengali | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Lucien" | | 3 | "Evan" | | 4 | "Ptolemy" |
| | places | | 0 | "London" | | 1 | "Camden" | | 2 | "Cardiff" | | 3 | "Bengali" |
| | globalScore | 0.949 | | windowScore | 1 | |
| 89.02% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like a lifeline until Lucien’s arr" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1095 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 66 | | matches | (empty) | |
| 58.74% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 16 | | mean | 68.44 | | std | 24.34 | | cv | 0.356 | | sampleLengths | | 0 | 50 | | 1 | 87 | | 2 | 29 | | 3 | 106 | | 4 | 58 | | 5 | 111 | | 6 | 55 | | 7 | 81 | | 8 | 47 | | 9 | 77 | | 10 | 99 | | 11 | 55 | | 12 | 36 | | 13 | 55 | | 14 | 57 | | 15 | 92 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 44 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 130 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 1 | | flaggedSentences | 11 | | totalSentences | 66 | | ratio | 0.167 | | matches | | 0 | "His tailored charcoal suit fits like a second skin, and his ivory-handled cane taps once against the doorframe—a quiet warning." | | 1 | "Rory’s blue eyes lock on his heterochromatic pair, one amber, one black, and her left wrist tenses; the small crescent scar there catches the light as she curls her fingers around a crumpled scroll." | | 2 | "Behind her, the flat’s main room bursts with books stacked to the ceiling—mythic lore, legal textbooks, Eva’s handwritten notes scrawled on parchment." | | 3 | "Lucien pushes past her, his cane gliding over the scrolls without damaging them—his fixer’s precision." | | 4 | "She grabs a heavy leather-bound book from the nearest stack, her left wrist twisting as she lifts it—the crescent scar stings." | | 5 | "Lucien taps his cane twice against the floor, and the top of the ivory handle twists slightly—a faint glint of the hidden blade catches Rory’s eye." | | 6 | "His black eye flickers to her scar, and for a split second, his measured demeanor cracks—his lip twitches, like he’s fighting the urge to reach for her wrist." | | 7 | "Now, standing in Eva’s cramped flat, she can smell the faint iron of Avaros on him—sharp, metallic, nothing like the London air she’s grown used to." | | 8 | "Rory follows his gaze, her heart skipping a beat when she spots a shadow moving across the sign—tall, broad, the same silhouette she’d seen loitering outside Silas’ bar." | | 9 | "She stands, her hand reaching for the leather-bound book again, and freezes when she hears Evan’s voice booming up through the floorboards—clear, menacing, impossible to mistake." | | 10 | "Rory’s blue eyes lock on his heterochromatic pair, and for a split second, she sees the fear in his black eye—the same fear she’d felt when she’d fled Cardiff, when she’d hidden in Eva’s linen closet, when she’d wondered if she’d ever be safe again." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 371 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 7 | | adverbRatio | 0.018867924528301886 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.005390835579514825 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 66 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 66 | | mean | 16.59 | | std | 8.81 | | cv | 0.531 | | sampleLengths | | 0 | 11 | | 1 | 19 | | 2 | 20 | | 3 | 19 | | 4 | 20 | | 5 | 14 | | 6 | 34 | | 7 | 5 | | 8 | 7 | | 9 | 5 | | 10 | 12 | | 11 | 17 | | 12 | 22 | | 13 | 16 | | 14 | 35 | | 15 | 16 | | 16 | 15 | | 17 | 15 | | 18 | 6 | | 19 | 11 | | 20 | 11 | | 21 | 3 | | 22 | 22 | | 23 | 16 | | 24 | 21 | | 25 | 20 | | 26 | 9 | | 27 | 7 | | 28 | 2 | | 29 | 11 | | 30 | 21 | | 31 | 15 | | 32 | 4 | | 33 | 15 | | 34 | 26 | | 35 | 27 | | 36 | 28 | | 37 | 12 | | 38 | 14 | | 39 | 21 | | 40 | 4 | | 41 | 17 | | 42 | 30 | | 43 | 26 | | 44 | 21 | | 45 | 14 | | 46 | 36 | | 47 | 19 | | 48 | 9 | | 49 | 10 |
| |
| 66.16% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.42424242424242425 | | totalSentences | 66 | | uniqueOpeners | 28 | |
| 77.52% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 43 | | matches | | 0 | "Then, the front door of" |
| | ratio | 0.023 | |
| 71.16% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 43 | | matches | | 0 | "She drops the armful of" | | 1 | "His tailored charcoal suit fits" | | 2 | "She steps over the scrolls" | | 3 | "She’d fled to Eva’s place" | | 4 | "He pauses to glance at" | | 5 | "She’d spent three days hiding" | | 6 | "She’d scraped the broken ward" | | 7 | "She grabs a heavy leather-bound" | | 8 | "She sets the book down" | | 9 | "She’s seen him use it" | | 10 | "His black eye flickers to" | | 11 | "She’d spent weeks wondering if" | | 12 | "She kneels to gather the" | | 13 | "He glances at the window," | | 14 | "She’d known the deadbolts were" | | 15 | "She stands, her hand reaching" |
| | ratio | 0.372 | |
| 29.77% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 37 | | totalSentences | 43 | | matches | | 0 | "Door snaps open before Rory" | | 1 | "She drops the armful of" | | 2 | "Ptolemy, the tabby cat napping" | | 3 | "Lucien stands in the doorway," | | 4 | "His tailored charcoal suit fits" | | 5 | "Curry fumes and cardamom wrap" | | 6 | "Rory’s blue eyes lock on" | | 7 | "She steps over the scrolls" | | 8 | "A half-empty mug of chai" | | 9 | "She’d fled to Eva’s place" | | 10 | "The three deadbolts on Eva’s" | | 11 | "Lucien pushes past her, his" | | 12 | "He pauses to glance at" | | 13 | "Rory’s jaw tightens." | | 14 | "Lucien had promised to set" | | 15 | "She’d spent three days hiding" | | 16 | "She’d scraped the broken ward" | | 17 | "She grabs a heavy leather-bound" | | 18 | "She sets the book down" | | 19 | "Lucien taps his cane twice" |
| | ratio | 0.86 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 43 | | matches | | 0 | "Now, standing in Eva’s cramped" | | 1 | "Now, Lucien’s words strip that" |
| | ratio | 0.047 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 2 | | matches | | 0 | "Ptolemy, the tabby cat napping on a stack of history tomes, skitters behind a bookshelf, his claws scrabbling at paper." | | 1 | "She stands, her hand reaching for the leather-bound book again, and freezes when she hears Evan’s voice booming up through the floorboards—clear, menacing, impo…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |