| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.444 | | leniency | 0.889 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 82.17% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1122 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | |
| 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) | |
| 46.52% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1122 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "pulse" | | 1 | "throb" | | 2 | "cascading" | | 3 | "chilled" | | 4 | "flickered" | | 5 | "silence" | | 6 | "footsteps" | | 7 | "warmth" |
| |
| 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 | 93 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 93 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 50 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1130 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 1064 | | uniqueNames | 12 | | maxNameDensity | 0.56 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Eva" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Eva | 2 | | Heartstone | 1 | | Isabella | 1 | | Plantation | 1 | | Thursday | 1 | | March | 2 | | Cardiff | 1 | | Flat | 1 | | London | 1 | | Rory | 6 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Isabella" | | 3 | "Plantation" | | 4 | "March" | | 5 | "Cardiff" | | 6 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | 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 | 1130 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 98 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 28.97 | | std | 25.93 | | cv | 0.895 | | sampleLengths | | 0 | 64 | | 1 | 26 | | 2 | 15 | | 3 | 53 | | 4 | 2 | | 5 | 76 | | 6 | 9 | | 7 | 52 | | 8 | 3 | | 9 | 56 | | 10 | 8 | | 11 | 30 | | 12 | 9 | | 13 | 85 | | 14 | 7 | | 15 | 7 | | 16 | 62 | | 17 | 8 | | 18 | 13 | | 19 | 5 | | 20 | 73 | | 21 | 6 | | 22 | 49 | | 23 | 1 | | 24 | 5 | | 25 | 3 | | 26 | 42 | | 27 | 66 | | 28 | 33 | | 29 | 9 | | 30 | 5 | | 31 | 36 | | 32 | 49 | | 33 | 9 | | 34 | 31 | | 35 | 27 | | 36 | 6 | | 37 | 79 | | 38 | 11 |
| |
| 97.72% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 93 | | matches | | 0 | "been locked" | | 1 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 161 | | matches | | 0 | "was sleeping" | | 1 | "was choosing" | | 2 | "were absorbing" | | 3 | "were breathing" | | 4 | "was pacing" | | 5 | "was playing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 98 | | ratio | 0.071 | | matches | | 0 | "Rory knew this the way she knew her own surname — because Eva had warned her twice, and because the sign beside the padlock said so in letters too faded to be recent." | | 1 | "The path she took wasn't marked — Eva had drawn it on the back of a receipt, a scribble of arrows past the Isabella Plantation, then left at the old oak split by lightning, then straight." | | 2 | "She could smell cut grass and, underneath it, something floral — honeysuckle, maybe, though honeysuckle did not bloom in March." | | 3 | "Seven of them, or eight, or nine — it was difficult to be sure, because counting them once gave her one number, and counting them again gave her another." | | 4 | "Then the absence of traffic — the low constant hum of London that she had stopped hearing years ago was gone, and its going made her ears ring." | | 5 | "The footsteps continued — not hurrying, not stopping — and she understood, in a cold, very specific way, that whatever made them was pacing her ring." | | 6 | "Somewhere, far off and soft as a held note, the blackbird began to sing again — the same cascade, the same bright midday run of it, but slower now, as if whoever had been working the instrument had grown tired and was playing the tune from memory, a beat behind itself." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1061 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 42 | | adverbRatio | 0.03958529688972667 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.002827521206409048 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 11.53 | | std | 9.66 | | cv | 0.837 | | sampleLengths | | 0 | 10 | | 1 | 33 | | 2 | 21 | | 3 | 11 | | 4 | 15 | | 5 | 6 | | 6 | 9 | | 7 | 10 | | 8 | 4 | | 9 | 22 | | 10 | 17 | | 11 | 2 | | 12 | 36 | | 13 | 4 | | 14 | 36 | | 15 | 9 | | 16 | 6 | | 17 | 17 | | 18 | 2 | | 19 | 15 | | 20 | 4 | | 21 | 8 | | 22 | 3 | | 23 | 6 | | 24 | 6 | | 25 | 24 | | 26 | 20 | | 27 | 3 | | 28 | 3 | | 29 | 2 | | 30 | 7 | | 31 | 1 | | 32 | 12 | | 33 | 10 | | 34 | 9 | | 35 | 29 | | 36 | 4 | | 37 | 19 | | 38 | 17 | | 39 | 16 | | 40 | 3 | | 41 | 4 | | 42 | 7 | | 43 | 5 | | 44 | 31 | | 45 | 26 | | 46 | 8 | | 47 | 5 | | 48 | 8 | | 49 | 5 |
| |
| 61.90% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.4387755102040816 | | totalSentences | 98 | | uniqueOpeners | 43 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 83 | | matches | | 0 | "Instead, as she passed the" | | 1 | "Then the absence of traffic" | | 2 | "Then the absence of wind," | | 3 | "Then, under all of that," | | 4 | "Somewhere, far off and soft" |
| | ratio | 0.06 | |
| 94.70% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 83 | | matches | | 0 | "She slipped the torch from" | | 1 | "She pressed her palm flat" | | 2 | "She had grown up with" | | 3 | "She knew their hours." | | 4 | "They did not sing like" | | 5 | "She kept walking." | | 6 | "She could smell cut grass" | | 7 | "Her torch flickered." | | 8 | "She shook it." | | 9 | "Her voice sounded strange" | | 10 | "She saw them before she" | | 11 | "They stood in a loose" | | 12 | "Her torch beam passed over" | | 13 | "She stopped in the centre" | | 14 | "she said, low" | | 15 | "She became aware of the" | | 16 | "Her own voice embarrassed her." | | 17 | "She held very still." | | 18 | "She pressed her fingers to" | | 19 | "She did not turn around." |
| | ratio | 0.313 | |
| 98.55% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 83 | | matches | | 0 | "The wrought-iron gate to Richmond" | | 1 | "Rory knew this the way" | | 2 | "She slipped the torch from" | | 3 | "The beam went thin and" | | 4 | "The Heartstone lay warm against" | | 5 | "A low, steady pulse, as" | | 6 | "She pressed her palm flat" | | 7 | "The path she took wasn't" | | 8 | "The first thing that was" | | 9 | "A blackbird, somewhere ahead of" | | 10 | "She had grown up with" | | 11 | "She knew their hours." | | 12 | "They did not sing like" | | 13 | "She kept walking." | | 14 | "The second thing was the" | | 15 | "The mist should have chilled" | | 16 | "She could smell cut grass" | | 17 | "Her torch flickered." | | 18 | "She shook it." | | 19 | "Her voice sounded strange" |
| | ratio | 0.723 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 83 | | matches | | 0 | "As though the trees were" | | 1 | "To the left, past the" |
| | ratio | 0.024 | |
| 32.97% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 6 | | matches | | 0 | "A low, steady pulse, as if some small creature had curled up under her collarbone and was sleeping off a good meal." | | 1 | "Full-throated, midday bright, cascading through its repertoire as if the sun were up and the worms rising." | | 2 | "Trees that had grown old standing still on purpose, their bark fissured like the backs of old men's hands." | | 3 | "Foxgloves shoulder-high, primroses in scatters, cornflowers bright as the blue on a willow-pattern plate, all of them in bloom together in a month that should h…" | | 4 | "The kind of sweetness that sat on top of something else." | | 5 | "Somewhere, far off and soft as a held note, the blackbird began to sing again — the same cascade, the same bright midday run of it, but slower now, as if whoeve…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 2 | | matches | | 0 | "she said, low" | | 1 | "Rory told, quiet" |
| |
| 38.89% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 9 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.333 | | effectiveRatio | 0.222 | |