| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 71 | | tagDensity | 0.338 | | leniency | 0.676 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1589 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 93.71% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1589 | | totalAiIsms | 2 | | found | | | highlights | | |
| 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 | 56 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 56 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 102 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 1591 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 0 | | matches | (empty) | |
| 32.96% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 39 | | wordCount | 769 | | uniqueNames | 10 | | maxNameDensity | 2.34 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Rory" | | discoveredNames | | Dean | 1 | | Street | 1 | | Nest | 1 | | Rory | 18 | | Cardiff | 1 | | Eva | 12 | | Looked | 1 | | Soho | 1 | | Silas | 2 | | Barking | 1 |
| | persons | | | places | | 0 | "Dean" | | 1 | "Street" | | 2 | "Cardiff" | | 3 | "Soho" |
| | globalScore | 0.33 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 39 | | 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 | 1591 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 102 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 58 | | mean | 27.43 | | std | 23.76 | | cv | 0.866 | | sampleLengths | | 0 | 84 | | 1 | 7 | | 2 | 7 | | 3 | 25 | | 4 | 8 | | 5 | 4 | | 6 | 7 | | 7 | 67 | | 8 | 47 | | 9 | 52 | | 10 | 1 | | 11 | 12 | | 12 | 2 | | 13 | 5 | | 14 | 70 | | 15 | 13 | | 16 | 2 | | 17 | 24 | | 18 | 3 | | 19 | 28 | | 20 | 24 | | 21 | 31 | | 22 | 71 | | 23 | 5 | | 24 | 3 | | 25 | 14 | | 26 | 7 | | 27 | 22 | | 28 | 60 | | 29 | 34 | | 30 | 1 | | 31 | 23 | | 32 | 59 | | 33 | 21 | | 34 | 39 | | 35 | 62 | | 36 | 6 | | 37 | 23 | | 38 | 78 | | 39 | 3 | | 40 | 14 | | 41 | 50 | | 42 | 51 | | 43 | 3 | | 44 | 61 | | 45 | 52 | | 46 | 54 | | 47 | 13 | | 48 | 16 | | 49 | 13 |
| |
| 92.73% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 56 | | matches | | 0 | "being asked" | | 1 | "been straightened" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 118 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 2 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 102 | | ratio | 0.01 | | matches | | 0 | "The woman stood just inside the doorway letting the rain run off her shoulders, and something in the way she held herself — feet planted, chin up, taking a room in with her eyes before she moved into it — pulled Rory's hands tight around the glass." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 770 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 11 | | adverbRatio | 0.014285714285714285 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0012987012987012987 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 102 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 102 | | mean | 15.6 | | std | 12.86 | | cv | 0.825 | | sampleLengths | | 0 | 26 | | 1 | 37 | | 2 | 11 | | 3 | 10 | | 4 | 7 | | 5 | 7 | | 6 | 11 | | 7 | 14 | | 8 | 8 | | 9 | 4 | | 10 | 7 | | 11 | 23 | | 12 | 17 | | 13 | 6 | | 14 | 21 | | 15 | 47 | | 16 | 4 | | 17 | 4 | | 18 | 16 | | 19 | 28 | | 20 | 1 | | 21 | 3 | | 22 | 9 | | 23 | 2 | | 24 | 5 | | 25 | 11 | | 26 | 55 | | 27 | 4 | | 28 | 8 | | 29 | 5 | | 30 | 2 | | 31 | 24 | | 32 | 3 | | 33 | 23 | | 34 | 5 | | 35 | 24 | | 36 | 16 | | 37 | 15 | | 38 | 25 | | 39 | 22 | | 40 | 21 | | 41 | 3 | | 42 | 5 | | 43 | 3 | | 44 | 14 | | 45 | 7 | | 46 | 15 | | 47 | 7 | | 48 | 11 | | 49 | 44 |
| |
| 59.80% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.4117647058823529 | | totalSentences | 102 | | uniqueOpeners | 42 | |
| 66.67% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 50 | | matches | | 0 | "Somewhere down the street a" |
| | ratio | 0.02 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 8 | | totalSentences | 50 | | matches | | 0 | "His signet ring caught the" | | 1 | "He set the glass on" | | 2 | "He allowed himself the smallest" | | 3 | "Her mouth opened first and" | | 4 | "She gestured at the thermal" | | 5 | "He looked at Eva with" | | 6 | "She broke the sentence and" | | 7 | "Her throat moved and she" |
| | ratio | 0.16 | |
| 10.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 45 | | totalSentences | 50 | | matches | | 0 | "The rain came off Dean" | | 1 | "Rory sat at the far" | | 2 | "Silas worked a cloth along" | | 3 | "His signet ring caught the" | | 4 | "He set the glass on" | | 5 | "He allowed himself the smallest" | | 6 | "Rory wrapped both hands around" | | 7 | "A woman in a grey" | | 8 | "The woman stood just inside" | | 9 | "The coat was good." | | 10 | "The boots were good." | | 11 | "A thin gold watch sat" | | 12 | "The woman turned." | | 13 | "Her mouth opened first and" | | 14 | "Eva crossed the room" | | 15 | "Rory set the glass down" | | 16 | "Rory reached out and touched" | | 17 | "Rory pulled her hand back" | | 18 | "Eva climbed onto the stool" | | 19 | "Rory turned her glass a" |
| | ratio | 0.9 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 50 | | matches | (empty) | | ratio | 0 | |
| 40.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 21 | | technicalSentenceCount | 3 | | matches | | 0 | "Up close the polish went deeper: a straight fringe cut with a ruler, nails filed into neat ovals, a faint line at the corners of her eyes that hadn't been there…" | | 1 | "Somewhere down the street a taxi shushed past and the sign threw its colour over the two of them, the same colour on the plain black hair and the hair that had …" | | 2 | "Eva laughed, one short bark, the exact laugh from the library steps with the cider cans at their feet, and it left her face wrong, and she pressed her fingers t…" |
| |
| 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 | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 71 | | tagDensity | 0.07 | | leniency | 0.141 | | rawRatio | 0 | | effectiveRatio | 0 | |