| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 19 | | tagDensity | 0.421 | | leniency | 0.842 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1063 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 71.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1063 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "whisper" | | 1 | "pulsed" | | 2 | "stomach" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 98 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 98 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 108 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1074 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 1013 | | uniqueNames | 16 | | maxNameDensity | 0.39 | | worstName | "Eva" | | maxWindowNameDensity | 2 | | worstWindowName | "Eva" | | discoveredNames | | Danebury | 1 | | Avenue | 1 | | Gate | 1 | | London | 1 | | Park | 2 | | Heathrow | 1 | | Flat | 1 | | November | 1 | | High | 1 | | Saturday | 1 | | Cardiff | 1 | | Richmond | 2 | | Eva | 4 | | Peckham | 1 | | Like | 1 | | Rory | 2 |
| | persons | | | places | | 0 | "Danebury" | | 1 | "Avenue" | | 2 | "London" | | 3 | "Park" | | 4 | "Flat" | | 5 | "November" | | 6 | "Cardiff" | | 7 | "Richmond" | | 8 | "Peckham" |
| | globalScore | 1 | | windowScore | 1 | |
| 29.03% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 3 | | matches | | 0 | "felt like walking through a curtain of" | | 1 | "sounded like that" | | 2 | "sounded like this" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1074 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 108 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 27.54 | | std | 18.63 | | cv | 0.677 | | sampleLengths | | 0 | 65 | | 1 | 15 | | 2 | 11 | | 3 | 31 | | 4 | 43 | | 5 | 41 | | 6 | 31 | | 7 | 10 | | 8 | 10 | | 9 | 42 | | 10 | 13 | | 11 | 29 | | 12 | 35 | | 13 | 54 | | 14 | 9 | | 15 | 37 | | 16 | 13 | | 17 | 6 | | 18 | 20 | | 19 | 13 | | 20 | 25 | | 21 | 43 | | 22 | 22 | | 23 | 73 | | 24 | 64 | | 25 | 16 | | 26 | 4 | | 27 | 31 | | 28 | 7 | | 29 | 38 | | 30 | 1 | | 31 | 54 | | 32 | 17 | | 33 | 24 | | 34 | 52 | | 35 | 21 | | 36 | 14 | | 37 | 39 | | 38 | 1 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 98 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 152 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 108 | | ratio | 0.093 | | matches | | 0 | "Not faded — dropped, the way a radio drops when someone lifts it off the earth." | | 1 | "Between them, colour — a low drift of wildflowers, poppies and cow parsley, open wide in November under a full moon." | | 2 | "Her breath clouded and stayed — hung at mouth height, a small pale ghost that refused to dissolve." | | 3 | "She felt the answer come up through her boots half a second later — a slower beat, deeper, from under the soil." | | 4 | "Six notes of a tune she almost knew — something her mum used to sing over the hoover on Saturday mornings, except this version skipped every third note, as if the singer had never quite understood music from the outside." | | 5 | "Movement at the edge of her vision — between two oaks, something pale and vertical, taller than her, hands hanging past its knees." | | 6 | "She watched it slide — a coin pushed across a table, one side of heaven to the other in the space of one breath." | | 7 | "Word for word, from the treeline — her Cardiff accent scraped off it, played back through a wall." | | 8 | "Eva's voice, from the dark between the oaks — the exact pitch of her calling up the stairwell at the flat." | | 9 | "The pendant pulsed out of rhythm with her heart — one beat, two — and on the third, the ground answered." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1005 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 35 | | adverbRatio | 0.03482587064676617 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0009950248756218905 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 108 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 108 | | mean | 9.94 | | std | 8.82 | | cv | 0.887 | | sampleLengths | | 0 | 34 | | 1 | 31 | | 2 | 12 | | 3 | 3 | | 4 | 5 | | 5 | 4 | | 6 | 2 | | 7 | 20 | | 8 | 11 | | 9 | 8 | | 10 | 11 | | 11 | 5 | | 12 | 19 | | 13 | 13 | | 14 | 16 | | 15 | 5 | | 16 | 3 | | 17 | 2 | | 18 | 2 | | 19 | 4 | | 20 | 16 | | 21 | 2 | | 22 | 2 | | 23 | 7 | | 24 | 8 | | 25 | 1 | | 26 | 1 | | 27 | 10 | | 28 | 3 | | 29 | 18 | | 30 | 21 | | 31 | 7 | | 32 | 6 | | 33 | 13 | | 34 | 16 | | 35 | 18 | | 36 | 17 | | 37 | 5 | | 38 | 8 | | 39 | 16 | | 40 | 13 | | 41 | 9 | | 42 | 2 | | 43 | 1 | | 44 | 4 | | 45 | 5 | | 46 | 3 | | 47 | 1 | | 48 | 22 | | 49 | 5 |
| |
| 82.10% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.5370370370370371 | | totalSentences | 108 | | uniqueOpeners | 58 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 7 | | totalSentences | 82 | | matches | | 0 | "All facing the same direction." | | 1 | "Then the sound dropped." | | 2 | "Just her trainers on wet" | | 3 | "Even the whisper came back" | | 4 | "Then to her right." | | 5 | "Then everywhere at once, like" | | 6 | "Then a hum." |
| | ratio | 0.085 | |
| 93.17% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 82 | | matches | | 0 | "She'd stopped asking why the" | | 1 | "She just followed." | | 2 | "She rolled her bike through" | | 3 | "She was three fields in" | | 4 | "Her feet didn't get a" | | 5 | "Her breath clouded and stayed" | | 6 | "She pulled out her phone." | | 7 | "She lit the torch and" | | 8 | "She looked once more and" | | 9 | "She pocketed it" | | 10 | "She felt the answer come" | | 11 | "She stood still and counted." | | 12 | "She walked the ring instead," | | 13 | "Her voice cracked the stillness" | | 14 | "She turned her head." | | 15 | "She checked the sky and" | | 16 | "She watched it slide —" | | 17 | "Her shadow lay pointing east," | | 18 | "She raised the dead phone" | | 19 | "Her own voice." |
| | ratio | 0.317 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 56 | | totalSentences | 82 | | matches | | 0 | "The last order of the" | | 1 | "Rory took it because the" | | 2 | "She'd stopped asking why the" | | 3 | "She just followed." | | 4 | "The drop-off took twelve minutes." | | 5 | "The burn didn't fade." | | 6 | "Roehampton Gate was chained, but" | | 7 | "She rolled her bike through" | | 8 | "Richmond Park at night was" | | 9 | "Fallow deer drifted out of" | | 10 | "The A3 murmured somewhere east." | | 11 | "A plane crossed over every" | | 12 | "She was three fields in" | | 13 | "A dozen of them, scattered" | | 14 | "The pendant flared hot enough" | | 15 | "Every part of her said" | | 16 | "Her feet didn't get a" | | 17 | "A pressure, a shiver, and" | | 18 | "Her breath clouded and stayed" | | 19 | "She pulled out her phone." |
| | ratio | 0.683 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 82 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 1 | | matches | | 0 | "Six notes of a tune she almost knew — something her mum used to sing over the hoover on Saturday mornings, except this version skipped every third note, as if t…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 19 | | tagDensity | 0.053 | | leniency | 0.105 | | rawRatio | 0 | | effectiveRatio | 0 | |