| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.15 | | leniency | 0.3 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.88% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1096 | | 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) | |
| 90.88% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1096 | | totalAiIsms | 2 | | found | | | highlights | | |
| 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 | 41 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 41 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 60 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1069 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 80.56% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 792 | | uniqueNames | 12 | | maxNameDensity | 1.39 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 5 | | Golden | 2 | | Empress | 2 | | Brick | 1 | | Lane | 1 | | Evan | 4 | | Lucien | 11 | | Avaros | 1 | | Ptolemy | 4 | | Cardiff | 2 | | Xs | 1 | | London | 1 |
| | persons | | 0 | "Eva" | | 1 | "Evan" | | 2 | "Lucien" | | 3 | "Ptolemy" |
| | places | | 0 | "Golden" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Avaros" | | 4 | "Cardiff" | | 5 | "London" |
| | globalScore | 0.806 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 39 | | 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 | 1069 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 60 | | matches | (empty) | |
| 94.12% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 15 | | mean | 71.27 | | std | 34.17 | | cv | 0.479 | | sampleLengths | | 0 | 43 | | 1 | 112 | | 2 | 30 | | 3 | 82 | | 4 | 39 | | 5 | 97 | | 6 | 34 | | 7 | 150 | | 8 | 57 | | 9 | 75 | | 10 | 49 | | 11 | 69 | | 12 | 32 | | 13 | 96 | | 14 | 104 |
| |
| 96.71% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 41 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 137 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 2 | | flaggedSentences | 13 | | totalSentences | 60 | | ratio | 0.217 | | matches | | 0 | "I’d thought I’d shaken him three months prior, when he vanished mid-negotiation with a vampire clan that’d targeted my delivery route—left me hiding in a skip behind Golden Empress, my left wrist’s crescent scar throbbing from where the vampire’s claw had nicked it while I fumbled for a delivery bag’s hidden pepper spray." | | 1 | "Lucien’s amber eye narrows; his black eye glints like polished obsidian in the streetlight." | | 2 | "He steps forward, his suit’s fabric brushing my arm, and I flinch back—memories of his sudden disappearance flooding in, how I’d called every number he’d given me only to hit dead lines, how I’d spent three nights checking Silas’ bar for any sign of him before Eva talked me into laying low." | | 3 | "I nod to the crumpled flyer on Eva’s coffee table—one I’d taped there last week, a blurry photo of Evan loitering outside Silas’ bar, his jaw set in the same angry line that used to make me flinch before I fled Cardiff." | | 4 | "Lucien’s gaze follows mine, his cane’s handle twisting slightly—his tell, when he’s holding back a truth." | | 5 | "I step back, my bare feet pressing into a crumpled scroll of Eva’s supernatural research—something about half-demons from Avaros, Lucien’s father’s realm." | | 6 | "My throat tightens; I rub my left wrist’s scar, the memory of Evan’s grip on it flooding back—he’d slammed my hand into a kitchen counter when I tried to leave, the shard of a broken mug leaving the crescent mark." | | 7 | "Lucien steps inside, his cane’s blade edge grazing the doorframe before he snaps it back into place—proof he’s prepared for a fight." | | 8 | "The flat’s main room crams into a narrow space, its walls plastered with Eva’s scrawled notes—cross-referenced demon sigils, delivery route maps marked with red Xs where supernatural threats had struck, photos of Cardiff’s skyline taped next to London’s." | | 9 | "Lucien’s cane taps the floor once, a signal I’d learned during our brief alliance—stay alert." | | 10 | "Lucien grabs my wrist, his touch burning slightly—a hint of his demon blood seeping through his skin." | | 11 | "Lucien pulls a small silver locket from his suit pocket—one I’d lost during the vampire skirmish, the one with a photo of my parents inside." | | 12 | "A shadow stretches up the brickwork, its form twisting into Evan’s silhouette—horns sprouting from his temples, his hands clawed like the vampire’s that’d nicked my wrist." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 413 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 11 | | adverbRatio | 0.026634382566585957 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.004842615012106538 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 60 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 60 | | mean | 17.82 | | std | 11.11 | | cv | 0.624 | | sampleLengths | | 0 | 23 | | 1 | 20 | | 2 | 53 | | 3 | 15 | | 4 | 20 | | 5 | 24 | | 6 | 4 | | 7 | 6 | | 8 | 20 | | 9 | 16 | | 10 | 14 | | 11 | 52 | | 12 | 16 | | 13 | 18 | | 14 | 5 | | 15 | 42 | | 16 | 16 | | 17 | 22 | | 18 | 17 | | 19 | 6 | | 20 | 11 | | 21 | 17 | | 22 | 2 | | 23 | 40 | | 24 | 28 | | 25 | 22 | | 26 | 38 | | 27 | 20 | | 28 | 22 | | 29 | 7 | | 30 | 28 | | 31 | 6 | | 32 | 13 | | 33 | 13 | | 34 | 15 | | 35 | 28 | | 36 | 3 | | 37 | 25 | | 38 | 6 | | 39 | 15 | | 40 | 4 | | 41 | 26 | | 42 | 13 | | 43 | 17 | | 44 | 9 | | 45 | 4 | | 46 | 18 | | 47 | 10 | | 48 | 25 | | 49 | 12 |
| |
| 45.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.3 | | totalSentences | 60 | | uniqueOpeners | 18 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 40 | | matches | (empty) | | ratio | 0 | |
| 10.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 40 | | matches | | 0 | "I yank the third deadbolt" | | 1 | "I’d thought I’d shaken him" | | 2 | "I grip the doorframe, my" | | 3 | "He steps forward, his suit’s" | | 4 | "I nod to the crumpled" | | 5 | "I step back, my bare" | | 6 | "I grab a nearby stack" | | 7 | "My throat tightens; I rub" | | 8 | "I’d lied to my parents" | | 9 | "I drop the stack of" | | 10 | "They thud to the floor," | | 11 | "I reach for the delivery" | | 12 | "My blood runs cold." | | 13 | "I’d worked with the nephew" | | 14 | "I’d thought he was just" | | 15 | "I yank away, my scar" | | 16 | "He hands it to me," | | 17 | "I’d thought it was gone" | | 18 | "I rush to the window," | | 19 | "He locks eyes with me," |
| | ratio | 0.525 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 40 | | totalSentences | 40 | | matches | | 0 | "I yank the third deadbolt" | | 1 | "Lucien stands on the step," | | 2 | "I’d thought I’d shaken him" | | 3 | "Curry steam curls through the" | | 4 | "Ptolemy’s tabby form streaks from" | | 5 | "Lucien’s ivory-handled cane taps the" | | 6 | "I grip the doorframe, my" | | 7 | "Lucien’s amber eye narrows; his" | | 8 | "He steps forward, his suit’s" | | 9 | "I nod to the crumpled" | | 10 | "Lucien’s gaze follows mine, his" | | 11 | "I step back, my bare" | | 12 | "I grab a nearby stack" | | 13 | "My throat tightens; I rub" | | 14 | "I’d lied to my parents" | | 15 | "Lucien steps inside, his cane’s" | | 16 | "The flat’s main room crams" | | 17 | "A half-eaten plate of samosas" | | 18 | "I drop the stack of" | | 19 | "They thud to the floor," |
| | ratio | 1 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 40 | | matches | (empty) | | ratio | 0 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 4 | | matches | | 0 | "I’d thought I’d shaken him three months prior, when he vanished mid-negotiation with a vampire clan that’d targeted my delivery route—left me hiding in a skip b…" | | 1 | "Lucien’s gaze follows mine, his cane’s handle twisting slightly—his tell, when he’s holding back a truth." | | 2 | "Lucien grabs my wrist, his touch burning slightly—a hint of his demon blood seeping through his skin." | | 3 | "A shadow stretches up the brickwork, its form twisting into Evan’s silhouette—horns sprouting from his temples, his hands clawed like the vampire’s that’d nicke…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |