| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 126 | | tagDensity | 0.04 | | leniency | 0.079 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 97.65% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2128 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 76.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2128 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "eyebrow" | | 1 | "familiar" | | 2 | "sense of" | | 3 | "warmth" | | 4 | "pulse" | | 5 | "silence" | | 6 | "weight" | | 7 | "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 | 155 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 155 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 276 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 37 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2128 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 45.27% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 74 | | wordCount | 1480 | | uniqueNames | 4 | | maxNameDensity | 2.09 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 31 | | Rees | 1 | | Callum | 26 | | Silas | 16 |
| | persons | | 0 | "Rory" | | 1 | "Rees" | | 2 | "Callum" | | 3 | "Silas" |
| | places | (empty) | | globalScore | 0.453 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 108 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like a version of someone she used" | | 1 | "looked like he signed things that ruined" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.47 | | wordCount | 2128 | | matches | | 0 | "not for the photograph this time, but for his phone" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 276 | | matches | | 0 | "show that he" | | 1 | "heard that name" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 203 | | mean | 10.48 | | std | 13.59 | | cv | 1.296 | | sampleLengths | | 0 | 24 | | 1 | 4 | | 2 | 12 | | 3 | 52 | | 4 | 85 | | 5 | 1 | | 6 | 14 | | 7 | 2 | | 8 | 6 | | 9 | 32 | | 10 | 7 | | 11 | 40 | | 12 | 3 | | 13 | 6 | | 14 | 1 | | 15 | 17 | | 16 | 9 | | 17 | 86 | | 18 | 9 | | 19 | 4 | | 20 | 2 | | 21 | 19 | | 22 | 2 | | 23 | 1 | | 24 | 3 | | 25 | 42 | | 26 | 3 | | 27 | 2 | | 28 | 3 | | 29 | 3 | | 30 | 3 | | 31 | 6 | | 32 | 7 | | 33 | 2 | | 34 | 10 | | 35 | 4 | | 36 | 1 | | 37 | 9 | | 38 | 9 | | 39 | 23 | | 40 | 3 | | 41 | 4 | | 42 | 8 | | 43 | 4 | | 44 | 4 | | 45 | 45 | | 46 | 5 | | 47 | 8 | | 48 | 16 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 155 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 246 | | matches | | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 276 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1483 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 59 | | adverbRatio | 0.03978422117329737 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.006068779501011463 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 276 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 276 | | mean | 7.71 | | std | 6.37 | | cv | 0.826 | | sampleLengths | | 0 | 24 | | 1 | 4 | | 2 | 12 | | 3 | 13 | | 4 | 14 | | 5 | 25 | | 6 | 16 | | 7 | 8 | | 8 | 16 | | 9 | 23 | | 10 | 6 | | 11 | 16 | | 12 | 1 | | 13 | 14 | | 14 | 2 | | 15 | 6 | | 16 | 26 | | 17 | 6 | | 18 | 7 | | 19 | 30 | | 20 | 10 | | 21 | 3 | | 22 | 6 | | 23 | 1 | | 24 | 5 | | 25 | 10 | | 26 | 2 | | 27 | 9 | | 28 | 26 | | 29 | 30 | | 30 | 2 | | 31 | 2 | | 32 | 26 | | 33 | 9 | | 34 | 4 | | 35 | 2 | | 36 | 15 | | 37 | 4 | | 38 | 2 | | 39 | 1 | | 40 | 3 | | 41 | 8 | | 42 | 13 | | 43 | 11 | | 44 | 10 | | 45 | 3 | | 46 | 2 | | 47 | 3 | | 48 | 3 | | 49 | 3 |
| |
| 47.83% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.2608695652173913 | | totalSentences | 276 | | uniqueOpeners | 72 | |
| 47.28% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 141 | | matches | | 0 | "Somewhere at the back of" | | 1 | "Always one more person in" |
| | ratio | 0.014 | |
| 98.01% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 43 | | totalSentences | 141 | | matches | | 0 | "She froze with her fingers" | | 1 | "His suit fit too well" | | 2 | "He smiled, then winced, as" | | 3 | "He glanced at the bar," | | 4 | "His eyes settled on Rory" | | 5 | "His grey-streaked beard framed a" | | 6 | "He gave Callum a single" | | 7 | "His voice from the other" | | 8 | "He stopped at the bar" | | 9 | "He looked at the black" | | 10 | "He rested his fingers on" | | 11 | "Her left wrist brushed the" | | 12 | "His gaze dropped to it," | | 13 | "She folded her arms." | | 14 | "His gaze went past her," | | 15 | "He set the glass down" | | 16 | "She stopped wiping." | | 17 | "Her fingers tightened on the" | | 18 | "He leaned back, then forward" | | 19 | "His jaw worked once." |
| | ratio | 0.305 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 133 | | totalSentences | 141 | | matches | | 0 | "The bottle slipped from Rory’s" | | 1 | "She froze with her fingers" | | 2 | "That voice had lost its" | | 3 | "The room behind her, all" | | 4 | "Rory turned, and the man" | | 5 | "Callum Rees had once carried" | | 6 | "A pale scar cut through" | | 7 | "His suit fit too well" | | 8 | "The other held the door" | | 9 | "He smiled, then winced, as" | | 10 | "He glanced at the bar," | | 11 | "His eyes settled on Rory" | | 12 | "Silas looked up from the" | | 13 | "His grey-streaked beard framed a" | | 14 | "Rory kept her eyes on" | | 15 | "That was enough for Silas." | | 16 | "He gave Callum a single" | | 17 | "Callum shut the door behind" | | 18 | "Rory caught the sound of" | | 19 | "His voice from the other" |
| | ratio | 0.943 | |
| 35.46% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 141 | | matches | | | ratio | 0.007 | |
| 82.32% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 59 | | technicalSentenceCount | 5 | | matches | | 0 | "Callum Rees had once carried his hair in his eyes and laughed at everything that hurt." | | 1 | "Silas looked up from the far end of the counter, where he had been wiping a glass with a white cloth that had lost all right to be called white." | | 2 | "His gaze went past her, to the dark room, to the back bookshelf that hid the secret room beyond." | | 3 | "Rory had the strange sensation that she was looking at a photograph that had been left too long in sunlight." | | 4 | "The angle kept his face partly hidden, but the shape of his shoulders, the set of his mouth, the narrow line of his nose held the same wrong familiarity that ha…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 126 | | tagDensity | 0.024 | | leniency | 0.048 | | rawRatio | 0 | | effectiveRatio | 0 | |