| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.04% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1436 | | totalAiIsmAdverbs | 2 | | 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) | |
| 23.40% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1436 | | totalAiIsms | 22 | | found | | | highlights | | 0 | "sentinels" | | 1 | "pulsed" | | 2 | "rhythmic" | | 3 | "pulse" | | 4 | "warmth" | | 5 | "traced" | | 6 | "navigate" | | 7 | "stomach" | | 8 | "echo" | | 9 | "resonance" | | 10 | "measured" | | 11 | "silence" | | 12 | "could feel" | | 13 | "crystal" | | 14 | "weight" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 126 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 126 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 127 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1431 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 21 | | wordCount | 1421 | | uniqueNames | 6 | | maxNameDensity | 0.77 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 3 | | Park | 2 | | Heartstone | 2 | | London | 2 | | Silas | 1 | | Rory | 11 |
| | persons | | 0 | "Heartstone" | | 1 | "Silas" | | 2 | "Rory" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 21.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 78 | | glossingSentenceCount | 4 | | matches | | 0 | "seemed brighter" | | 1 | "seemed clearer now, their expressions readable, and none of them were kind" | | 2 | "something like vertical, something like awar" | | 3 | "something like aware" | | 4 | "quite there, from the stones that shouldn't have moved, from the ground beneath her feet and the canopy overhead and the pendant that seared itself into her palm" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1431 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 127 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 50 | | mean | 28.62 | | std | 26.63 | | cv | 0.93 | | sampleLengths | | 0 | 17 | | 1 | 70 | | 2 | 12 | | 3 | 88 | | 4 | 8 | | 5 | 94 | | 6 | 5 | | 7 | 49 | | 8 | 10 | | 9 | 53 | | 10 | 42 | | 11 | 5 | | 12 | 7 | | 13 | 6 | | 14 | 39 | | 15 | 4 | | 16 | 54 | | 17 | 4 | | 18 | 48 | | 19 | 8 | | 20 | 47 | | 21 | 33 | | 22 | 9 | | 23 | 3 | | 24 | 39 | | 25 | 51 | | 26 | 8 | | 27 | 46 | | 28 | 8 | | 29 | 56 | | 30 | 3 | | 31 | 1 | | 32 | 55 | | 33 | 33 | | 34 | 71 | | 35 | 3 | | 36 | 19 | | 37 | 47 | | 38 | 50 | | 39 | 3 | | 40 | 4 | | 41 | 50 | | 42 | 2 | | 43 | 95 | | 44 | 15 | | 45 | 6 | | 46 | 4 | | 47 | 37 | | 48 | 4 | | 49 | 6 |
| |
| 94.12% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 126 | | matches | | 0 | "been written" | | 1 | "been promised" | | 2 | "been fifteen" | | 3 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 257 | | matches | (empty) | |
| 30.37% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 127 | | ratio | 0.039 | | matches | | 0 | "She had left her phone's flashlight off—she needed to see the glow properly, needed to track its pulse without interference." | | 1 | "Wildflowers dotted the ground in clusters—bluebells and primroses that had no business blooming in autumn, their petals pale as bone in the Heartstone's glow." | | 2 | "The bark-faced oak, its trunk as wide as a car, its—" | | 3 | "She couldn't see them directly—her eyes refused to focus, sliding off their edges like water off glass—but she could see the space they occupied." | | 4 | "The humming rose to a pitch that drove spikes through her temples, and then—silence." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1428 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.031512605042016806 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.0063025210084033615 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 127 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 127 | | mean | 11.27 | | std | 9.96 | | cv | 0.884 | | sampleLengths | | 0 | 17 | | 1 | 21 | | 2 | 4 | | 3 | 14 | | 4 | 16 | | 5 | 6 | | 6 | 1 | | 7 | 1 | | 8 | 7 | | 9 | 12 | | 10 | 19 | | 11 | 20 | | 12 | 20 | | 13 | 2 | | 14 | 27 | | 15 | 4 | | 16 | 4 | | 17 | 14 | | 18 | 25 | | 19 | 5 | | 20 | 26 | | 21 | 24 | | 22 | 5 | | 23 | 3 | | 24 | 18 | | 25 | 10 | | 26 | 18 | | 27 | 3 | | 28 | 7 | | 29 | 11 | | 30 | 5 | | 31 | 20 | | 32 | 2 | | 33 | 15 | | 34 | 17 | | 35 | 8 | | 36 | 7 | | 37 | 3 | | 38 | 3 | | 39 | 4 | | 40 | 5 | | 41 | 7 | | 42 | 6 | | 43 | 10 | | 44 | 4 | | 45 | 8 | | 46 | 17 | | 47 | 4 | | 48 | 3 | | 49 | 23 |
| |
| 53.54% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 17 | | diversityRatio | 0.4015748031496063 | | totalSentences | 127 | | uniqueOpeners | 51 | |
| 32.05% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 104 | | matches | | 0 | "Instead it pulsed beneath her" |
| | ratio | 0.01 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 104 | | matches | | 0 | "She pulled her hand back" | | 1 | "She had left her phone's" | | 2 | "It had to be." | | 3 | "She'd walked Richmond Park dozens" | | 4 | "She touched the pendant without" | | 5 | "Her voice lingered like it" | | 6 | "She stood in the center" | | 7 | "She hadn't seen anything." | | 8 | "She was not alone." | | 9 | "She turned, slow and deliberate," | | 10 | "Her voice cracked on the" | | 11 | "She backed toward the gap" | | 12 | "Her heel came down on" | | 13 | "She looked down at what" | | 14 | "She looked up." | | 15 | "She was certain of it," | | 16 | "She could feel it at" | | 17 | "She couldn't see them directly—her" | | 18 | "She could see the wildflowers" | | 19 | "She could count them." |
| | ratio | 0.26 | |
| 56.15% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 84 | | totalSentences | 104 | | matches | | 0 | "The standing oaks rose around" | | 1 | "Rory pressed her palm against" | | 2 | "October in Richmond Park meant" | | 3 | "The tree should have been" | | 4 | "She pulled her hand back" | | 5 | "The pendant hung against her" | | 6 | "She had left her phone's" | | 7 | "The Heartstone's deep crimson center" | | 8 | "The warmth spreading through the" | | 9 | "This was the place." | | 10 | "It had to be." | | 11 | "The grove opened before her" | | 12 | "She'd walked Richmond Park dozens" | | 13 | "This clearing did not exist." | | 14 | "The oak standing stones formed" | | 15 | "Wildflowers dotted the ground in" | | 16 | "Rory stepped into the clearing." | | 17 | "The air changed." | | 18 | "She touched the pendant without" | | 19 | "A pulse of heat that" |
| | ratio | 0.808 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 104 | | matches | | 0 | "Because something had already come" | | 1 | "Now it stood close enough" | | 2 | "As if something heavy had" |
| | ratio | 0.029 | |
| 51.95% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 55 | | technicalSentenceCount | 7 | | matches | | 0 | "The oak standing stones formed a rough circle, their branches reaching overhead to weave a canopy that blocked even the distant amber wash of London's sky." | | 1 | "Heavier, thicker, carrying a sweetness that turned her stomach because it reminded her of something she couldn't name." | | 2 | "A semicircle of broken stems and bruised petals, as if something heavy had stood there." | | 3 | "She backed toward the gap between two standing stones, the way she'd come in, the way that led back to the path and the park and the normal world where trees di…" | | 4 | "The crystal burned, heat spiking sharp enough to make her gasp, and in its crimson glow she saw something that stopped her breath entirely." | | 5 | "Shapes that pooled and gathered in the gaps where trunks met ground, rising slowly, collecting themselves into something like vertical, something like aware." | | 6 | "She ran until she reached the main road, until cars passed her with their headlamps blazing and their engines growling and their drivers oblivious to the woman …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 3 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 1 | | effectiveRatio | 0.667 | |