| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "he said quietly [quietly]" |
| | dialogueSentences | 54 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.111 | | effectiveRatio | 0.074 | |
| 78.56% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1866 | | totalAiIsmAdverbs | 8 | | found | | | highlights | | 0 | "perfectly" | | 1 | "slightly" | | 2 | "gently" | | 3 | "softly" | | 4 | "carefully" | | 5 | "very" |
| |
| 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) | |
| 83.92% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1866 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "silence" | | 1 | "weight" | | 2 | "navigated" | | 3 | "flicker" | | 4 | "calculating" |
| |
| 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 | 101 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 101 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 136 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 3 | | totalWords | 1850 | | ratio | 0.002 | | matches | | 0 | "incident" | | 1 | "negotiations" | | 2 | "threats" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 1 | | matches | | 0 | "After a long time, Rory spoke into the charcoal wool of his jacket." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 48 | | wordCount | 1499 | | uniqueNames | 21 | | maxNameDensity | 0.67 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 7 | | Tesco | 2 | | Ptolemy | 8 | | Moreau | 3 | | Eva | 3 | | Sumerian | 1 | | Lucien | 10 | | French | 1 | | Fortnum | 1 | | Mason | 1 | | Silas | 1 | | Calvados | 1 | | Avaros | 1 | | One | 1 | | Cardiff | 1 | | Evan | 1 | | London | 1 | | Swallowed | 1 | | Brick | 1 | | Lane | 1 | | Bengali | 1 |
| | persons | | 0 | "Rory" | | 1 | "Ptolemy" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Lucien" | | 5 | "Silas" | | 6 | "Evan" |
| | places | | 0 | "Cardiff" | | 1 | "London" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "Bengali" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 1 | | matches | | 0 | "smelled like cumin from the curry house be" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1850 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 136 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 63 | | mean | 29.37 | | std | 28.52 | | cv | 0.971 | | sampleLengths | | 0 | 72 | | 1 | 14 | | 2 | 3 | | 3 | 93 | | 4 | 61 | | 5 | 23 | | 6 | 7 | | 7 | 5 | | 8 | 14 | | 9 | 52 | | 10 | 2 | | 11 | 10 | | 12 | 63 | | 13 | 12 | | 14 | 47 | | 15 | 7 | | 16 | 8 | | 17 | 52 | | 18 | 12 | | 19 | 46 | | 20 | 1 | | 21 | 53 | | 22 | 28 | | 23 | 5 | | 24 | 6 | | 25 | 93 | | 26 | 32 | | 27 | 10 | | 28 | 6 | | 29 | 7 | | 30 | 3 | | 31 | 75 | | 32 | 7 | | 33 | 71 | | 34 | 2 | | 35 | 16 | | 36 | 58 | | 37 | 3 | | 38 | 16 | | 39 | 9 | | 40 | 6 | | 41 | 97 | | 42 | 6 | | 43 | 5 | | 44 | 55 | | 45 | 40 | | 46 | 11 | | 47 | 3 | | 48 | 1 | | 49 | 81 |
| |
| 98.32% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 101 | | matches | | 0 | "was arranged" | | 1 | "was mortified" |
| |
| 3.92% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 8 | | totalVerbs | 272 | | matches | | 0 | "was already talking" | | 1 | "was slipping" | | 2 | "was threading" | | 3 | "was sitting" | | 4 | "was deciding" | | 5 | "was choosing" | | 6 | "was standing" | | 7 | "was carrying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 1 | | flaggedSentences | 10 | | totalSentences | 136 | | ratio | 0.074 | | matches | | 0 | "Or rather, he was arranged on it—one leg crossed over the other, his ivory-handled cane propped against the armrest, his charcoal suit so perfectly pressed it made the rest of the flat look like a crime scene." | | 1 | "And those eyes—one amber, one black—watching her from across the room with an expression she couldn't read and had never been able to." | | 2 | "Rory carried the bag to the kitchen—four steps; that was the entire journey—and set it on the counter beside a bread knife and a grimoire Eva had bookmarked with a takeaway menu." | | 3 | "She saw his gaze drop to it and then lift away, the way it always had—noticing, cataloging, saying nothing." | | 4 | "He was close enough now that she could smell his cologne—something understated, woody, probably worth more than her weekly wages from the delivery rounds." | | 5 | "It came out shaky, and she watched Lucien track the tremor in her breath the way he tracked everything—with precision, with attention, with that devastating carefulness that made her feel like the most important informant he'd ever cultivated." | | 6 | "She saw his composure flicker—just a crack, just a breath's worth of something raw underneath the tailored suit and the careful distance." | | 7 | "She thought of all the things she'd rehearsed saying to him if he ever showed up again—the cutting remarks, the door slammed in his face, the dignified silence." | | 8 | "Not to kiss him—not yet—but to close the last six inches of distance, to press her forehead against his collarbone, to stand in the cumin-scented kitchen of her absent friend's flat and just breathe." | | 9 | "Outside, Brick Lane hummed with its evening noise—delivery scooters, the clatter of restaurant kitchens, someone shouting in Bengali two floors down." |
| |
| 84.01% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1517 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small crescent-shaped scar" |
| | adverbCount | 78 | | adverbRatio | 0.051417270929466054 | | lyAdverbCount | 18 | | lyAdverbRatio | 0.011865524060646011 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 136 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 136 | | mean | 13.6 | | std | 11.29 | | cv | 0.83 | | sampleLengths | | 0 | 23 | | 1 | 49 | | 2 | 14 | | 3 | 3 | | 4 | 7 | | 5 | 37 | | 6 | 7 | | 7 | 21 | | 8 | 21 | | 9 | 5 | | 10 | 5 | | 11 | 28 | | 12 | 23 | | 13 | 6 | | 14 | 17 | | 15 | 7 | | 16 | 5 | | 17 | 14 | | 18 | 11 | | 19 | 22 | | 20 | 11 | | 21 | 8 | | 22 | 2 | | 23 | 10 | | 24 | 4 | | 25 | 24 | | 26 | 3 | | 27 | 32 | | 28 | 12 | | 29 | 31 | | 30 | 13 | | 31 | 3 | | 32 | 7 | | 33 | 8 | | 34 | 4 | | 35 | 29 | | 36 | 19 | | 37 | 10 | | 38 | 2 | | 39 | 6 | | 40 | 17 | | 41 | 3 | | 42 | 11 | | 43 | 9 | | 44 | 1 | | 45 | 15 | | 46 | 38 | | 47 | 28 | | 48 | 5 | | 49 | 6 |
| |
| 50.25% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.36764705882352944 | | totalSentences | 136 | | uniqueOpeners | 50 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 88 | | matches | (empty) | | ratio | 0 | |
| 6.36% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 88 | | matches | | 0 | "She was already talking before" | | 1 | "She looked up." | | 2 | "He looked exactly the same." | | 3 | "She bent to retrieve the" | | 4 | "He scratched behind Ptolemy's ear," | | 5 | "she asked, not turning around" | | 6 | "His voice was careful, the" | | 7 | "She leaned back against the" | | 8 | "She saw his gaze drop" | | 9 | "He set Ptolemy gently aside" | | 10 | "She filed it away and" | | 11 | "She held up three fingers," | | 12 | "He gestured toward the coffee" | | 13 | "She stopped herself, jaw tight" | | 14 | "They were the lemon ones" | | 15 | "He remembered everything." | | 16 | "He collected details about people" | | 17 | "It was what made him" | | 18 | "It was what made him" | | 19 | "He took a step closer." |
| | ratio | 0.534 | |
| 28.18% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 76 | | totalSentences | 88 | | matches | | 0 | "The third deadbolt stuck, the" | | 1 | "She was already talking before" | | 2 | "She looked up." | | 3 | "Lucien Moreau was sitting on" | | 4 | "Eva's research notes had colonized" | | 5 | "Lucien sat among them like" | | 6 | "He looked exactly the same." | | 7 | "That was the infuriating thing." | | 8 | "The platinum blond hair slicked" | | 9 | "The Tesco bag hit the" | | 10 | "A tin of baked beans" | | 11 | "Rory's voice came out steadier" | | 12 | "She bent to retrieve the" | | 13 | "Ptolemy, traitor that he was," | | 14 | "Lucien didn't deny it." | | 15 | "He scratched behind Ptolemy's ear," | | 16 | "The silence stretched." | | 17 | "Rory carried the bag to" | | 18 | "she asked, not turning around" | | 19 | "His voice was careful, the" |
| | ratio | 0.864 | |
| 56.82% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 88 | | matches | | | ratio | 0.011 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 54 | | technicalSentenceCount | 6 | | matches | | 0 | "She was already talking before she looked up, half-turned back toward the hallway because the Tesco bag was slipping off her wrist and Ptolemy was threading him…" | | 1 | "When Lucien said *negotiations* in that particular tone, flattened and precise, he meant something closer to *threats*, something that involved the demon realm …" | | 2 | "Ptolemy had begun washing his paw with the studied indifference of a creature who had decided this particular drama was beneath him." | | 3 | "It came out shaky, and she watched Lucien track the tremor in her breath the way he tracked everything—with precision, with attention, with that devastating car…" | | 4 | "She felt his chest move with something that might have been a laugh." | | 5 | "Inside, the flat was still, piled high with its books and secrets, and two people who had been very good at leaving things unsaid stood in the kitchen and began…" |
| |
| 41.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 3 | | matches | | 0 | "she asked, not turning around" | | 1 | "She held up, as if he might need the visual aid" | | 2 | "She stopped, jaw tight" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 54 | | tagDensity | 0.204 | | leniency | 0.407 | | rawRatio | 0.091 | | effectiveRatio | 0.037 | |