| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.6 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 74.07% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1350 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "suddenly" | | 1 | "very" | | 2 | "slowly" | | 3 | "softly" |
| |
| 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) | |
| 85.19% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1350 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "echo" | | 1 | "pulse" | | 2 | "resolved" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "let out a breath" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 90 | | matches | (empty) | |
| 79.37% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 90 | | filterMatches | | | hedgeMatches | | 0 | "appeared to" | | 1 | "happened to" | | 2 | "began to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 92 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 69 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 7 | | markdownWords | 49 | | totalWords | 1360 | | ratio | 0.036 | | matches | | 0 | "come alone, come at night, come before the moon is full or don't come at all." | | 1 | "oak" | | 2 | "pennies is nothing. Iron in the soil. Blood is iron, iron is blood, it's chemistry, it doesn't mean anything." | | 3 | "It's water off the leaves," | | 4 | "It rained at six." | | 5 | "Right," | | 6 | "Right. All right." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 6 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 1305 | | uniqueNames | 13 | | maxNameDensity | 0.77 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Park | 2 | | Rory | 10 | | Ham | 1 | | Eva | 1 | | Heartstone | 2 | | January | 1 | | Yu-Fei | 1 | | Isolde | 5 | | Cool-headed | 1 | | November | 1 | | Cardiff | 2 | | Silas | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Heartstone" | | 3 | "Yu-Fei" | | 4 | "Isolde" | | 5 | "Silas" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "January" | | 3 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 55.66% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like, she'd had a sunflower on a w" | | 1 | "No echo, obviously, there was nothing" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1360 | | matches | (empty) | |
| 94.20% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 92 | | matches | | 0 | "joking — that the" | | 1 | "pleased that her" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 35.79 | | std | 34.81 | | cv | 0.973 | | sampleLengths | | 0 | 84 | | 1 | 12 | | 2 | 124 | | 3 | 10 | | 4 | 101 | | 5 | 9 | | 6 | 60 | | 7 | 65 | | 8 | 8 | | 9 | 73 | | 10 | 3 | | 11 | 45 | | 12 | 28 | | 13 | 9 | | 14 | 20 | | 15 | 7 | | 16 | 80 | | 17 | 11 | | 18 | 5 | | 19 | 92 | | 20 | 5 | | 21 | 5 | | 22 | 74 | | 23 | 5 | | 24 | 18 | | 25 | 97 | | 26 | 6 | | 27 | 74 | | 28 | 20 | | 29 | 21 | | 30 | 10 | | 31 | 19 | | 32 | 77 | | 33 | 17 | | 34 | 4 | | 35 | 3 | | 36 | 37 | | 37 | 22 |
| |
| 93.57% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 90 | | matches | | 0 | "been chained" | | 1 | "were arranged " | | 2 | "was pleased" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 214 | | matches | | 0 | "was being" | | 1 | "were blooming" | | 2 | "was standing" | | 3 | "were not looking" | | 4 | "was walking" | | 5 | "were tracking" | | 6 | "wasn't joking " |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 4 | | flaggedSentences | 11 | | totalSentences | 92 | | ratio | 0.12 | | matches | | 0 | "What she hadn't expected was how the deer were arranged — she came over a rise and there were maybe forty of them standing in the bracken with their heads all turned the same direction, east, away from her, motionless as furniture." | | 1 | "The standing stones came up out of the dark the way a person does in a crowded room — suddenly, and already too close." | | 2 | "Eight oaks, though *oak* was a courtesy; they had gone hard and grey and grainless as stone centuries ago, and something about the way they leaned inward made her think of shoulders hunched over a card table." | | 3 | "Of course they were; they always were, that was the whole trick of the place, cornflowers and campion and great white umbels of hogweed standing up out of the frost in the last week of November like they'd never heard of it." | | 4 | "Not the way flowers face light — she knew what that looked like, she'd had a sunflower on a windowsill in Cardiff that swivelled like a satellite dish all summer." | | 5 | "No echo, obviously, there was nothing to echo off — but there was also no absorption, no soft dying-away into the trees." | | 6 | "She was good at waiting; she'd learned it in a flat in Cardiff, standing very still in a hallway, timing a man's breathing." | | 7 | "Her boots made no sound in the flowers, which was fine, which was normal; the grass here was thick as carpet." | | 8 | "The skin across her shoulders drew tight, and she had the sudden animal certainty — no evidence, no sound, nothing you could put in front of a jury — that the clearing had one more thing in it than it had thirty seconds ago." | | 9 | "She got the pendant out from under her collar and held it in her fist, and the deep crimson of it was flat and dull as a boiled sweet, no glow at all, and that was the third wrong thing and the worst one, because Silas had told her — with that particular flat delivery he used when he wasn't joking — that the Heartstone went dark for exactly one reason." | | 10 | "She walked — steady, unhurried, twelve feet to the eastern gap — and she kept her eyes on the flowers rather than the trees, because the flowers would tell her where it was, the flowers were honest, the flowers were the only honest thing left in here." |
| |
| 97.68% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 680 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.04264705882352941 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.0058823529411764705 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 92 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 92 | | mean | 14.78 | | std | 15.11 | | cv | 1.022 | | sampleLengths | | 0 | 38 | | 1 | 1 | | 2 | 14 | | 3 | 6 | | 4 | 25 | | 5 | 12 | | 6 | 10 | | 7 | 3 | | 8 | 42 | | 9 | 3 | | 10 | 5 | | 11 | 61 | | 12 | 6 | | 13 | 4 | | 14 | 24 | | 15 | 37 | | 16 | 6 | | 17 | 34 | | 18 | 9 | | 19 | 16 | | 20 | 4 | | 21 | 13 | | 22 | 24 | | 23 | 3 | | 24 | 5 | | 25 | 42 | | 26 | 10 | | 27 | 4 | | 28 | 4 | | 29 | 8 | | 30 | 30 | | 31 | 43 | | 32 | 3 | | 33 | 10 | | 34 | 22 | | 35 | 8 | | 36 | 5 | | 37 | 5 | | 38 | 23 | | 39 | 9 | | 40 | 1 | | 41 | 19 | | 42 | 7 | | 43 | 5 | | 44 | 1 | | 45 | 1 | | 46 | 3 | | 47 | 42 | | 48 | 28 | | 49 | 7 |
| |
| 63.04% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.45652173913043476 | | totalSentences | 92 | | uniqueOpeners | 42 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 80 | | matches | | 0 | "Of course they were; they" | | 1 | "Then she noticed they were" | | 2 | "Very slowly, from the dark" | | 3 | "Then, quite softly, from the" |
| | ratio | 0.05 | |
| 90.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 80 | | matches | | 0 | "She pressed her palm over" | | 1 | "She'd expected that." | | 2 | "She stopped and looked at" | | 3 | "She had counted twice." | | 4 | "She'd been here three times" | | 5 | "She stepped through." | | 6 | "She let out a breath" | | 7 | "It simply ended, the way" | | 8 | "She waited a full minute." | | 9 | "She was good at waiting;" | | 10 | "It was the sound of" | | 11 | "She knew that sound the" | | 12 | "*It's water off the leaves,*" | | 13 | "*It rained at six.*" | | 14 | "It hadn't rained at six." | | 15 | "She crossed to the flat" | | 16 | "Her boots made no sound" | | 17 | "It was tied with a" | | 18 | "She did not touch it." | | 19 | "She counted three, and turned." |
| | ratio | 0.325 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 80 | | matches | | 0 | "The gate at Richmond Park" | | 1 | "That was the first wrong" | | 2 | "The Heartstone had never been" | | 3 | "She pressed her palm over" | | 4 | "The park at night was" | | 5 | "She'd expected that." | | 6 | "She stopped and looked at" | | 7 | "The moon was one night" | | 8 | "She had counted twice." | | 9 | "The standing stones came up" | | 10 | "She'd been here three times" | | 11 | "Tonight the air between the" | | 12 | "Rory stood at the threshold" | | 13 | "Blood is iron, iron is" | | 14 | "That was the thing her" | | 15 | "She stepped through." | | 16 | "She let out a breath" | | 17 | "The grove was intact." | | 18 | "The grove was fine." | | 19 | "This was every head turned" |
| | ratio | 0.663 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 80 | | matches | (empty) | | ratio | 0 | |
| 69.60% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 4 | | matches | | 0 | "Not the way flowers face light — she knew what that looked like, she'd had a sunflower on a windowsill in Cardiff that swivelled like a satellite dish all summe…" | | 1 | "On the stone lay a small dark heap that resolved, as she crouched, into a bundle of pale ribbon wound round a lock of red hair." | | 2 | "That it was standing where she'd been standing at the threshold, in her footprints, filling them." | | 3 | "Every head that had been facing the centre of the clearing now faced the western gap between two stones, and they had done it silently, in the four seconds her …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |