| 85.71% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 2 | | adverbTags | | 0 | "His accent curled around [around]" | | 1 | "His thumb stroked once [once]" |
| | dialogueSentences | 35 | | tagDensity | 0.371 | | leniency | 0.743 | | rawRatio | 0.154 | | effectiveRatio | 0.114 | |
| 87.38% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1585 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "tightly" | | 1 | "carefully" | | 2 | "suddenly" | | 3 | "lightly" |
| |
| 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) | |
| 58.99% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1585 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "intensity" | | 1 | "pulsed" | | 2 | "resolve" | | 3 | "warmth" | | 4 | "pulse" | | 5 | "unreadable" | | 6 | "flickered" | | 7 | "calibrated" | | 8 | "stomach" | | 9 | "electric" | | 10 | "measured" | | 11 | "peril" |
| |
| 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 | 90 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 90 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1576 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 99.86% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 1097 | | uniqueNames | 8 | | maxNameDensity | 1 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 11 | | Lucien | 7 | | Moreau | 1 | | Eva | 3 | | Brick | 3 | | Lane | 3 | | Ptolemy | 3 | | French | 1 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Ptolemy" |
| | places | | | globalScore | 0.999 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1576 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 112 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 33.53 | | std | 22.15 | | cv | 0.66 | | sampleLengths | | 0 | 37 | | 1 | 68 | | 2 | 7 | | 3 | 51 | | 4 | 65 | | 5 | 59 | | 6 | 27 | | 7 | 63 | | 8 | 5 | | 9 | 20 | | 10 | 25 | | 11 | 37 | | 12 | 34 | | 13 | 47 | | 14 | 35 | | 15 | 5 | | 16 | 40 | | 17 | 6 | | 18 | 40 | | 19 | 39 | | 20 | 30 | | 21 | 18 | | 22 | 61 | | 23 | 27 | | 24 | 69 | | 25 | 47 | | 26 | 7 | | 27 | 25 | | 28 | 23 | | 29 | 50 | | 30 | 21 | | 31 | 11 | | 32 | 34 | | 33 | 73 | | 34 | 10 | | 35 | 50 | | 36 | 32 | | 37 | 10 | | 38 | 1 | | 39 | 12 | | 40 | 5 | | 41 | 53 | | 42 | 99 | | 43 | 17 | | 44 | 6 | | 45 | 34 | | 46 | 41 |
| |
| 93.57% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 90 | | matches | | 0 | "been carved" | | 1 | "was concealed" | | 2 | "was unlocked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 180 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 112 | | ratio | 0.063 | | matches | | 0 | "She twisted the handle and pulled the door open, already halfway through muttering that if this was another delivery mix-up from the curry house downstairs she was going to—" | | 1 | "Heterochromatic eyes—one amber, one black as wet ink—fixed on her with the quiet intensity of a man who had already catalogued every possible exit." | | 2 | "He glanced past her shoulder at the chaos of Eva’s flat—scrolls stacked like unstable towers, research notes pinned to the walls with coloured blades, books left open on every horizontal surface." | | 3 | "The memory hit hard and unbidden—rain-slick alley off Brick Lane, her blade at his collar, the way his pulse had beaten steady against the steel while he smiled like he’d just found something priceless." | | 4 | "Something flickered across his face—regret or want or both, braided too tightly to separate." | | 5 | "A slow smile curved his mouth—genuine this time, edged with something almost fond." | | 6 | "The kiss landed soft at first—testing, remembering—then deepened with six months of missing and anger and the particular heat of two people who had once known exactly how the other tasted after midnight arguments." |
| |
| 84.64% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1112 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 64 | | adverbRatio | 0.05755395683453238 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.013489208633093525 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 14.07 | | std | 9.11 | | cv | 0.647 | | sampleLengths | | 0 | 8 | | 1 | 29 | | 2 | 20 | | 3 | 11 | | 4 | 13 | | 5 | 24 | | 6 | 7 | | 7 | 31 | | 8 | 20 | | 9 | 6 | | 10 | 17 | | 11 | 5 | | 12 | 21 | | 13 | 16 | | 14 | 11 | | 15 | 31 | | 16 | 17 | | 17 | 5 | | 18 | 6 | | 19 | 16 | | 20 | 23 | | 21 | 5 | | 22 | 35 | | 23 | 5 | | 24 | 15 | | 25 | 5 | | 26 | 6 | | 27 | 19 | | 28 | 5 | | 29 | 32 | | 30 | 8 | | 31 | 7 | | 32 | 19 | | 33 | 34 | | 34 | 6 | | 35 | 7 | | 36 | 13 | | 37 | 22 | | 38 | 5 | | 39 | 12 | | 40 | 6 | | 41 | 11 | | 42 | 11 | | 43 | 6 | | 44 | 10 | | 45 | 30 | | 46 | 15 | | 47 | 24 | | 48 | 13 | | 49 | 10 |
| |
| 61.90% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.41964285714285715 | | totalSentences | 112 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 85 | | matches | | 0 | "Instead she heard herself say," | | 1 | "Only one pace, but the" | | 2 | "Of course he knew she" | | 3 | "Of course he had waited" | | 4 | "Instead she let her eyes" | | 5 | "Somewhere a scroll tower tipped" |
| | ratio | 0.071 | |
| 69.41% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 85 | | matches | | 0 | "She twisted the handle and" | | 1 | "She should slam the door." | | 2 | "She should throw every deadbolt" | | 3 | "His accent curled around the" | | 4 | "He glanced past her shoulder" | | 5 | "She stepped aside without answering." | | 6 | "He didn’t shed his coat." | | 7 | "He simply stood in the" | | 8 | "She crossed her arms" | | 9 | "His amber eye caught the" | | 10 | "He stepped closer" | | 11 | "They had become lovers that" | | 12 | "They had unfinished business long" | | 13 | "He had closed the distance" | | 14 | "She refused to soften the" | | 15 | "His black eye stayed fixed" | | 16 | "He reached into his inner" | | 17 | "She walked past him toward" | | 18 | "She extracted the folded vellum," | | 19 | "She didn’t hand it over" |
| | ratio | 0.376 | |
| 60.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 85 | | matches | | 0 | "The third deadbolt snicked free" | | 1 | "She twisted the handle and" | | 2 | "Lucien Moreau stood on the" | | 3 | "Platinum hair slicked back without" | | 4 | "The smell of cumin and" | | 5 | "Ptolemy the tabby padded over," | | 6 | "Rory’s grip tightened on the" | | 7 | "A crescent scar on her" | | 8 | "She should slam the door." | | 9 | "She should throw every deadbolt" | | 10 | "His accent curled around the" | | 11 | "He glanced past her shoulder" | | 12 | "She stepped aside without answering." | | 13 | "The door clicked shut behind" | | 14 | "Lucien set his ivory-handled cane" | | 15 | "He didn’t shed his coat." | | 16 | "He simply stood in the" | | 17 | "She crossed her arms" | | 18 | "His amber eye caught the" | | 19 | "Rory barked a short laugh." |
| | ratio | 0.8 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 85 | | matches | (empty) | | ratio | 0 | |
| 47.62% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 6 | | matches | | 0 | "Heterochromatic eyes—one amber, one black as wet ink—fixed on her with the quiet intensity of a man who had already catalogued every possible exit." | | 1 | "Ptolemy the tabby padded over, tail high, and wound around Lucien’s polished shoes as though the half-demon had never left." | | 2 | "Lucien set his ivory-handled cane against the wall with the care of a man who knew exactly what was concealed inside the shaft." | | 3 | "Rory turned away, snatching up a stack of notes that didn’t need straightening." | | 4 | "The kiss landed soft at first—testing, remembering—then deepened with six months of missing and anger and the particular heat of two people who had once known e…" | | 5 | "He brushed his mouth over the crescent scar on her left wrist as if making a vow." |
| |
| 48.08% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 2 | | matches | | 0 | "she heard, voice cool and almost steady," | | 1 | "His thumb stroked once, slow" |
| |
| 35.71% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 4 | | fancyTags | | 0 | "she heard (hear)" | | 1 | "She refused (refuse)" | | 2 | "His voice (his voice)" | | 3 | "she murmured (murmur)" |
| | dialogueSentences | 35 | | tagDensity | 0.229 | | leniency | 0.457 | | rawRatio | 0.5 | | effectiveRatio | 0.229 | |