| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 132 | | tagDensity | 0.129 | | leniency | 0.258 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.93% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2204 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "quickly" | | 1 | "tightly" | | 2 | "slightly" | | 3 | "very" |
| |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 70.51% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2204 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "wavering" | | 1 | "warmth" | | 2 | "pulsed" | | 3 | "silence" | | 4 | "weight" | | 5 | "trembled" | | 6 | "comfortable" | | 7 | "scanning" | | 8 | "unreadable" |
| |
| 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 | 165 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 165 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 280 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2201 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 35 | | unquotedAttributions | 1 | | matches | | 0 | "Despite herself, Rory laughed." |
| |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 104 | | wordCount | 1526 | | uniqueNames | 12 | | maxNameDensity | 2.75 | | worstName | "Eva" | | maxWindowNameDensity | 5 | | worstWindowName | "Rory" | | discoveredNames | | Soho | 1 | | Rory | 41 | | Silas | 10 | | Prague | 1 | | Eva | 42 | | Piccadilly | 1 | | Circus | 1 | | Cardiff | 2 | | Evan | 2 | | You | 1 | | Raven | 1 | | Nest | 1 |
| | persons | | 0 | "Rory" | | 1 | "Silas" | | 2 | "Eva" | | 3 | "Evan" | | 4 | "You" |
| | places | | 0 | "Soho" | | 1 | "Prague" | | 2 | "Cardiff" | | 3 | "Raven" |
| | globalScore | 0.124 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 99 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 18.26% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 1.817 | | wordCount | 2201 | | matches | | 0 | "not hot, but patient" | | 1 | "not the face she wore now, careful and narrowed, but the girl who had once laughed so hard she snorted lemonade t" | | 2 | "not gone, not forgiven, but no longer silent" | | 3 | "not forgiven, but no longer silent" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 280 | | matches | | 0 | "announced that Cardiff" | | 1 | "understood that it" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 185 | | mean | 11.9 | | std | 14.91 | | cv | 1.253 | | sampleLengths | | 0 | 15 | | 1 | 77 | | 2 | 37 | | 3 | 4 | | 4 | 44 | | 5 | 4 | | 6 | 8 | | 7 | 4 | | 8 | 6 | | 9 | 47 | | 10 | 7 | | 11 | 14 | | 12 | 6 | | 13 | 50 | | 14 | 6 | | 15 | 1 | | 16 | 3 | | 17 | 4 | | 18 | 4 | | 19 | 4 | | 20 | 6 | | 21 | 2 | | 22 | 1 | | 23 | 15 | | 24 | 65 | | 25 | 8 | | 26 | 6 | | 27 | 22 | | 28 | 4 | | 29 | 10 | | 30 | 29 | | 31 | 1 | | 32 | 22 | | 33 | 14 | | 34 | 18 | | 35 | 1 | | 36 | 3 | | 37 | 9 | | 38 | 13 | | 39 | 10 | | 40 | 2 | | 41 | 2 | | 42 | 6 | | 43 | 16 | | 44 | 11 | | 45 | 5 | | 46 | 7 | | 47 | 5 | | 48 | 9 | | 49 | 43 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 165 | | matches | | 0 | "been broken" | | 1 | "been unknown" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 289 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 1 | | flaggedSentences | 4 | | totalSentences | 280 | | ratio | 0.014 | | matches | | 0 | "The old knee injury from Prague had not softened him; it had merely made his stillness more deliberate." | | 1 | "Rory felt the old anger wake inside her—not hot, but patient." | | 2 | "Eva smiled, and for an instant the old face returned—not the face she wore now, careful and narrowed, but the girl who had once laughed so hard she snorted lemonade through her nose." | | 3 | "Inside, beneath the old maps and the watchful photographs, the years remained where they had always been—not gone, not forgiven, but no longer silent." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1535 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 58 | | adverbRatio | 0.03778501628664495 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.008469055374592834 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 280 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 280 | | mean | 7.86 | | std | 7.21 | | cv | 0.917 | | sampleLengths | | 0 | 15 | | 1 | 24 | | 2 | 17 | | 3 | 36 | | 4 | 13 | | 5 | 13 | | 6 | 11 | | 7 | 4 | | 8 | 16 | | 9 | 13 | | 10 | 15 | | 11 | 4 | | 12 | 8 | | 13 | 4 | | 14 | 6 | | 15 | 8 | | 16 | 16 | | 17 | 12 | | 18 | 11 | | 19 | 7 | | 20 | 14 | | 21 | 6 | | 22 | 14 | | 23 | 18 | | 24 | 18 | | 25 | 5 | | 26 | 1 | | 27 | 1 | | 28 | 3 | | 29 | 4 | | 30 | 4 | | 31 | 4 | | 32 | 6 | | 33 | 2 | | 34 | 1 | | 35 | 4 | | 36 | 6 | | 37 | 5 | | 38 | 13 | | 39 | 10 | | 40 | 19 | | 41 | 15 | | 42 | 8 | | 43 | 8 | | 44 | 6 | | 45 | 22 | | 46 | 4 | | 47 | 5 | | 48 | 5 | | 49 | 4 |
| |
| 46.79% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.24285714285714285 | | totalSentences | 280 | | uniqueOpeners | 68 | |
| 23.31% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 143 | | matches | | 0 | "Somewhere beneath the floorboards, the" |
| | ratio | 0.007 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 143 | | matches | | 0 | "It ran in silver threads" | | 1 | "Her shoulder-length black hair had" | | 2 | "She rubbed warmth into her" | | 3 | "He stood at the far" | | 4 | "His silver signet ring flashed" | | 5 | "He favored his left leg" | | 6 | "She looked at the phone" | | 7 | "He set the glass down." | | 8 | "She smiled despite herself." | | 9 | "She wore a camel coat" | | 10 | "Her hair, once a wild" | | 11 | "She closed the umbrella, looked" | | 12 | "Her voice had not changed." | | 13 | "His expression altered by half" | | 14 | "He had learned, in another" | | 15 | "It was crowded with old" | | 16 | "She had not expected Eva" | | 17 | "It was the sort of" | | 18 | "He did it without comment." | | 19 | "It had survived the journey" |
| | ratio | 0.231 | |
| 22.94% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 125 | | totalSentences | 143 | | matches | | 0 | "The rain had polished Soho" | | 1 | "It ran in silver threads" | | 2 | "Silas had left the lamps" | | 3 | "Rory shrugged out of her" | | 4 | "Her shoulder-length black hair had" | | 5 | "She rubbed warmth into her" | | 6 | "He stood at the far" | | 7 | "His silver signet ring flashed" | | 8 | "He favored his left leg" | | 9 | "She looked at the phone" | | 10 | "The restaurant had sent her" | | 11 | "Rory had left the bag" | | 12 | "The app still pulsed with" | | 13 | "Silas gave her the look" | | 14 | "The old knee injury from" | | 15 | "He set the glass down." | | 16 | "She smiled despite herself." | | 17 | "The warmth came and went" | | 18 | "Rory reached for the kettle." | | 19 | "The door opened behind her," |
| | ratio | 0.874 | |
| 34.97% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 143 | | matches | | 0 | "Now, seeing her across the" |
| | ratio | 0.007 | |
| 96.77% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 62 | | technicalSentenceCount | 4 | | matches | | 0 | "He stood at the far end of the counter, polishing a glass that was already clean." | | 1 | "Silas gave her the look that made most people revise their opinions before speaking." | | 2 | "It was crowded with old mornings, old rooms, and the hot bright certainty of girls who believed friendship could substitute for a plan." | | 3 | "Eva smiled, and for an instant the old face returned—not the face she wore now, careful and narrowed, but the girl who had once laughed so hard she snorted lemo…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 132 | | tagDensity | 0.129 | | leniency | 0.258 | | rawRatio | 0 | | effectiveRatio | 0 | |