| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 63 | | tagDensity | 0.317 | | leniency | 0.635 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 83.70% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1227 | | totalAiIsmAdverbs | 4 | | 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) | |
| 100.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1227 | | totalAiIsms | 0 | | found | (empty) | | highlights | (empty) | |
| 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 | 47 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 47 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 58 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1231 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 664 | | uniqueNames | 7 | | maxNameDensity | 1.66 | | worstName | "Bethan" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Bethan" | | discoveredNames | | Rory | 10 | | Nest | 1 | | Talisker | 1 | | Silas | 3 | | Bethan | 11 | | National | 1 | | Museum | 1 |
| | persons | | | places | (empty) | | globalScore | 0.672 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 35 | | 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 | 1231 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 90 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 59 | | mean | 20.86 | | std | 18.89 | | cv | 0.905 | | sampleLengths | | 0 | 49 | | 1 | 13 | | 2 | 17 | | 3 | 2 | | 4 | 3 | | 5 | 42 | | 6 | 57 | | 7 | 63 | | 8 | 23 | | 9 | 16 | | 10 | 1 | | 11 | 50 | | 12 | 5 | | 13 | 64 | | 14 | 4 | | 15 | 43 | | 16 | 11 | | 17 | 7 | | 18 | 2 | | 19 | 3 | | 20 | 13 | | 21 | 36 | | 22 | 3 | | 23 | 39 | | 24 | 7 | | 25 | 29 | | 26 | 19 | | 27 | 19 | | 28 | 14 | | 29 | 3 | | 30 | 30 | | 31 | 38 | | 32 | 6 | | 33 | 31 | | 34 | 3 | | 35 | 48 | | 36 | 4 | | 37 | 40 | | 38 | 26 | | 39 | 3 | | 40 | 45 | | 41 | 16 | | 42 | 42 | | 43 | 2 | | 44 | 4 | | 45 | 23 | | 46 | 3 | | 47 | 49 | | 48 | 59 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 47 | | matches | (empty) | |
| 82.01% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 113 | | matches | | 0 | "was polishing" | | 1 | "were nearly touching" |
| |
| 47.62% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 90 | | ratio | 0.033 | | matches | | 0 | "Rain had got into everything by half nine — Rory's collar, her socks, the seams of the thermal bag slung across her back." | | 1 | "She stood there with her umbrella under her arm like a briefcase, taking her in — the wet hi-vis, the black hair plastered flat, the bag by the door with GOLDEN EMPRESS stitched across it in gold thread." | | 2 | "Rory looked at her — at the collarbones where there used to be a bit of softness, the roots done properly, the small vertical line between her brows that hadn't existed when they were nineteen and sharing chips on the steps of the National Museum at four in the morning, arguing about whether either of them would ever leave." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 682 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 13 | | adverbRatio | 0.01906158357771261 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.007331378299120235 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 13.68 | | std | 11.56 | | cv | 0.845 | | sampleLengths | | 0 | 23 | | 1 | 26 | | 2 | 13 | | 3 | 17 | | 4 | 2 | | 5 | 3 | | 6 | 28 | | 7 | 7 | | 8 | 7 | | 9 | 17 | | 10 | 31 | | 11 | 9 | | 12 | 3 | | 13 | 24 | | 14 | 19 | | 15 | 17 | | 16 | 3 | | 17 | 20 | | 18 | 7 | | 19 | 9 | | 20 | 1 | | 21 | 8 | | 22 | 38 | | 23 | 4 | | 24 | 5 | | 25 | 42 | | 26 | 19 | | 27 | 3 | | 28 | 4 | | 29 | 34 | | 30 | 9 | | 31 | 11 | | 32 | 7 | | 33 | 2 | | 34 | 3 | | 35 | 13 | | 36 | 20 | | 37 | 16 | | 38 | 3 | | 39 | 39 | | 40 | 7 | | 41 | 21 | | 42 | 8 | | 43 | 19 | | 44 | 19 | | 45 | 3 | | 46 | 11 | | 47 | 3 | | 48 | 24 | | 49 | 6 |
| |
| 63.70% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.45555555555555555 | | totalSentences | 90 | | uniqueOpeners | 41 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 42 | | matches | (empty) | | ratio | 0 | |
| 67.62% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 42 | | matches | | 0 | "She dropped it by the" | | 1 | "He set the glass down" | | 2 | "His signet ring ticked against" | | 3 | "She took the stool at" | | 4 | "She had a camel coat" | | 5 | "She looked at the ceiling," | | 6 | "She stood there with her" | | 7 | "She laughed, and the laugh" | | 8 | "She unbuttoned the coat and" | | 9 | "She turned her hand over" | | 10 | "He went away down the" | | 11 | "She took the soda water" | | 12 | "She smiled at the counter" | | 13 | "She lifted her eyes then," | | 14 | "She made herself stop." | | 15 | "She laughed, and it had" |
| | ratio | 0.381 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 39 | | totalSentences | 42 | | matches | | 0 | "Rain had got into everything" | | 1 | "She dropped it by the" | | 2 | "Silas said, without looking up" | | 3 | "He set the glass down" | | 4 | "His signet ring ticked against" | | 5 | "The bar held four people" | | 6 | "She took the stool at" | | 7 | "The radiator behind her knees" | | 8 | "The door went." | | 9 | "She had a camel coat" | | 10 | "She looked at the ceiling," | | 11 | "Rory knew the voice before" | | 12 | "Bethan didn't come closer straight" | | 13 | "She stood there with her" | | 14 | "She laughed, and the laugh" | | 15 | "She unbuttoned the coat and" | | 16 | "She turned her hand over" | | 17 | "Silas set down a coaster" | | 18 | "He went away down the" | | 19 | "Rory watched Bethan arrange herself:" |
| | ratio | 0.929 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 42 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 19 | | technicalSentenceCount | 1 | | matches | | 0 | "Rory looked at her — at the collarbones where there used to be a bit of softness, the roots done properly, the small vertical line between her brows that hadn't…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 1 | | matches | | 0 | "She laughed, and the laugh was thinner than it used to be, the low dirty one that had got them thrown out of the Students' Union three times in second year sanded down to something you could bring to a meeting" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 3 | | fancyTags | | 0 | "He set (set)" | | 1 | "She laughed (laugh)" | | 2 | "She laughed (laugh)" |
| | dialogueSentences | 63 | | tagDensity | 0.143 | | leniency | 0.286 | | rawRatio | 0.333 | | effectiveRatio | 0.095 | |