| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 84.29% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1591 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slightly" | | 1 | "very" | | 2 | "slowly" |
| |
| 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) | |
| 62.29% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1591 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "weight" | | 1 | "flickered" | | 2 | "pulse" | | 3 | "mechanical" | | 4 | "pulsed" | | 5 | "comfortable" | | 6 | "familiar" | | 7 | "silence" |
| |
| 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 | 133 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 133 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 133 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 7 | | totalWords | 1586 | | ratio | 0.004 | | matches | | 0 | "Midnight. The standing oaks. Isolde’s grove." | | 1 | "e" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 0 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 1583 | | uniqueNames | 7 | | maxNameDensity | 0.57 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 1 | | Park | 1 | | London | 1 | | Cardiff | 1 | | Rory | 9 | | One | 3 | | Three | 3 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Cardiff" | | 4 | "One" |
| | globalScore | 1 | | windowScore | 1 | |
| 74.24% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 99 | | glossingSentenceCount | 3 | | matches | | 0 | "as if covering it might keep whatever was out there from seeing it" | | 1 | "felt like an invitation" | | 2 | "seemed taller than they had been when she arrived" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 2.522 | | wordCount | 1586 | | matches | | 0 | "not between the stones but among them, a pale flutter like a hand" | | 1 | "not from one place but from several, as if the clearing itself had been holding its" | | 2 | "not with branches or mist, but with a flat gray darkness" | | 3 | "not matching her heartbeat but dragging it, speeding it in a way" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 133 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 24 | | mean | 66.08 | | std | 34.35 | | cv | 0.52 | | sampleLengths | | 0 | 94 | | 1 | 123 | | 2 | 3 | | 3 | 43 | | 4 | 68 | | 5 | 84 | | 6 | 68 | | 7 | 87 | | 8 | 11 | | 9 | 3 | | 10 | 60 | | 11 | 64 | | 12 | 91 | | 13 | 4 | | 14 | 98 | | 15 | 94 | | 16 | 50 | | 17 | 116 | | 18 | 91 | | 19 | 50 | | 20 | 102 | | 21 | 59 | | 22 | 80 | | 23 | 43 |
| |
| 89.43% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 133 | | matches | | 0 | "was gone" | | 1 | "been caught" | | 2 | "was gone" | | 3 | "being poured" | | 4 | "been written" | | 5 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 9 | | totalVerbs | 245 | | matches | | 0 | "were blooming" | | 1 | "were growing" | | 2 | "was not coming" | | 3 | "was not offering" | | 4 | "was offering" | | 5 | "was breathing" | | 6 | "was standing" | | 7 | "was pulsing" | | 8 | "was not breathing" |
| |
| 13.96% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 2 | | flaggedSentences | 6 | | totalSentences | 133 | | ratio | 0.045 | | matches | | 0 | "The pendant—a deep crimson stone the size of a thumbnail on a silver chain—hung cold against her collarbone." | | 1 | "Birdsong at midnight was rare enough; birdsong repeated with mechanical precision was something else." | | 2 | "Then something moved at the edge of her vision—not between the stones but among them, a pale flutter like a hand or a face turning away." | | 3 | "Fear was this rapid ticking in her chest; danger was still out there, hidden, patient." | | 4 | "The gap between the oaks had closed—not with branches or mist, but with a flat gray darkness where the way back should have been." | | 5 | "One of the shapes she had mistaken for a stone was standing closer now, still as a tree, but the wrong shape for a tree—too straight through the trunk, too narrow at the top, too much like shoulders under a coat of moss and bark." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 182 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 5 | | adverbRatio | 0.027472527472527472 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.005494505494505495 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 133 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 133 | | mean | 11.92 | | std | 8.54 | | cv | 0.716 | | sampleLengths | | 0 | 15 | | 1 | 29 | | 2 | 23 | | 3 | 7 | | 4 | 14 | | 5 | 6 | | 6 | 5 | | 7 | 33 | | 8 | 18 | | 9 | 31 | | 10 | 11 | | 11 | 1 | | 12 | 3 | | 13 | 21 | | 14 | 3 | | 15 | 3 | | 16 | 9 | | 17 | 16 | | 18 | 8 | | 19 | 7 | | 20 | 26 | | 21 | 12 | | 22 | 14 | | 23 | 4 | | 24 | 6 | | 25 | 6 | | 26 | 4 | | 27 | 32 | | 28 | 11 | | 29 | 8 | | 30 | 17 | | 31 | 12 | | 32 | 11 | | 33 | 7 | | 34 | 29 | | 35 | 8 | | 36 | 8 | | 37 | 5 | | 38 | 10 | | 39 | 13 | | 40 | 8 | | 41 | 5 | | 42 | 14 | | 43 | 6 | | 44 | 31 | | 45 | 11 | | 46 | 3 | | 47 | 26 | | 48 | 5 | | 49 | 1 |
| |
| 34.96% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 20 | | diversityRatio | 0.2932330827067669 | | totalSentences | 133 | | uniqueOpeners | 39 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 125 | | matches | | 0 | "Then the note came under" | | 1 | "Exactly the same pitch, exactly" | | 2 | "Then something moved at the" | | 3 | "Only a drift of white" | | 4 | "Then the pendant pulsed." |
| | ratio | 0.04 | |
| 82.40% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 43 | | totalSentences | 125 | | matches | | 0 | "Her phone had died eight" | | 1 | "She thought about turning back." | | 2 | "She stepped through." | | 3 | "It did not grow colder," | | 4 | "It grew warmer, and moist," | | 5 | "She caught her balance and" | | 6 | "She counted the stones." | | 7 | "She watched the spaces between" | | 8 | "It was not a bird." | | 9 | "She snapped her head around." | | 10 | "She had dealt with bad" | | 11 | "She had walked out of" | | 12 | "She knew the difference between" | | 13 | "She stepped forward into the" | | 14 | "Her boots crushed flowers, and" | | 15 | "She checked her watch." | | 16 | "It was not warm, not" | | 17 | "It was a single push" | | 18 | "She sucked in a breath." | | 19 | "Her own heart stuttered to" |
| | ratio | 0.344 | |
| 80.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 95 | | totalSentences | 125 | | matches | | 0 | "The path between the oaks" | | 1 | "Rory stood on a dirt" | | 2 | "Her phone had died eight" | | 3 | "The screen had been at" | | 4 | "That was the first wrong" | | 5 | "She thought about turning back." | | 6 | "The note in her jacket" | | 7 | "The pendant—a deep crimson stone" | | 8 | "The standing oaks." | | 9 | "Isolde’s grove.* And she had" | | 10 | "She stepped through." | | 11 | "The air changed." | | 12 | "It did not grow colder," | | 13 | "It grew warmer, and moist," | | 14 | "Rory’s boots sank into moss" | | 15 | "She caught her balance and" | | 16 | "The clearing was a wide" | | 17 | "The wildflowers were blooming in" | | 18 | "That was the second wrong" | | 19 | "She counted the stones." |
| | ratio | 0.76 | |
| 40.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 125 | | matches | | 0 | "Now they leaned together like" |
| | ratio | 0.008 | |
| 48.32% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 68 | | technicalSentenceCount | 9 | | matches | | 0 | "The clearing was a wide bowl of grass and flowers, lit by a moon that hung too low and too large, the color of old brass." | | 1 | "Eight standing monoliths ringed the clearing, each one half-grown with ancient oak, roots and trunk fused into gray rock as though the trees had been caught in …" | | 2 | "The metal was still cold, but her fingers found the gem and pressed it hard against her chest, as if covering it might keep whatever was out there from seeing i…" | | 3 | "Her boots crushed flowers, and they released their scent in too-rich puffs, as if they had been waiting for her weight." | | 4 | "Another pulse came, steady, as if some deep mechanism had woken beneath the stone." | | 5 | "The stone grew warm, then hot, then almost comfortable in a way that was worse than heat." | | 6 | "She heard it then: a long, low exhalation, not from one place but from several, as if the clearing itself had been holding its breath and now let some of it go." | | 7 | "The pendant was pulsing faster now, not matching her heartbeat but dragging it, speeding it in a way that made her chest ache." | | 8 | "She kept walking, her boots pressing deeper into the moss." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |