| 60.47% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 3 | | adverbTags | | 0 | "she said instead [instead]" | | 1 | "he said quietly [quietly]" | | 2 | "he said softly [softly]" |
| | dialogueSentences | 43 | | tagDensity | 0.372 | | leniency | 0.744 | | rawRatio | 0.188 | | effectiveRatio | 0.14 | |
| 77.41% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1328 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "slightly" | | 1 | "really" | | 2 | "lazily" | | 3 | "very" | | 4 | "softly" |
| |
| 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) | |
| 77.41% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1328 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "silence" | | 1 | "weight" | | 2 | "flicker" | | 3 | "efficient" |
| |
| 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 | 52 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 52 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 79 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 82 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1343 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 1 | | matches | | 0 | "Behind her, Ptolemy hissed — the cat had never liked Lucien, though Rory had always suspected that was less about the de…" |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 850 | | uniqueNames | 9 | | maxNameDensity | 0.71 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 5 | | Ptolemy | 5 | | Eva | 3 | | Moreau | 1 | | London | 1 | | Lucien | 6 | | One | 3 | | Underground | 1 | | Marseille | 1 |
| | persons | | 0 | "Rory" | | 1 | "Ptolemy" | | 2 | "Eva" | | 3 | "Moreau" | | 4 | "Lucien" | | 5 | "One" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 82.43% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 37 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like brushing her teeth" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.745 | | wordCount | 1343 | | matches | | 0 | "not to be forgiven but because you once accused me of never telling the truth" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 79 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 28.57 | | std | 28.62 | | cv | 1.001 | | sampleLengths | | 0 | 58 | | 1 | 10 | | 2 | 60 | | 3 | 1 | | 4 | 12 | | 5 | 40 | | 6 | 18 | | 7 | 12 | | 8 | 9 | | 9 | 63 | | 10 | 2 | | 11 | 57 | | 12 | 34 | | 13 | 2 | | 14 | 3 | | 15 | 6 | | 16 | 30 | | 17 | 43 | | 18 | 57 | | 19 | 2 | | 20 | 6 | | 21 | 29 | | 22 | 1 | | 23 | 88 | | 24 | 38 | | 25 | 6 | | 26 | 127 | | 27 | 47 | | 28 | 6 | | 29 | 1 | | 30 | 40 | | 31 | 8 | | 32 | 7 | | 33 | 4 | | 34 | 75 | | 35 | 6 | | 36 | 82 | | 37 | 6 | | 38 | 19 | | 39 | 13 | | 40 | 48 | | 41 | 56 | | 42 | 16 | | 43 | 3 | | 44 | 61 | | 45 | 13 | | 46 | 18 |
| |
| 98.52% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 52 | | matches | | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 148 | | matches | | 0 | "was letting" | | 1 | "was behaving" | | 2 | "was leaning" | | 3 | "was looking" | | 4 | "were sitting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 2 | | flaggedSentences | 10 | | totalSentences | 79 | | ratio | 0.127 | | matches | | 0 | "She'd already flipped the first two locks out of habit — Eva's paranoia had soaked into her over the two weeks she'd been cat-sitting, until the ritual of unlocking felt like brushing her teeth." | | 1 | "Behind her, Ptolemy hissed — the cat had never liked Lucien, though Rory had always suspected that was less about the demon blood and more about Ptolemy being an excellent judge of character." | | 2 | "One amber, one black — she'd spent an embarrassing number of hours last spring deciding which one to believe, and had finally concluded the answer was neither." | | 3 | "She got the first aid kit from under the sink — Eva kept it stocked like a field medic — and pointed at the sofa." | | 4 | "\"Six months ago,\" he said, and his voice had lost all its lacquer, all the Marseille polish, and underneath it was something rawer, \"I told you it was nothing because it was rapidly becoming everything, and men like me do not get to have everything. Men like me get to have leverage. I looked at you and I saw what you would become to the people who want to reach me.\" His amber eye caught the lamplight; the black one swallowed it." | | 5 | "Her wrist ached where she was leaning on it — the old crescent scar, the childhood one, pressing into the floorboard — and she was aware, distantly, that she should say something cutting and send him back out into the rain." | | 6 | "He was looking at her the way he had that night — the last night, the good one — like she was a cipher he actually wanted to solve, and six months of her own careful silence were sitting in her chest with their coats on, ready to leave." | | 7 | "Rory rose, knees complaining, and stood over him with her arms folded — black hair falling in her face, the blue-eyed stare that had made opposing counsel in her father's chambers wish for early retirement." | | 8 | "He was very good at waiting; it was half his trade." | | 9 | "\"Rory.\" He caught her hand before she could turn away — his fingers cold from the rain, his grip careful, careful in a way that was its own confession — and turned her wrist over, thumb brushing the small crescent scar." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 842 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 27 | | adverbRatio | 0.032066508313539195 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.0166270783847981 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 79 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 79 | | mean | 17 | | std | 17.02 | | cv | 1.001 | | sampleLengths | | 0 | 24 | | 1 | 34 | | 2 | 10 | | 3 | 17 | | 4 | 6 | | 5 | 37 | | 6 | 1 | | 7 | 12 | | 8 | 7 | | 9 | 33 | | 10 | 18 | | 11 | 12 | | 12 | 9 | | 13 | 9 | | 14 | 27 | | 15 | 27 | | 16 | 2 | | 17 | 41 | | 18 | 2 | | 19 | 1 | | 20 | 1 | | 21 | 12 | | 22 | 33 | | 23 | 1 | | 24 | 2 | | 25 | 3 | | 26 | 6 | | 27 | 25 | | 28 | 5 | | 29 | 25 | | 30 | 2 | | 31 | 16 | | 32 | 40 | | 33 | 11 | | 34 | 3 | | 35 | 3 | | 36 | 2 | | 37 | 6 | | 38 | 27 | | 39 | 2 | | 40 | 1 | | 41 | 24 | | 42 | 64 | | 43 | 6 | | 44 | 32 | | 45 | 6 | | 46 | 82 | | 47 | 45 | | 48 | 6 | | 49 | 41 |
| |
| 73.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.46835443037974683 | | totalSentences | 79 | | uniqueOpeners | 37 | |
| 79.37% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 42 | | matches | | 0 | "Then she opened the door," |
| | ratio | 0.024 | |
| 10.48% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 42 | | matches | | 0 | "She'd already flipped the first" | | 1 | "She kept her hand on" | | 2 | "His mouth curved, but it" | | 3 | "He shifted his weight off" | | 4 | "He watched her do it" | | 5 | "he said, glancing around at" | | 6 | "He looked down at his" | | 7 | "She got the first aid" | | 8 | "She pressed the iodine in," | | 9 | "She taped the gauze down," | | 10 | "Her hands stopped on the" | | 11 | "he said, and his voice" | | 12 | "Her wrist ached where she" | | 13 | "she said instead" | | 14 | "he said quietly" | | 15 | "He was looking at her" | | 16 | "He reached into his jacket," | | 17 | "He was very good at" | | 18 | "he said softly" | | 19 | "He caught her hand before" |
| | ratio | 0.524 | |
| 55.24% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 34 | | totalSentences | 42 | | matches | | 0 | "The third deadbolt stuck, the" | | 1 | "She'd already flipped the first" | | 2 | "Lucien Moreau stood on the" | | 3 | "Lucien did not get rained" | | 4 | "Lucien moved through London like" | | 5 | "She kept her hand on" | | 6 | "His mouth curved, but it" | | 7 | "He shifted his weight off" | | 8 | "He watched her do it" | | 9 | "he said, glancing around at" | | 10 | "He looked down at his" | | 11 | "She got the first aid" | | 12 | "Ptolemy withdrew to the top" | | 13 | "The shirt came off with" | | 14 | "Something with talons." | | 15 | "She pressed the iodine in," | | 16 | "She taped the gauze down," | | 17 | "The rain ticked against the" | | 18 | "Her hands stopped on the" | | 19 | "he said, and his voice" |
| | ratio | 0.81 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 42 | | matches | (empty) | | ratio | 0 | |
| 45.45% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 3 | | matches | | 0 | "Lucien Moreau stood on the landing with rain in his platinum hair, which was wrong in itself." | | 1 | "The shirt came off with a carelessness that told her the wound was worse than he was letting on, and Rory knelt beside him with gauze and iodine and a heart tha…" | | 2 | "Rory rose, knees complaining, and stood over him with her arms folded — black hair falling in her face, the blue-eyed stare that had made opposing counsel in he…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 80.23% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 3 | | fancyTags | | 0 | "She pressed (press)" | | 1 | "the curry house's extraction fan roared (roar)" | | 2 | "she repeated (repeat)" |
| | dialogueSentences | 43 | | tagDensity | 0.279 | | leniency | 0.558 | | rawRatio | 0.25 | | effectiveRatio | 0.14 | |