| 86.79% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 3 | | adverbTags | | 0 | "He leaned lightly [lightly]" | | 1 | "he said quietly [quietly]" | | 2 | "she said finally [finally]" |
| | dialogueSentences | 53 | | tagDensity | 0.415 | | leniency | 0.83 | | rawRatio | 0.136 | | effectiveRatio | 0.113 | |
| 72.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1454 | | totalAiIsmAdverbs | 8 | | found | | | highlights | | 0 | "lightly" | | 1 | "quickly" | | 2 | "very" | | 3 | "slightly" | | 4 | "gently" | | 5 | "carefully" |
| |
| 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) | |
| 86.24% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1454 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "measured" | | 1 | "flickered" | | 2 | "silence" | | 3 | "warmth" |
| |
| 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 | 62 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 62 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 92 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 59 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1436 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 824 | | uniqueNames | 11 | | maxNameDensity | 0.97 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 6 | | Eva | 2 | | Moreau | 1 | | Brick | 3 | | Lane | 3 | | Lucien | 8 | | Marseille | 1 | | God | 1 | | Soho | 1 | | Despite | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "God" | | 5 | "Ptolemy" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Marseille" | | 3 | "Soho" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 46 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1436 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 92 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 30.55 | | std | 26.89 | | cv | 0.88 | | sampleLengths | | 0 | 57 | | 1 | 12 | | 2 | 57 | | 3 | 16 | | 4 | 16 | | 5 | 39 | | 6 | 12 | | 7 | 24 | | 8 | 98 | | 9 | 13 | | 10 | 8 | | 11 | 41 | | 12 | 3 | | 13 | 40 | | 14 | 8 | | 15 | 1 | | 16 | 38 | | 17 | 30 | | 18 | 56 | | 19 | 7 | | 20 | 59 | | 21 | 9 | | 22 | 42 | | 23 | 11 | | 24 | 11 | | 25 | 8 | | 26 | 23 | | 27 | 78 | | 28 | 2 | | 29 | 2 | | 30 | 92 | | 31 | 5 | | 32 | 12 | | 33 | 40 | | 34 | 46 | | 35 | 68 | | 36 | 9 | | 37 | 8 | | 38 | 2 | | 39 | 34 | | 40 | 22 | | 41 | 10 | | 42 | 102 | | 43 | 46 | | 44 | 32 | | 45 | 69 | | 46 | 18 |
| |
| 99.60% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 62 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 142 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 92 | | ratio | 0.098 | | matches | | 0 | "The knock came again—three measured raps, patient as a metronome—and Rory set down the cold samosa she'd been eating over Eva's notes and crossed the cluttered living room." | | 1 | "The curry house's exhaust fan rattled somewhere below, and a bus groaned past on Brick Lane, and Lucien looked at her with those two mismatched eyes—one amber, one black as spilled ink—and smiled the way a man smiles when he knows he's unwelcome and has decided to be charming anyway." | | 2 | "There it was—the hairline crack in the polish, gone as quickly as it appeared." | | 3 | "But the rain was soaking into that beautiful suit, and there was something tired around his eyes she'd never seen there before, and underneath all of it—God help her—was the thing she'd spent four months trying to forget." | | 4 | "Something shifted in his face then—the performance setting down, like a man laying aside a heavy coat of his own." | | 5 | "Inside was a copy of the photograph—her, two years ago, hair longer, smiling that careful smile she used to wear like armor." | | 6 | "\"Ptolemy is an excellent judge of character. He simply recognizes that I am, at present, the most pathetic creature in this flat, and he pities me.\" Lucien looked down at the cat, then up at her, and there was hope in his face now—careful, rationed hope, like a man who'd learned not to spend it all at once." | | 7 | "Four months of anger sitting in her chest like a stone, and underneath it—still, stubbornly—the memory of his laugh in a doorway at two in the morning." | | 8 | "\"Carefully,\" Lucien agreed, and the smile that came then was nothing like his polished one—it was younger, unguarded, a little stunned, like a man stepping out of a long winter into unexpected sun." |
| |
| 98.54% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 840 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 35 | | adverbRatio | 0.041666666666666664 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.010714285714285714 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 92 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 92 | | mean | 15.61 | | std | 12.68 | | cv | 0.812 | | sampleLengths | | 0 | 28 | | 1 | 9 | | 2 | 20 | | 3 | 12 | | 4 | 7 | | 5 | 50 | | 6 | 10 | | 7 | 6 | | 8 | 11 | | 9 | 5 | | 10 | 25 | | 11 | 14 | | 12 | 12 | | 13 | 3 | | 14 | 14 | | 15 | 7 | | 16 | 5 | | 17 | 19 | | 18 | 38 | | 19 | 4 | | 20 | 13 | | 21 | 19 | | 22 | 13 | | 23 | 8 | | 24 | 29 | | 25 | 12 | | 26 | 3 | | 27 | 27 | | 28 | 7 | | 29 | 6 | | 30 | 8 | | 31 | 1 | | 32 | 20 | | 33 | 18 | | 34 | 9 | | 35 | 21 | | 36 | 7 | | 37 | 11 | | 38 | 22 | | 39 | 16 | | 40 | 7 | | 41 | 7 | | 42 | 47 | | 43 | 5 | | 44 | 5 | | 45 | 4 | | 46 | 11 | | 47 | 31 | | 48 | 11 | | 49 | 11 |
| |
| 72.46% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.4673913043478261 | | totalSentences | 92 | | uniqueOpeners | 43 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 54 | | matches | | 0 | "Then the morning after, when" | | 1 | "Somewhere below, the curry house's" |
| | ratio | 0.037 | |
| 49.63% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 23 | | totalSentences | 54 | | matches | | 0 | "She worked the three deadbolts" | | 1 | "His voice had that Marseille" | | 2 | "She kept her hand on" | | 3 | "He leaned lightly on the" | | 4 | "She should close the door." | | 5 | "His hand at the small" | | 6 | "she said, and slid the" | | 7 | "He stepped past her into" | | 8 | "She turned back and folded" | | 9 | "He reached into his jacket" | | 10 | "he said quietly" | | 11 | "Her thumb found the crescent" | | 12 | "She looked up at him." | | 13 | "He said it gently, which" | | 14 | "she said, before she could" | | 15 | "His mouth curved, sad and" | | 16 | "Her heart was doing something" | | 17 | "He said it to the" | | 18 | "He finally looked up, and" | | 19 | "He took a breath" |
| | ratio | 0.426 | |
| 43.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 45 | | totalSentences | 54 | | matches | | 0 | "The knock came again—three measured" | | 1 | "Ptolemy wound between her ankles," | | 2 | "She worked the three deadbolts" | | 3 | "Lucien Moreau stood on the" | | 4 | "The curry house's exhaust fan" | | 5 | "His voice had that Marseille" | | 6 | "She kept her hand on" | | 7 | "He leaned lightly on the" | | 8 | "The smile flickered." | | 9 | "She should close the door." | | 10 | "Every sensible thing her barrister" | | 11 | "The night in Soho." | | 12 | "His hand at the small" | | 13 | "The two of them laughing" | | 14 | "she said, and slid the" | | 15 | "He stepped past her into" | | 16 | "Ptolemy regarded him from the" | | 17 | "Rory shut the door and" | | 18 | "She turned back and folded" | | 19 | "Something shifted in his face" |
| | ratio | 0.833 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 54 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 24 | | technicalSentenceCount | 1 | | matches | | 0 | "Ptolemy jumped down from the sofa, crossed the room with immense deliberation, and began winding around Lucien's ankles, purring like an engine." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 74.53% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 15 | | fancyCount | 4 | | fancyTags | | 0 | "he agreed (agree)" | | 1 | "he admitted (admit)" | | 2 | "Rory murmured (murmur)" | | 3 | "Lucien agreed (agree)" |
| | dialogueSentences | 53 | | tagDensity | 0.283 | | leniency | 0.566 | | rawRatio | 0.267 | | effectiveRatio | 0.151 | |