| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 7 | | tagDensity | 0.571 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.15% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1010 | | totalAiIsmAdverbs | 3 | | 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) | |
| 60.40% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1010 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "pulse" | | 1 | "silence" | | 2 | "footsteps" | | 3 | "perfect" | | 4 | "warmth" | | 5 | "quickened" |
| |
| 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 | 83 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 83 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 86 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1022 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 16 | | wordCount | 992 | | uniqueNames | 11 | | maxNameDensity | 0.4 | | worstName | "Aurora" | | maxWindowNameDensity | 1 | | worstWindowName | "Aurora" | | discoveredNames | | Heartstone | 1 | | Hel | 1 | | London | 1 | | Isolde | 1 | | Park | 1 | | Robin | 1 | | Hood | 1 | | Gate | 1 | | December | 2 | | Richmond | 2 | | Aurora | 4 |
| | persons | | 0 | "Heartstone" | | 1 | "Isolde" | | 2 | "Robin" | | 3 | "Hood" | | 4 | "Gate" | | 5 | "Aurora" |
| | places | | 0 | "Hel" | | 1 | "London" | | 2 | "Park" | | 3 | "December" | | 4 | "Richmond" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | 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 | 1022 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 86 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 30.97 | | std | 26.83 | | cv | 0.866 | | sampleLengths | | 0 | 7 | | 1 | 54 | | 2 | 69 | | 3 | 3 | | 4 | 89 | | 5 | 7 | | 6 | 16 | | 7 | 68 | | 8 | 4 | | 9 | 50 | | 10 | 2 | | 11 | 3 | | 12 | 76 | | 13 | 43 | | 14 | 14 | | 15 | 23 | | 16 | 21 | | 17 | 51 | | 18 | 15 | | 19 | 3 | | 20 | 58 | | 21 | 12 | | 22 | 16 | | 23 | 75 | | 24 | 7 | | 25 | 60 | | 26 | 27 | | 27 | 8 | | 28 | 52 | | 29 | 19 | | 30 | 4 | | 31 | 5 | | 32 | 61 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 83 | | matches | | |
| 80.24% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 167 | | matches | | 0 | "was waking" | | 1 | "was knocking" | | 2 | "was learning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 86 | | ratio | 0.14 | | matches | | 0 | "Aurora pressed two fingers against the pendant where it hung beneath her jacket and felt it pulse — slow, steady, like something sleeping." | | 1 | "She'd climbed the fence near the Robin Hood Gate and walked forty minutes through dark grass, her phone torch switched off after the first five — the light made her feel watched, pinned in place." | | 2 | "The grove had always hummed — crickets, wind through the standing stones, the low undercurrent of something alive just past the edge of hearing." | | 3 | "Not gradually — the sound simply arrived, all at once, loud and ordinary, as if someone had turned a dial." | | 4 | "In the silence she heard her own pulse in her ears, and beneath it — beneath it, something breathing." | | 5 | "It quickened — delighted, she thought, and then hated the word, because delight implied a mind, and she didn't want anything in this clearing to have a mind." | | 6 | "It had crossed the clearing without crossing it — the same distance from her as before, but the clearing had rearranged itself around the two of them, and behind it, where the entrance had been, stood only more trees, denser than anything in Richmond, their branches knotted together like fingers." | | 7 | "The crimson light of the pendant flared, sudden and bright, and in that flash she saw the clearing as it actually was — every flower turned to her, yes, and behind the flowers, at the edges, in the gaps between the stones, pale hands pressed flat against an invisible boundary, dozens of them, fingers spread, patiently waiting on the far side of the world's skin." | | 8 | "The stone scorched her palm and she welcomed it — pain was real, pain was hers." | | 9 | "Through the stones she could see the park — ordinary dead grass, the distant orange smudge of the city." | | 10 | "It smelled of wildflowers and wet earth, and it was warm, and that was the worst of it — that it was warm, that it was alive, that it had stood behind her for who knew how long while she'd crouched in the grass offering her back to it like a gift." | | 11 | "The park crashed back around her — wind, distant traffic, the honest cold of December." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 984 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.032520325203252036 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.012195121951219513 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 86 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 86 | | mean | 11.88 | | std | 12.48 | | cv | 1.05 | | sampleLengths | | 0 | 7 | | 1 | 23 | | 2 | 5 | | 3 | 26 | | 4 | 6 | | 5 | 35 | | 6 | 28 | | 7 | 3 | | 8 | 7 | | 9 | 8 | | 10 | 8 | | 11 | 9 | | 12 | 5 | | 13 | 24 | | 14 | 4 | | 15 | 24 | | 16 | 7 | | 17 | 2 | | 18 | 14 | | 19 | 14 | | 20 | 8 | | 21 | 27 | | 22 | 19 | | 23 | 4 | | 24 | 2 | | 25 | 20 | | 26 | 6 | | 27 | 22 | | 28 | 2 | | 29 | 3 | | 30 | 19 | | 31 | 4 | | 32 | 5 | | 33 | 29 | | 34 | 3 | | 35 | 2 | | 36 | 14 | | 37 | 3 | | 38 | 21 | | 39 | 19 | | 40 | 4 | | 41 | 3 | | 42 | 7 | | 43 | 5 | | 44 | 18 | | 45 | 12 | | 46 | 9 | | 47 | 3 | | 48 | 28 | | 49 | 20 |
| |
| 67.83% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.4418604651162791 | | totalSentences | 86 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 72 | | matches | | 0 | "Somewhere beneath this clearing, a" | | 1 | "Then the crickets started." | | 2 | "Then more grass." | | 3 | "Then a warmth that wasn't" |
| | ratio | 0.056 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 72 | | matches | | 0 | "She'd climbed the fence near" | | 1 | "She stepped through." | | 2 | "Her own footsteps arrived late," | | 3 | "She hated herself for saying" | | 4 | "She crossed to the centre" | | 5 | "She lifted it over her" | | 6 | "She turned her head slowly." | | 7 | "She stood, slowly, eyes fixed" | | 8 | "Her fingers found grass." | | 9 | "She snatched her hand back." | | 10 | "she said, and her voice" | | 11 | "It quickened — delighted, she" | | 12 | "She took one step backwards" | | 13 | "She stopped moving." | | 14 | "It had crossed the clearing" | | 15 | "She didn't believe it." | | 16 | "She walked, not ran, toward" | | 17 | "It was learning her." | | 18 | "It smelled of wildflowers and" | | 19 | "she said, though she had" |
| | ratio | 0.292 | |
| 78.06% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 72 | | matches | | 0 | "The Heartstone had been warm" | | 1 | "Aurora pressed two fingers against" | | 2 | "That was why she'd come." | | 3 | "The stone only behaved like" | | 4 | "Richmond Park had closed hours" | | 5 | "She'd climbed the fence near" | | 6 | "She stepped through." | | 7 | "The clearing looked the same" | | 8 | "Wildflowers, impossibly in bloom, pale" | | 9 | "Grass flattened in a circle" | | 10 | "The air smelled of rain" | | 11 | "The grove had always hummed" | | 12 | "Tonight there was nothing." | | 13 | "Her own footsteps arrived late," | | 14 | "She hated herself for saying" | | 15 | "That was the correct answer," | | 16 | "She crossed to the centre" | | 17 | "The pendant had gone from" | | 18 | "She lifted it over her" | | 19 | "The chorus stopped." |
| | ratio | 0.764 | |
| 69.44% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 72 | | matches | | | ratio | 0.014 | |
| 93.60% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 2 | | matches | | 0 | "Her own footsteps arrived late, a half-beat behind each step, as though the clearing had to decide whether to let her exist in it." | | 1 | "Not gradually — the sound simply arrived, all at once, loud and ordinary, as if someone had turned a dial." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 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 | |