| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 1 | | adverbTags | | 0 | "His fingers trembled once [once]" |
| | dialogueSentences | 72 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.042 | | effectiveRatio | 0.028 | |
| 64.32% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1822 | | totalAiIsmAdverbs | 13 | | found | | | highlights | | 0 | "carefully" | | 1 | "precisely" | | 2 | "very" | | 3 | "quickly" | | 4 | "lightly" | | 5 | "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) | |
| 83.53% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1822 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "pulse" | | 1 | "silence" | | 2 | "flickered" | | 3 | "calculate" | | 4 | "trembled" |
| |
| 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 | 87 | | matches | (empty) | |
| 93.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 87 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 134 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 79 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1831 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 1115 | | uniqueNames | 9 | | maxNameDensity | 0.99 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Ptolemy | 2 | | Moreau | 2 | | Lucien | 6 | | Eva | 2 | | Prague | 1 | | Rory | 11 | | Bolted | 1 | | Brick | 1 | | Lane | 1 |
| | persons | | 0 | "Ptolemy" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Eva" | | 4 | "Rory" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like he always did, only more so" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1831 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 134 | | matches | | 0 | "see that the" | | 1 | "enough that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 79 | | mean | 23.18 | | std | 24.46 | | cv | 1.055 | | sampleLengths | | 0 | 5 | | 1 | 42 | | 2 | 28 | | 3 | 4 | | 4 | 43 | | 5 | 21 | | 6 | 7 | | 7 | 2 | | 8 | 42 | | 9 | 7 | | 10 | 2 | | 11 | 2 | | 12 | 16 | | 13 | 73 | | 14 | 64 | | 15 | 6 | | 16 | 34 | | 17 | 4 | | 18 | 11 | | 19 | 5 | | 20 | 34 | | 21 | 6 | | 22 | 104 | | 23 | 6 | | 24 | 49 | | 25 | 6 | | 26 | 66 | | 27 | 4 | | 28 | 4 | | 29 | 14 | | 30 | 35 | | 31 | 7 | | 32 | 10 | | 33 | 1 | | 34 | 54 | | 35 | 1 | | 36 | 53 | | 37 | 10 | | 38 | 104 | | 39 | 3 | | 40 | 56 | | 41 | 9 | | 42 | 5 | | 43 | 25 | | 44 | 70 | | 45 | 3 | | 46 | 20 | | 47 | 15 | | 48 | 58 | | 49 | 5 |
| |
| 97.20% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 87 | | matches | | 0 | "was allowed" | | 1 | "was slicked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 193 | | matches | | 0 | "was standing" | | 1 | "was doing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 134 | | ratio | 0.067 | | matches | | 0 | "Rory worked it with the heel of her hand, the chain still hooked, and cracked the door four inches — enough to see who was standing in the stairwell that smelled permanently of cumin and frying onions from the curry house below." | | 1 | "Then she undid the bolt, unhooked the chain, and opened the door properly, because standing in a hallway arguing with a piece of wood was undignified and because — she was honest enough with herself to admit it in the half-second before the hinges swung — she wanted to see his face." | | 2 | "That was the thing about Lucien; he never crowded a doorway." | | 3 | "He came in the way he did everything — carefully, taking up less space than his shoulders suggested he should." | | 4 | "He stood among Eva's books with his hands loose at his sides, and he took it — that was the unbearable part, he simply stood there and took it with those mismatched eyes steady on her face, and did not offer her a single thing to hate." | | 5 | "For the first time he looked away — out at the black window, at the rain making orange smears of the streetlights along Brick Lane." | | 6 | "She stopped a foot from Lucien and looked up — five foot six to his five eleven, close enough to see that the butterfly stitches were his own work, uneven at the third one where he'd have been doing it left-handed in a mirror." | | 7 | "This was slower, and worse, and better — his hand sliding to the back of her neck, the cold of his rain-damp shirt against her wrists, the small ragged sound he made against her mouth that she suspected he'd have paid money to take back." | | 8 | "Lucien Moreau laughed — a real one, surprised out of him, rusty as an unused hinge." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1110 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.03873873873873874 | | lyAdverbCount | 18 | | lyAdverbRatio | 0.016216216216216217 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 134 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 134 | | mean | 13.66 | | std | 14.62 | | cv | 1.07 | | sampleLengths | | 0 | 5 | | 1 | 42 | | 2 | 2 | | 3 | 17 | | 4 | 9 | | 5 | 4 | | 6 | 2 | | 7 | 10 | | 8 | 31 | | 9 | 10 | | 10 | 11 | | 11 | 7 | | 12 | 2 | | 13 | 13 | | 14 | 6 | | 15 | 23 | | 16 | 7 | | 17 | 2 | | 18 | 2 | | 19 | 2 | | 20 | 6 | | 21 | 8 | | 22 | 21 | | 23 | 52 | | 24 | 17 | | 25 | 11 | | 26 | 36 | | 27 | 6 | | 28 | 12 | | 29 | 11 | | 30 | 7 | | 31 | 4 | | 32 | 4 | | 33 | 11 | | 34 | 5 | | 35 | 4 | | 36 | 21 | | 37 | 9 | | 38 | 6 | | 39 | 20 | | 40 | 36 | | 41 | 5 | | 42 | 11 | | 43 | 32 | | 44 | 6 | | 45 | 18 | | 46 | 2 | | 47 | 14 | | 48 | 15 | | 49 | 6 |
| |
| 44.28% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.3283582089552239 | | totalSentences | 134 | | uniqueOpeners | 44 | |
| 45.66% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 73 | | matches | | 0 | "Then she undid the bolt," |
| | ratio | 0.014 | |
| 72.05% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 73 | | matches | | 0 | "She shut the door." | | 1 | "She simply closed it, turned" | | 2 | "she said to the door" | | 3 | "She pressed her thumb into" | | 4 | "He didn't step forward" | | 5 | "He waited to be given" | | 6 | "He held her gaze." | | 7 | "He came in the way" | | 8 | "He set the cane against" | | 9 | "She crossed to the kitchen" | | 10 | "She turned around." | | 11 | "He hadn't moved." | | 12 | "He stood among Eva's books" | | 13 | "His voice had gone quiet" | | 14 | "He looked back at her" | | 15 | "She crossed the room." | | 16 | "She stopped a foot from" | | 17 | "She reached up and, very" | | 18 | "He didn't flinch, but the" | | 19 | "She let her hand fall" |
| | ratio | 0.37 | |
| 35.34% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 62 | | totalSentences | 73 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory worked it with the" | | 2 | "An ivory cane handle resting" | | 3 | "She shut the door." | | 4 | "That would have been a" | | 5 | "She simply closed it, turned" | | 6 | "Ptolemy wound between her ankles," | | 7 | "Rory looked down at the" | | 8 | "The cat looked up at" | | 9 | "she said to the door" | | 10 | "She pressed her thumb into" | | 11 | "Lucien Moreau looked terrible, which" | | 12 | "The platinum hair was slicked" | | 13 | "He didn't step forward" | | 14 | "That was the thing about" | | 15 | "He waited to be given" | | 16 | "He held her gaze." | | 17 | "The amber eye caught the" | | 18 | "Rory stepped back from the" | | 19 | "He came in the way" |
| | ratio | 0.849 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 73 | | matches | (empty) | | ratio | 0 | |
| 31.25% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 5 | | matches | | 0 | "Rory worked it with the heel of her hand, the chain still hooked, and cracked the door four inches — enough to see who was standing in the stairwell that smelle…" | | 1 | "The cat looked up at her with the flat gold judgement of something that had never once had to make a difficult decision." | | 2 | "He set the cane against the shoe rack, peeled off his gloves finger by finger, and stopped dead in the middle of Eva's front room, which was less a room than a …" | | 3 | "Post-its in four colours climbing the wall above the desk in a pattern that made sense to precisely one person on earth, and that person was currently in Prague…" | | 4 | "He stood among Eva's books with his hands loose at his sides, and he took it — that was the unbearable part, he simply stood there and took it with those mismat…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 72 | | tagDensity | 0.194 | | leniency | 0.389 | | rawRatio | 0.071 | | effectiveRatio | 0.028 | |