| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 2 | | adverbTags | | 0 | "he agreed calmly [calmly]" | | 1 | "he asked finally [finally]" |
| | dialogueSentences | 51 | | tagDensity | 0.412 | | leniency | 0.824 | | rawRatio | 0.095 | | effectiveRatio | 0.078 | |
| 90.14% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1522 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "precisely" | | 1 | "suddenly" | | 2 | "slowly" |
| |
| 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) | |
| 73.72% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1522 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "silence" | | 1 | "lilt" | | 2 | "silk" | | 3 | "flicker" | | 4 | "reminder" | | 5 | "firmly" | | 6 | "desire" | | 7 | "tension" |
| |
| 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 | 77 | | matches | (empty) | |
| 87.20% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 77 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 107 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1502 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 29 | | unquotedAttributions | 0 | | matches | (empty) | |
| 96.81% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 1034 | | uniqueNames | 12 | | maxNameDensity | 1.06 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 4 | | Ptolemy | 2 | | Brick | 2 | | Lane | 2 | | Lucien | 5 | | Moreau | 1 | | Mediterranean | 1 | | Rory | 11 | | Latin | 1 | | Marseille | 2 | | Avaros | 1 | | Cardiff | 1 |
| | persons | | 0 | "Eva" | | 1 | "Ptolemy" | | 2 | "Lucien" | | 3 | "Moreau" | | 4 | "Rory" | | 5 | "Latin" | | 6 | "Avaros" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Marseille" | | 3 | "Cardiff" |
| | globalScore | 0.968 | | windowScore | 1 | |
| 63.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like armor" | | 1 | "sounded like a secret" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 2.663 | | wordCount | 1502 | | matches | | 0 | "Not particularly welcoming, but he’s accustomed to strangers now" | | 1 | "not away but closer, his cane planted firmly as he closed the distance sh" | | 2 | "not to touch, but to hover near her elbow, near" | | 3 | "not the impenetrable fixer, but the boy from Marseille who’d never asked for demon blood, wh" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 107 | | matches | | 0 | "hated that he" | | 1 | "learned that softness" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 26.35 | | std | 22.73 | | cv | 0.862 | | sampleLengths | | 0 | 71 | | 1 | 6 | | 2 | 53 | | 3 | 91 | | 4 | 5 | | 5 | 19 | | 6 | 11 | | 7 | 70 | | 8 | 38 | | 9 | 18 | | 10 | 14 | | 11 | 74 | | 12 | 8 | | 13 | 3 | | 14 | 8 | | 15 | 22 | | 16 | 17 | | 17 | 65 | | 18 | 14 | | 19 | 17 | | 20 | 17 | | 21 | 39 | | 22 | 9 | | 23 | 71 | | 24 | 13 | | 25 | 11 | | 26 | 58 | | 27 | 3 | | 28 | 62 | | 29 | 4 | | 30 | 26 | | 31 | 8 | | 32 | 36 | | 33 | 8 | | 34 | 6 | | 35 | 48 | | 36 | 28 | | 37 | 58 | | 38 | 11 | | 39 | 15 | | 40 | 47 | | 41 | 6 | | 42 | 61 | | 43 | 14 | | 44 | 7 | | 45 | 5 | | 46 | 9 | | 47 | 23 | | 48 | 20 | | 49 | 31 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 77 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 192 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 0 | | flaggedSentences | 17 | | totalSentences | 107 | | ratio | 0.159 | | matches | | 0 | "She’d come over with leftover lamb bhuna and the spare keys Eva always “forgot” she’d copied, and she’d expected silence—maybe the hiss of a kettle left running, maybe Ptolemy yowling about his dinner being late." | | 1 | "The smell was wrong—charcoal wool and old books and something sharper, like ozone and winter." | | 2 | "One leg rested across the other, long fingers wrapped around the ivory head of his cane—the kind that hid steel, she knew, though he hadn’t drawn it tonight." | | 3 | "“And she left you here? Alone? With her books?” Rory stepped inside, her trainer squeaking on the hardwood, and locked the deadbolts behind her out of habit—one, two, three." | | 4 | "He looked tired—fine lines at the corners of his eyes, a pallor beneath the tan that suggested he hadn’t been sleeping well, or perhaps not in a bed." | | 5 | "A flicker of something—anger?" | | 6 | "Amusement?—crossed his face." | | 7 | "He stood then, slowly, with the grace of someone who’d learned not to rush despite the pain she knew lived in his hip—half-demon heritage, old injury, she’d never gotten the full story and he’d never offered." | | 8 | "Rory’s hand went instinctively to her left wrist, to the crescent scar hidden beneath her sleeve—old wound, old reminder that she’d never been good at letting people in without checking for damage first." | | 9 | "Rory could smell him now—wool, cedar, the faint sulfuric trace that always lingered on him, proof of the realm of Avaros running in his veins." | | 10 | "Outside, Brick Lane traffic hummed—cars, distant music, the smell of cumin and frying onions drifting up from the curry house below." | | 11 | "His free hand came up—not to touch, but to hover near her elbow, near where her sleeve ended and her scar might show if she turned her wrist." | | 12 | "She looked up at him, at the contradiction in his eyes—one warm, one void—and she saw not the impenetrable fixer, but the boy from Marseille who’d never asked for demon blood, who wore suits like armor and carried hidden blades because he’d learned that softness was dangerous." | | 13 | "She looked at the flat—cluttered, safe, smelling of paper and curry and possibility." | | 14 | "She looked at him—damaged, dangerous, waiting with a patience that cost him." | | 15 | "He nodded, the cane shifting, and for the first time she saw him relax—just an inch, just a breath." | | 16 | "Behind her, she heard him lock the deadbolts—one, two, three—before following her into the chaos of books and second chances." |
| |
| 97.78% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1058 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.04253308128544423 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.010396975425330813 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 107 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 107 | | mean | 14.04 | | std | 10.23 | | cv | 0.729 | | sampleLengths | | 0 | 7 | | 1 | 35 | | 2 | 29 | | 3 | 6 | | 4 | 15 | | 5 | 38 | | 6 | 12 | | 7 | 20 | | 8 | 28 | | 9 | 31 | | 10 | 5 | | 11 | 15 | | 12 | 4 | | 13 | 11 | | 14 | 29 | | 15 | 26 | | 16 | 15 | | 17 | 11 | | 18 | 14 | | 19 | 13 | | 20 | 11 | | 21 | 7 | | 22 | 4 | | 23 | 10 | | 24 | 24 | | 25 | 28 | | 26 | 16 | | 27 | 6 | | 28 | 8 | | 29 | 3 | | 30 | 8 | | 31 | 4 | | 32 | 3 | | 33 | 15 | | 34 | 5 | | 35 | 12 | | 36 | 36 | | 37 | 6 | | 38 | 16 | | 39 | 7 | | 40 | 10 | | 41 | 4 | | 42 | 17 | | 43 | 17 | | 44 | 33 | | 45 | 6 | | 46 | 7 | | 47 | 2 | | 48 | 16 | | 49 | 25 |
| |
| 60.12% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.38317757009345793 | | totalSentences | 107 | | uniqueOpeners | 41 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 70 | | matches | | 0 | "Instead she turned the deadbolts" | | 1 | "Then her eyes adjusted past" | | 2 | "Instead she stood her ground," | | 3 | "Instead she leaned into the" |
| | ratio | 0.057 | |
| 37.14% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 70 | | matches | | 0 | "She’d come over with leftover" | | 1 | "She knew before she saw" | | 2 | "He was still in charcoal," | | 3 | "His platinum hair caught the" | | 4 | "His face was all sharp" | | 5 | "His voice was low, accented" | | 6 | "he agreed calmly" | | 7 | "She turned, and for the" | | 8 | "He looked tired—fine lines at" | | 9 | "she said, more quietly" | | 10 | "He stood then, slowly, with" | | 11 | "He was taller than she" | | 12 | "he said, and his voice" | | 13 | "She should have stepped back." | | 14 | "She should have gathered her" | | 15 | "she said, the words escaping" | | 16 | "He didn’t flinch, but she" | | 17 | "She cut herself off, breathing" | | 18 | "She stopped, her throat closing" | | 19 | "She hated that he used" |
| | ratio | 0.457 | |
| 38.57% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 70 | | matches | | 0 | "Rory hadn’t meant to open" | | 1 | "She’d come over with leftover" | | 2 | "She knew before she saw" | | 3 | "The smell was wrong—charcoal wool" | | 4 | "He was still in charcoal," | | 5 | "His platinum hair caught the" | | 6 | "His face was all sharp" | | 7 | "Rory froze in the doorway," | | 8 | "Rory stepped inside, her trainer" | | 9 | "The flat was cramped, one" | | 10 | "Ptolemy emerged from behind a" | | 11 | "Lucien said, not moving from" | | 12 | "His voice was low, accented" | | 13 | "Rory set the food on" | | 14 | "he agreed calmly" | | 15 | "She turned, and for the" | | 16 | "He looked tired—fine lines at" | | 17 | "The suit was immaculate, but" | | 18 | "Vulnerability, or the illusion of" | | 19 | "she said, more quietly" |
| | ratio | 0.843 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 77.92% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 33 | | technicalSentenceCount | 3 | | matches | | 0 | "Then her eyes adjusted past the stacks of scrolls and grimoires that choked every surface, past the coffee table buried under open dictionaries, and she saw Luc…" | | 1 | "His face was all sharp angles and Mediterranean bone, but it was his eyes that stopped her heart: one amber, one black, fixed on her with an expression she coul…" | | 2 | "She looked up at him, at the contradiction in his eyes—one warm, one void—and she saw not the impenetrable fixer, but the boy from Marseille who’d never asked f…" |
| |
| 5.95% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 5 | | matches | | 0 | "Lucien said, not moving from the chair" | | 1 | "she said, the words escaping before she could cage them" | | 2 | "She stopped, her throat closing" | | 3 | "she finished, her voice low" | | 4 | "she repeated, softer" |
| |
| 91.18% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 15 | | fancyCount | 3 | | fancyTags | | 0 | "he agreed calmly (agree)" | | 1 | "she whispered (whisper)" | | 2 | "she repeated (repeat)" |
| | dialogueSentences | 51 | | tagDensity | 0.294 | | leniency | 0.588 | | rawRatio | 0.2 | | effectiveRatio | 0.118 | |