| 33.33% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 6 | | adverbTagCount | 1 | | adverbTags | | 0 | "the voice said again [again]" |
| | dialogueSentences | 7 | | tagDensity | 0.857 | | leniency | 1 | | rawRatio | 0.167 | | effectiveRatio | 0.167 | |
| 79.92% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1245 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "very" | | 1 | "completely" | | 2 | "slightly" |
| |
| 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) | |
| 87.95% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1245 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "silence" | | 1 | "weight" | | 2 | "lilt" |
| |
| 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 | 86 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 86 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 87 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1256 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 1241 | | uniqueNames | 17 | | maxNameDensity | 0.73 | | worstName | "Aurora" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 9 | | Silas | 4 | | Park | 2 | | London | 1 | | Heathrow | 1 | | Pen | 1 | | Ponds | 1 | | Sawyer | 1 | | Hill | 1 | | Eva | 1 | | May | 1 | | Camden | 1 | | Soho | 1 | | Cardiff | 1 | | Llandaff | 1 | | Richmond | 2 | | Carter | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Silas" | | 2 | "Sawyer" | | 3 | "Eva" | | 4 | "Carter" |
| | places | | 0 | "Park" | | 1 | "London" | | 2 | "Heathrow" | | 3 | "Pen" | | 4 | "Camden" | | 5 | "Soho" | | 6 | "Cardiff" | | 7 | "Llandaff" | | 8 | "Richmond" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 1 | | matches | | 0 | "as though asking permission" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.796 | | wordCount | 1256 | | matches | | 0 | "not in one narrow line this time, but in eight" |
| |
| 51.72% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 87 | | matches | | 0 | "understood that she counting, that she'd" | | 1 | "learned that much" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 29.9 | | std | 27.35 | | cv | 0.914 | | sampleLengths | | 0 | 26 | | 1 | 12 | | 2 | 111 | | 3 | 57 | | 4 | 39 | | 5 | 10 | | 6 | 3 | | 7 | 19 | | 8 | 3 | | 9 | 92 | | 10 | 35 | | 11 | 83 | | 12 | 3 | | 13 | 44 | | 14 | 58 | | 15 | 13 | | 16 | 57 | | 17 | 3 | | 18 | 3 | | 19 | 26 | | 20 | 40 | | 21 | 14 | | 22 | 11 | | 23 | 38 | | 24 | 6 | | 25 | 87 | | 26 | 7 | | 27 | 61 | | 28 | 19 | | 29 | 6 | | 30 | 22 | | 31 | 3 | | 32 | 44 | | 33 | 9 | | 34 | 5 | | 35 | 53 | | 36 | 29 | | 37 | 31 | | 38 | 4 | | 39 | 15 | | 40 | 44 | | 41 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 86 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 196 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 2 | | flaggedSentences | 10 | | totalSentences | 87 | | ratio | 0.115 | | matches | | 0 | "She'd left the bike leaning against a hawthorn at the edge of the car park and walked the last half-mile in, the way Silas told her to — no metal past the stones, no lights, no promises you can't keep." | | 1 | "She stood in the gap between two oaks — the standing stones, Silas had called them, though they weren't stone at all, they were trees older than the city, their trunks fluted and grey as pillars, their crowns long dead — and the world behind her had gone quiet as a held breath." | | 2 | "Not warmer, exactly — softer." | | 3 | "She'd sat across a table from a man who broke her ribs and told a magistrate about it in a level voice; she could stand in a field of wrong flowers." | | 4 | "Three weeks of the pendant going warm in the strangest places — outside a launderette in Camden, in the stairwell of her own building, once against her sternum in the middle of a delivery so hot she'd dropped a bag of char siu in the road — and nobody would tell her why." | | 5 | "Then, from behind her, a sound she recognised so completely that her whole body understood it before her mind did — a soft double click, metal on metal, the noise a bicycle makes when the chain settles on the sprocket." | | 6 | "She had come in maybe thirty paces; she counted forty going out, then fifty, and the two grey oaks stayed exactly the same size ahead of her, patient as ushers." | | 7 | "She thought about the delivery bag still strapped to her back — she hadn't wanted to leave it with the bike — and how absurd it was, how absurd she was, twenty-five years old and lost in a field with somebody's cold spring rolls." | | 8 | "Not warm — not yet." | | 9 | "And out in the dark, at the treeline, all around the clearing, the tall grass began to sway — not in one narrow line this time, but in eight or nine of them, all bending inward, all moving toward the centre where she stood." |
| |
| 90.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1234 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 55 | | adverbRatio | 0.04457050243111831 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.011345218800648298 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 87 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 87 | | mean | 14.44 | | std | 14.47 | | cv | 1.003 | | sampleLengths | | 0 | 26 | | 1 | 5 | | 2 | 3 | | 3 | 4 | | 4 | 40 | | 5 | 52 | | 6 | 19 | | 7 | 4 | | 8 | 53 | | 9 | 3 | | 10 | 5 | | 11 | 11 | | 12 | 20 | | 13 | 5 | | 14 | 5 | | 15 | 3 | | 16 | 19 | | 17 | 3 | | 18 | 7 | | 19 | 5 | | 20 | 6 | | 21 | 51 | | 22 | 5 | | 23 | 7 | | 24 | 11 | | 25 | 4 | | 26 | 31 | | 27 | 6 | | 28 | 6 | | 29 | 53 | | 30 | 6 | | 31 | 12 | | 32 | 3 | | 33 | 3 | | 34 | 4 | | 35 | 37 | | 36 | 4 | | 37 | 30 | | 38 | 3 | | 39 | 3 | | 40 | 18 | | 41 | 13 | | 42 | 5 | | 43 | 17 | | 44 | 35 | | 45 | 3 | | 46 | 3 | | 47 | 7 | | 48 | 6 | | 49 | 13 |
| |
| 41.38% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.3448275862068966 | | totalSentences | 87 | | uniqueOpeners | 30 | |
| 81.30% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 82 | | matches | | 0 | "Then, from behind her, a" | | 1 | "Just no longer cold." |
| | ratio | 0.024 | |
| 73.66% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 82 | | matches | | 0 | "She'd left the bike leaning" | | 1 | "She stood in the gap" | | 2 | "It looked exactly the way" | | 3 | "She should have brought Eva." | | 4 | "She should have brought anyone." | | 5 | "Her voice went out about" | | 6 | "She stepped through." | | 7 | "It hadn't been overhead four" | | 8 | "It had been low and" | | 9 | "She'd sat across a table" | | 10 | "She had come for an" | | 11 | "She'd checked it twice, thumb" | | 12 | "She didn't turn her head." | | 13 | "She'd learned that much on" | | 14 | "She slid her eyes left" | | 15 | "Her bike was half a" | | 16 | "she said, out loud, and" | | 17 | "She started walking toward the" | | 18 | "It took longer than it" | | 19 | "She had come in maybe" |
| | ratio | 0.366 | |
| 69.76% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 82 | | matches | | 0 | "The bike chain had stopped" | | 1 | "That was the first thing." | | 2 | "The absence of one." | | 3 | "She'd left the bike leaning" | | 4 | "Richmond Park at two in" | | 5 | "A stag had coughed at" | | 6 | "She stood in the gap" | | 7 | "Aurora turned around." | | 8 | "The park was still there." | | 9 | "The grass, the fence line," | | 10 | "It looked exactly the way" | | 11 | "She should have brought Eva." | | 12 | "She should have brought anyone." | | 13 | "Her voice went out about" | | 14 | "She stepped through." | | 15 | "The temperature changed on the" | | 16 | "February let go of her" | | 17 | "The frost under her feet" | | 18 | "The moon was directly overhead." | | 19 | "It hadn't been overhead four" |
| | ratio | 0.78 | |
| 60.98% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 82 | | matches | | 0 | "Now there was nothing." |
| | ratio | 0.012 | |
| 58.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 4 | | matches | | 0 | "The frost under her feet became grass, then flowers, and by the time she reached the middle of the clearing she was ankle-deep in cowslips and cornflowers and s…" | | 1 | "A faint, patient heat, the temperature of a hand that had been resting somewhere a long time and had only now begun to press." | | 2 | "It had the small Cardiff lilt she'd spent seven years scrubbing out of her own mouth, and it was her mother's voice, exactly and completely her mother's voice, …" | | 3 | "Something in her, some old cold animal sense far below thought, told her that turning around was the last decision she would ever be allowed to make." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 6 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 7 | | tagDensity | 0.857 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |