| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said softly [softly]" |
| | dialogueSentences | 111 | | tagDensity | 0.081 | | leniency | 0.162 | | rawRatio | 0.111 | | effectiveRatio | 0.018 | |
| 90.53% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2111 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "carefully" | | 1 | "really" | | 2 | "suddenly" | | 3 | "softly" |
| |
| 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) | |
| 69.21% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2111 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "crystal" | | 1 | "silence" | | 2 | "unreadable" | | 3 | "spectral" | | 4 | "pulse" | | 5 | "determined" | | 6 | "warmth" | | 7 | "perfect" | | 8 | "charm" | | 9 | "whisper" | | 10 | "shattered" |
| |
| 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 | 2 | | hedgeCount | 0 | | narrationSentences | 155 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 257 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2111 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 65 | | wordCount | 1450 | | uniqueNames | 9 | | maxNameDensity | 1.59 | | worstName | "Rhys" | | maxWindowNameDensity | 3 | | worstWindowName | "Rhys" | | discoveredNames | | Morgan | 1 | | London-expensive | 1 | | Rhys | 23 | | Raven | 1 | | Nest | 1 | | Aurora | 20 | | Cardiff | 1 | | Silas | 16 | | Thick | 1 |
| | persons | | 0 | "Morgan" | | 1 | "Rhys" | | 2 | "Raven" | | 3 | "Nest" | | 4 | "Aurora" | | 5 | "Silas" |
| | places | | | globalScore | 0.707 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 93 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like a man who had learned what gr" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 0.947 | | wordCount | 2111 | | matches | | 0 | "Not awkward, not yet, but dangerous" | | 1 | "not yet, but dangerous" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 257 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 178 | | mean | 11.86 | | std | 15.95 | | cv | 1.345 | | sampleLengths | | 0 | 18 | | 1 | 3 | | 2 | 37 | | 3 | 4 | | 4 | 1 | | 5 | 12 | | 6 | 111 | | 7 | 11 | | 8 | 3 | | 9 | 18 | | 10 | 3 | | 11 | 7 | | 12 | 2 | | 13 | 67 | | 14 | 67 | | 15 | 7 | | 16 | 18 | | 17 | 15 | | 18 | 3 | | 19 | 15 | | 20 | 31 | | 21 | 4 | | 22 | 15 | | 23 | 4 | | 24 | 2 | | 25 | 9 | | 26 | 6 | | 27 | 3 | | 28 | 4 | | 29 | 3 | | 30 | 81 | | 31 | 13 | | 32 | 12 | | 33 | 22 | | 34 | 11 | | 35 | 7 | | 36 | 5 | | 37 | 4 | | 38 | 4 | | 39 | 16 | | 40 | 4 | | 41 | 2 | | 42 | 5 | | 43 | 18 | | 44 | 7 | | 45 | 6 | | 46 | 10 | | 47 | 20 | | 48 | 3 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 155 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 250 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 257 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1455 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 47 | | adverbRatio | 0.03230240549828179 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.004123711340206186 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 257 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 257 | | mean | 8.21 | | std | 7.73 | | cv | 0.941 | | sampleLengths | | 0 | 18 | | 1 | 3 | | 2 | 37 | | 3 | 4 | | 4 | 1 | | 5 | 5 | | 6 | 7 | | 7 | 9 | | 8 | 17 | | 9 | 4 | | 10 | 29 | | 11 | 30 | | 12 | 13 | | 13 | 9 | | 14 | 11 | | 15 | 3 | | 16 | 18 | | 17 | 3 | | 18 | 5 | | 19 | 2 | | 20 | 2 | | 21 | 29 | | 22 | 8 | | 23 | 6 | | 24 | 3 | | 25 | 3 | | 26 | 8 | | 27 | 10 | | 28 | 19 | | 29 | 28 | | 30 | 10 | | 31 | 1 | | 32 | 9 | | 33 | 7 | | 34 | 18 | | 35 | 3 | | 36 | 12 | | 37 | 3 | | 38 | 10 | | 39 | 5 | | 40 | 31 | | 41 | 4 | | 42 | 15 | | 43 | 4 | | 44 | 2 | | 45 | 9 | | 46 | 6 | | 47 | 3 | | 48 | 4 | | 49 | 3 |
| |
| 51.10% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.3229571984435798 | | totalSentences | 257 | | uniqueOpeners | 83 | |
| 47.62% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 140 | | matches | | 0 | "Then his mouth parted." | | 1 | "Simply still in the precise" |
| | ratio | 0.014 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 42 | | totalSentences | 140 | | matches | | 0 | "She still held the glass." | | 1 | "Her fingers tightened around the" | | 2 | "He looked sanded down." | | 3 | "His dark hair, once a" | | 4 | "His suit was expensive, London-expensive," | | 5 | "She knew the smell of" | | 6 | "He did not ask again." | | 7 | "His broken smile twitched." | | 8 | "He took the glass but" | | 9 | "She saw a yellowing bruise" | | 10 | "He had always cared about" | | 11 | "He had been the sort" | | 12 | "His limp only showed when" | | 13 | "He set a bowl of" | | 14 | "He rolled the glass once" | | 15 | "His throat worked." | | 16 | "He winced when the whisky" | | 17 | "He set the tumbler down" | | 18 | "It always tightened when old" | | 19 | "He knew the difference between" |
| | ratio | 0.3 | |
| 17.14% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 124 | | totalSentences | 140 | | matches | | 0 | "Aurora caught the tumbler before" | | 1 | "The man who had knocked" | | 2 | "She still held the glass." | | 3 | "Her fingers tightened around the" | | 4 | "Rhys Morgan looked older than" | | 5 | "He looked sanded down." | | 6 | "His dark hair, once a" | | 7 | "A thin white scar ran" | | 8 | "His suit was expensive, London-expensive," | | 9 | "The hand on the bar" | | 10 | "Silas glanced up from polishing" | | 11 | "Aurora set the tumbler down" | | 12 | "Rhys gave a short laugh." | | 13 | "The Raven’s Nest breathed around" | | 14 | "The place always felt half-hidden," | | 15 | "Men in uniforms." | | 16 | "Women with cigarettes." | | 17 | "A bridge blown open in" | | 18 | "A wedding portrait with one" | | 19 | "Aurora had lived above the" |
| | ratio | 0.886 | |
| 35.71% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 140 | | matches | | | ratio | 0.007 | |
| 60.44% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 6 | | matches | | 0 | "The man who had knocked it with his sleeve turned at the sound of her voice, and for one raw second his face stayed blank, as if he had opened the wrong door in…" | | 1 | "His dark hair, once a riot of curls that fell into his eyes during seminars and rugby nights and stupid kitchen parties, now lay cropped close to his skull." | | 2 | "His suit was expensive, London-expensive, the sort that made even stillness look tailored." | | 3 | "It always tightened when old hurt came near, as if her body kept its own calendar." | | 4 | "He looked at the stain on his cuff as if he had forgotten it." | | 5 | "Aurora’s hand drifted under the bar, feeling for the solid comfort of the cricket bat Silas kept there for men who mistook charm for weakness." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 111 | | tagDensity | 0.045 | | leniency | 0.09 | | rawRatio | 0 | | effectiveRatio | 0 | |