| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 43 | | tagDensity | 0.488 | | leniency | 0.977 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1294 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 80.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 88.41% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1294 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "structure" | | 1 | "warmth" | | 2 | "measured" |
| |
| 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 | 57 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 57 | | 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 | 77 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1298 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 39 | | wordCount | 843 | | uniqueNames | 10 | | maxNameDensity | 1.66 | | worstName | "Silas" | | maxWindowNameDensity | 3 | | worstWindowName | "Silas" | | discoveredNames | | Brewer | 1 | | Street | 1 | | Raven | 1 | | Nest | 1 | | Tuesday | 1 | | Silas | 14 | | Rory | 8 | | Marcus | 10 | | Calais | 1 | | Bohemia | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Silas" | | 3 | "Rory" | | 4 | "Marcus" | | 5 | "Bohemia" |
| | places | | | globalScore | 0.67 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 42 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.77 | | wordCount | 1298 | | matches | | 0 | "not for the optics but for the bottle at the back of the top shelf, the one she'd n" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 79 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 35.08 | | std | 28.73 | | cv | 0.819 | | sampleLengths | | 0 | 72 | | 1 | 16 | | 2 | 41 | | 3 | 11 | | 4 | 78 | | 5 | 62 | | 6 | 40 | | 7 | 1 | | 8 | 9 | | 9 | 1 | | 10 | 44 | | 11 | 26 | | 12 | 12 | | 13 | 45 | | 14 | 62 | | 15 | 11 | | 16 | 18 | | 17 | 17 | | 18 | 30 | | 19 | 46 | | 20 | 17 | | 21 | 24 | | 22 | 98 | | 23 | 4 | | 24 | 58 | | 25 | 5 | | 26 | 25 | | 27 | 84 | | 28 | 79 | | 29 | 2 | | 30 | 3 | | 31 | 98 | | 32 | 28 | | 33 | 7 | | 34 | 13 | | 35 | 67 | | 36 | 44 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 57 | | matches | (empty) | |
| 51.85% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 135 | | matches | | 0 | "was polishing" | | 1 | "was watching" | | 2 | "was like watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 1 | | flaggedSentences | 5 | | totalSentences | 79 | | ratio | 0.063 | | matches | | 0 | "The man in the doorway was tall the way a burnt house is tall — all the structure there, none of the warmth." | | 1 | "Rory had seen him still before — the stillness of a man listening, weighing — but this was different." | | 2 | "\"And?\" Silas's voice could have carried drinks across a room or men across a border; it did neither now." | | 3 | "\"They tell me six months, a year if I'm unlucky enough to want it. So I drove three hundred miles through this—\" he gestured at the window, at the rain still needling the glass, \"—to say a thing I've been rehearsing since Calais, and now I'm here I can't find the first word of it.\"" | | 4 | "His hand came out, hovered, and for a moment — for the length of one held breath — the tremor in it stopped." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 729 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 15 | | adverbRatio | 0.0205761316872428 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 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 | 16.43 | | std | 14.31 | | cv | 0.871 | | sampleLengths | | 0 | 40 | | 1 | 32 | | 2 | 16 | | 3 | 25 | | 4 | 16 | | 5 | 11 | | 6 | 25 | | 7 | 29 | | 8 | 24 | | 9 | 23 | | 10 | 5 | | 11 | 34 | | 12 | 3 | | 13 | 19 | | 14 | 18 | | 15 | 1 | | 16 | 9 | | 17 | 1 | | 18 | 29 | | 19 | 15 | | 20 | 20 | | 21 | 6 | | 22 | 12 | | 23 | 13 | | 24 | 15 | | 25 | 17 | | 26 | 24 | | 27 | 6 | | 28 | 14 | | 29 | 18 | | 30 | 7 | | 31 | 4 | | 32 | 16 | | 33 | 2 | | 34 | 13 | | 35 | 4 | | 36 | 30 | | 37 | 8 | | 38 | 5 | | 39 | 8 | | 40 | 25 | | 41 | 3 | | 42 | 11 | | 43 | 3 | | 44 | 19 | | 45 | 5 | | 46 | 13 | | 47 | 10 | | 48 | 75 | | 49 | 4 |
| |
| 87.34% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.5316455696202531 | | totalSentences | 79 | | uniqueOpeners | 42 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 54 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 54 | | matches | | 0 | "She hooked the bag over" | | 1 | "She slid the box across," | | 2 | "His coat hung off him." | | 3 | "She'd lived above this bar" | | 4 | "She was watching him be" | | 5 | "He looked at the bottles" | | 6 | "he said at last" | | 7 | "It just sat there, waiting." | | 8 | "They were pale and wet" | | 9 | "His jaw worked" | | 10 | "he said, to nobody, to" | | 11 | "he gestured at the window," | | 12 | "He set two glasses down" | | 13 | "His hand came out, hovered," | | 14 | "It had been there two" | | 15 | "She'd never once asked about" |
| | ratio | 0.296 | |
| 6.30% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 54 | | matches | | 0 | "The rain had swept Brewer" | | 1 | "Rory came through the door" | | 2 | "Silas observed, without looking up" | | 3 | "She hooked the bag over" | | 4 | "She slid the box across," | | 5 | "A Tuesday crowd: two men" | | 6 | "Rory had just got her" | | 7 | "The man in the doorway" | | 8 | "His coat hung off him." | | 9 | "Rain had flattened what hair" | | 10 | "Silas went still." | | 11 | "Rory had seen him still" | | 12 | "This was a man caught" | | 13 | "The man's voice had a" | | 14 | "Silas set the glass down" | | 15 | "Rory kept her eyes on" | | 16 | "She'd lived above this bar" | | 17 | "She was watching him be" | | 18 | "Marcus came to the bar" | | 19 | "He looked at the bottles" |
| | ratio | 0.907 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 54 | | matches | (empty) | | ratio | 0 | |
| 80.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 23 | | technicalSentenceCount | 2 | | matches | | 0 | "Rain had flattened what hair he had left, and he stood on the mat dripping, blinking at the room as though he'd walked out of one century and into the wrong end…" | | 1 | "Marcus put his face in his hands and Rory looked down into her pint, giving the man his privacy, and found she couldn't swallow past the thing that had risen in…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 1 | | matches | | 0 | "She hooked, its corner crushed" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | 0 | "Silas observed (observe)" |
| | dialogueSentences | 43 | | tagDensity | 0.163 | | leniency | 0.326 | | rawRatio | 0.143 | | effectiveRatio | 0.047 | |