| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 59 | | tagDensity | 0.186 | | leniency | 0.373 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1174 | | 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) | |
| 95.74% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1174 | | totalAiIsms | 1 | | 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 | 59 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 59 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 107 | | 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 | 0 | | markdownWords | 0 | | totalWords | 1182 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 700 | | uniqueNames | 9 | | maxNameDensity | 2.14 | | worstName | "Silas" | | maxWindowNameDensity | 5 | | worstWindowName | "Frankie" | | discoveredNames | | Dean | 1 | | Street | 2 | | Silas | 15 | | Yu-Fei | 1 | | Bridge | 1 | | Rory | 8 | | Lagavulin | 2 | | Frankie | 12 | | Quarter | 3 |
| | persons | | 0 | "Silas" | | 1 | "Yu-Fei" | | 2 | "Rory" | | 3 | "Frankie" |
| | places | | 0 | "Dean" | | 1 | "Street" | | 2 | "Bridge" |
| | globalScore | 0.429 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 32 | | 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 | 1182 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 107 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 74 | | mean | 15.97 | | std | 17.72 | | cv | 1.11 | | sampleLengths | | 0 | 28 | | 1 | 12 | | 2 | 47 | | 3 | 42 | | 4 | 37 | | 5 | 16 | | 6 | 1 | | 7 | 1 | | 8 | 14 | | 9 | 5 | | 10 | 10 | | 11 | 2 | | 12 | 37 | | 13 | 6 | | 14 | 23 | | 15 | 21 | | 16 | 4 | | 17 | 4 | | 18 | 6 | | 19 | 5 | | 20 | 4 | | 21 | 20 | | 22 | 12 | | 23 | 8 | | 24 | 1 | | 25 | 1 | | 26 | 39 | | 27 | 3 | | 28 | 2 | | 29 | 20 | | 30 | 8 | | 31 | 7 | | 32 | 4 | | 33 | 4 | | 34 | 17 | | 35 | 1 | | 36 | 34 | | 37 | 6 | | 38 | 79 | | 39 | 6 | | 40 | 6 | | 41 | 57 | | 42 | 3 | | 43 | 8 | | 44 | 6 | | 45 | 2 | | 46 | 1 | | 47 | 33 | | 48 | 5 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 59 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 116 | | matches | (empty) | |
| 36.05% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 107 | | ratio | 0.037 | | matches | | 0 | "The green neon over the door stuttered — RAVEN'S, RAVEN'S, RAVEN'S — a bad connection Silas had left alone for three winters." | | 1 | "Rory had seen that laugh before — men who came in through the bookshelf at the back, who sat in the hidden room with their coats still on and came out an hour later looking older." | | 2 | "He reached into his jacket — and for a moment Rory's hand went flat on the bar under the lip where Silas kept the bat — and he came out with a card, plain, no logo, one mobile number in pencil on the back, because pencil wears to nothing if you don't want it found." | | 3 | "Cold came in and went, and the neon buzzed on over the puddled floor, and Rory looked at the card on the bar and then at Silas, who had picked up the Lagavulin again — not to pour, just to hold — and who said nothing at all for the rest of the hour." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 699 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 13 | | adverbRatio | 0.01859799713876967 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 107 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 107 | | mean | 11.05 | | std | 12.11 | | cv | 1.096 | | sampleLengths | | 0 | 6 | | 1 | 22 | | 2 | 1 | | 3 | 3 | | 4 | 8 | | 5 | 25 | | 6 | 3 | | 7 | 2 | | 8 | 5 | | 9 | 12 | | 10 | 4 | | 11 | 4 | | 12 | 34 | | 13 | 3 | | 14 | 22 | | 15 | 12 | | 16 | 16 | | 17 | 1 | | 18 | 1 | | 19 | 4 | | 20 | 10 | | 21 | 5 | | 22 | 10 | | 23 | 2 | | 24 | 23 | | 25 | 5 | | 26 | 9 | | 27 | 6 | | 28 | 6 | | 29 | 17 | | 30 | 21 | | 31 | 4 | | 32 | 4 | | 33 | 3 | | 34 | 3 | | 35 | 5 | | 36 | 4 | | 37 | 20 | | 38 | 12 | | 39 | 8 | | 40 | 1 | | 41 | 1 | | 42 | 39 | | 43 | 3 | | 44 | 2 | | 45 | 20 | | 46 | 5 | | 47 | 3 | | 48 | 7 | | 49 | 4 |
| |
| 58.57% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.40186915887850466 | | totalSentences | 107 | | uniqueOpeners | 43 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 50 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 10 | | totalSentences | 50 | | matches | | 0 | "She'd read the line four" | | 1 | "He'd told her once that" | | 2 | "He stood dripping on the" | | 3 | "He crossed to the middle" | | 4 | "He put it back, pulled" | | 5 | "He turned the glass a" | | 6 | "He'd walked in the front" | | 7 | "He looked at the empty" | | 8 | "He reached into his jacket" | | 9 | "He set it next to" |
| | ratio | 0.2 | |
| 20.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 44 | | totalSentences | 50 | | matches | | 0 | "Rain came off Dean Street" | | 1 | "The green neon over the" | | 2 | "Quarter to ten." | | 3 | "Rory had the week's receipts" | | 4 | "She'd read the line four" | | 5 | "Silas worked the pumps." | | 6 | "He'd told her once that" | | 7 | "The door swung." | | 8 | "Weather came in first, then" | | 9 | "He stood dripping on the" | | 10 | "Silas's right hand found the" | | 11 | "The door eased shut." | | 12 | "Water spread from the man's" | | 13 | "He crossed to the middle" | | 14 | "Silas reached for the Lagavulin." | | 15 | "The man laid his hand" | | 16 | "The bottle hung in Silas's" | | 17 | "He put it back, pulled" | | 18 | "the man said" | | 19 | "The man drank half the" |
| | ratio | 0.88 | |
| 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 | "Rory had seen that laugh before — men who came in through the bookshelf at the back, who sat in the hidden room with their coats still on and came out an hour l…" | | 1 | "He'd walked in the front door like a civilian, which meant he'd chosen the front door, which meant something." | | 2 | "Cold came in and went, and the neon buzzed on over the puddled floor, and Rory looked at the card on the bar and then at Silas, who had picked up the Lagavulin …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 59 | | tagDensity | 0.102 | | leniency | 0.203 | | rawRatio | 0 | | effectiveRatio | 0 | |