| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 7 | | tagDensity | 0.714 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 81.92% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1106 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "perfectly" | | 1 | "very" | | 2 | "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) | |
| 50.27% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1106 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "echo" | | 1 | "absolutely" | | 2 | "silence" | | 3 | "pulsed" | | 4 | "throb" | | 5 | "warmth" | | 6 | "resolved" | | 7 | "stomach" | | 8 | "footsteps" | | 9 | "familiar" |
| |
| 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 | 1 | | narrationSentences | 84 | | matches | | |
| 91.84% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 84 | | 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 | 50 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 6 | | markdownWords | 28 | | totalWords | 1115 | | ratio | 0.025 | | matches | | 0 | "Just go to the Grove. Wait by the third stone. He'll find you." | | 1 | "Time moves differently here." | | 2 | "Cool head" | | 3 | "Out-of-the-box. Think." | | 4 | "about" | | 5 | "It pulses near a Hel portal." |
| |
| 89.29% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 1 | | matches | | 0 | "*Cool head*, she told herself." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 24 | | wordCount | 1090 | | uniqueNames | 11 | | maxNameDensity | 0.55 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Grove" | | discoveredNames | | Grove | 4 | | London | 1 | | February | 1 | | Eva | 5 | | Richmond | 1 | | Park | 1 | | Silas | 1 | | Loud | 1 | | Heartstone | 1 | | Hel | 2 | | Rory | 6 |
| | persons | | 0 | "Grove" | | 1 | "Eva" | | 2 | "Silas" | | 3 | "Rory" |
| | places | | 0 | "London" | | 1 | "February" | | 2 | "Richmond" | | 3 | "Park" | | 4 | "Hel" |
| | globalScore | 1 | | windowScore | 1 | |
| 96.81% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 47 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1115 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 87 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 33.79 | | std | 26.89 | | cv | 0.796 | | sampleLengths | | 0 | 7 | | 1 | 86 | | 2 | 65 | | 3 | 12 | | 4 | 34 | | 5 | 31 | | 6 | 53 | | 7 | 20 | | 8 | 40 | | 9 | 13 | | 10 | 3 | | 11 | 55 | | 12 | 49 | | 13 | 16 | | 14 | 23 | | 15 | 32 | | 16 | 3 | | 17 | 78 | | 18 | 28 | | 19 | 65 | | 20 | 7 | | 21 | 68 | | 22 | 9 | | 23 | 84 | | 24 | 22 | | 25 | 8 | | 26 | 16 | | 27 | 6 | | 28 | 91 | | 29 | 11 | | 30 | 53 | | 31 | 19 | | 32 | 8 |
| |
| 92.73% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 84 | | matches | | 0 | "been locked" | | 1 | "been eleven" | | 2 | "been eleven" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 175 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 87 | | ratio | 0.092 | | matches | | 0 | "Rory noticed it the moment she stepped past the standing stones — those ancient oaks bent like old men into a ring, their bark grey as bone in the moonlight." | | 1 | "She found the third stone — taller than the others, leaning at a drunken angle, its surface carved with spirals worn nearly smooth — and she stood beside it and waited." | | 2 | "No signal, and the clock read 00:00 — not midnight, just zeros, four of them blinking patiently at her like something waiting to be fed." | | 3 | "It came from her left, somewhere beyond the tree line where the flowers gave way to darkness, and it was bright and delighted and absolutely wrong — the sound of a small child playing alone at midnight in a place no child could be." | | 4 | "She'd nearly forgotten it — the Heartstone, the gift from a benefactor she'd never met, a thumbnail of deep crimson glass on a fine silver chain that she'd taken to wearing because Eva had insisted and because, in some small superstitious corner of herself, she'd wanted to believe it meant something." | | 5 | "She still didn't, but the knowing was coming for her regardless, rising from the dark beyond the trees the way the moon had risen — too fast, too full, too wrong." | | 6 | "She turned her head and there was nothing — only the swaying flowers, the patient oaks." | | 7 | "The warm air went cold all at once, and the sweet smell beneath the green resolved at last into what it had always been — meat, left too long, gone soft and dark." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 75 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 0 | | adverbRatio | 0 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 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 | 12.82 | | std | 13.16 | | cv | 1.027 | | sampleLengths | | 0 | 7 | | 1 | 30 | | 2 | 34 | | 3 | 5 | | 4 | 1 | | 5 | 16 | | 6 | 8 | | 7 | 5 | | 8 | 5 | | 9 | 47 | | 10 | 9 | | 11 | 2 | | 12 | 1 | | 13 | 17 | | 14 | 2 | | 15 | 2 | | 16 | 13 | | 17 | 31 | | 18 | 8 | | 19 | 19 | | 20 | 8 | | 21 | 18 | | 22 | 12 | | 23 | 8 | | 24 | 4 | | 25 | 25 | | 26 | 11 | | 27 | 13 | | 28 | 3 | | 29 | 44 | | 30 | 6 | | 31 | 5 | | 32 | 6 | | 33 | 4 | | 34 | 5 | | 35 | 1 | | 36 | 28 | | 37 | 5 | | 38 | 8 | | 39 | 3 | | 40 | 5 | | 41 | 19 | | 42 | 4 | | 43 | 5 | | 44 | 27 | | 45 | 3 | | 46 | 51 | | 47 | 27 | | 48 | 1 | | 49 | 1 |
| |
| 68.58% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.45977011494252873 | | totalSentences | 87 | | uniqueOpeners | 40 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 69 | | matches | | 0 | "*Just go to the Grove." | | 1 | "Just the faint hush of" | | 2 | "Then silence, thick and total." | | 3 | "Then a second laugh joined" |
| | ratio | 0.058 | |
| 80.87% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 69 | | matches | | 0 | "It smelled of crushed green" | | 1 | "He'll find you.* Eva had" | | 2 | "Her voice came out smaller" | | 3 | "She found the third stone" | | 4 | "She was certain it had" | | 5 | "She checked her phone." | | 6 | "She turned it off and" | | 7 | "It came from her left," | | 8 | "It rose, peaked, broke off" | | 9 | "She kept very still." | | 10 | "It had been *about* her." | | 11 | "she said to the dark" | | 12 | "She backed against the stone." | | 13 | "Its surface was warm, unnervingly" | | 14 | "She'd nearly forgotten it —" | | 15 | "*It pulses near a Hel" | | 16 | "She had not wanted to" | | 17 | "She still didn't, but the" | | 18 | "She turned her head and" | | 19 | "She clutched it through her" |
| | ratio | 0.348 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 69 | | matches | | 0 | "The wildflowers should not have" | | 1 | "Rory noticed it the moment" | | 2 | "The air here was warm." | | 3 | "It smelled of crushed green" | | 4 | "Eva had told her the" | | 5 | "He'll find you.* Eva had" | | 6 | "Rory pulled her coat tighter," | | 7 | "Her voice came out smaller" | | 8 | "She found the third stone" | | 9 | "The moon hung overhead, too" | | 10 | "She was certain it had" | | 11 | "A waxing crescent, thin as" | | 12 | "Rory had thought it a" | | 13 | "She checked her phone." | | 14 | "She turned it off and" | | 15 | "That was when she heard" | | 16 | "A child, laughing." | | 17 | "It came from her left," | | 18 | "It rose, peaked, broke off" | | 19 | "Rory's heart slammed against her" |
| | ratio | 0.71 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 69 | | matches | | 0 | "Now it sat fat and" | | 1 | "Now it pulsed against her" |
| | ratio | 0.029 | |
| 31.25% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 5 | | matches | | 0 | "He'll find you.* Eva had a habit of saying things like that as though they made sense, as though it were perfectly ordinary to send your best friend into a hidd…" | | 1 | "The wildflowers nearest her bent in unison, all of them, leaning toward her as if pulled by a tide." | | 2 | "Its surface was warm, unnervingly so, like skin, and she jerked away from it and stood with nothing at her back but open air, which was worse." | | 3 | "Then a second laugh joined it, lower, an adult's voice mimicking the child's joy with none of its warmth, and a third from behind her, and a fourth, until the G…" | | 4 | "She fixed her eyes on the twelfth stone, on the dark seam beside it where the path had been, and she made herself breathe, and she made herself think, and the f…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 1 | | matches | | 0 | "Her voice came out, and the Grove seemed to swallow it whole" |
| |
| 7.14% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 7 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0.333 | | effectiveRatio | 0.286 | |