| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 2 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.50% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1110 | | totalAiIsmAdverbs | 1 | | 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) | |
| 68.47% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1110 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "sentinels" | | 1 | "pulse" | | 2 | "echo" | | 3 | "silence" | | 4 | "could feel" |
| |
| 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 | 62 | | matches | (empty) | |
| 50.69% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 62 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "started to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 62 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 80 | | ratio | 0 | | matches | (empty) | |
| 96.36% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 6 | | markdownWords | 57 | | totalWords | 1100 | | ratio | 0.052 | | matches | | 0 | "if the stone warms without a portal near, come back to where you found it. Something will need saying." | | 1 | "withheld" | | 2 | "It's a fae thing," | | 3 | "Isolde's world. Not everything here follows earth rules, that's the whole point of the place." | | 4 | "Laila." | | 5 | "whatever this is, it already knows who I used to be. And it wants me to remember." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 18 | | wordCount | 1096 | | uniqueNames | 10 | | maxNameDensity | 0.36 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Grove | 2 | | Rory | 4 | | Heartstone | 1 | | Richmond | 1 | | Park | 1 | | Cardiff | 1 | | Isolde | 4 | | Fae | 2 | | Aurora | 1 | | London | 1 |
| | persons | | 0 | "Rory" | | 1 | "Heartstone" | | 2 | "Isolde" |
| | places | | 0 | "Grove" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "Cardiff" | | 4 | "Fae" | | 5 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 43 | | glossingSentenceCount | 5 | | matches | | 0 | "looked like something else" | | 1 | "looked like they were listening" | | 2 | "felt like giving something the satisfac" | | 3 | "as if considering and then went still" | | 4 | "felt like the wrong angle entirely, as" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.909 | | wordCount | 1100 | | matches | | 0 | "not all at once, but in a slow ripple moving toward her, stem after stem dipping" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 62 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 22 | | mean | 50 | | std | 31.75 | | cv | 0.635 | | sampleLengths | | 0 | 46 | | 1 | 113 | | 2 | 42 | | 3 | 79 | | 4 | 35 | | 5 | 95 | | 6 | 21 | | 7 | 55 | | 8 | 73 | | 9 | 4 | | 10 | 53 | | 11 | 22 | | 12 | 63 | | 13 | 62 | | 14 | 18 | | 15 | 87 | | 16 | 14 | | 17 | 88 | | 18 | 10 | | 19 | 36 | | 20 | 1 | | 21 | 83 |
| |
| 93.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 62 | | matches | | 0 | "being noticed" | | 1 | "was turned" |
| |
| 17.85% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 183 | | matches | | 0 | "were listening" | | 1 | "were still blooming" | | 2 | "were bending" | | 3 | "was telling" | | 4 | "was burning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 62 | | ratio | 0.145 | | matches | | 0 | "The oaks marking the boundary of the Grove had always seemed to Rory like sentinels standing at ease—old, patient, faintly amused by whatever nonsense the mortal world got up to beyond their reach." | | 1 | "The standing stones came up out of the black grass sooner than she remembered, pale as teeth, and beyond them the air did the thing it always did—thickened, folded, let her through into a place that technically wasn't anywhere at all." | | 2 | "Fae came and went on their own clocks; an hour here could be ten minutes there or ten days, and Isolde had never been what you'd call punctual." | | 3 | "Not broken—bent, all of them, all bowing in the same direction, as though something enormous had passed through and pressed them flat with a palm the size of a rooftop." | | 4 | "Nothing—just the dark line of trees at the grove's edge, needle-black against a sky the color of a bruise." | | 5 | "The grove was small—she knew its dimensions, more or less, from the last three visits—but tonight the walk to its far edge seemed to take longer than it should have, the standing stones at the entrance no closer no matter how many steps she counted." | | 6 | "This time she watched it happen—not all at once, but in a slow ripple moving toward her, stem after stem dipping in sequence like a wave rolling shoreward, and there was nothing on the ground to cause it." | | 7 | "Not everything here follows earth rules, that's the whole point of the place.* But she'd been here three times before and nothing had ever moved on its own, and the part of her brain that had spent four years pretending law school didn't bore her to tears—the part that noticed patterns, that had gotten her out of worse rooms than this one—was telling her, very calmly, that whatever this was, it was new, and new was not good." | | 8 | "They were there—she could see the pale shapes of them, off through the trees at what felt like the wrong angle entirely, as if the whole grove had rotated a few degrees while her back was turned and hadn't bothered rotating back." |
| |
| 91.57% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1108 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 55 | | adverbRatio | 0.04963898916967509 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.010830324909747292 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 62 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 62 | | mean | 17.74 | | std | 17.52 | | cv | 0.988 | | sampleLengths | | 0 | 33 | | 1 | 6 | | 2 | 7 | | 3 | 6 | | 4 | 40 | | 5 | 39 | | 6 | 28 | | 7 | 42 | | 8 | 20 | | 9 | 39 | | 10 | 8 | | 11 | 5 | | 12 | 7 | | 13 | 9 | | 14 | 26 | | 15 | 41 | | 16 | 54 | | 17 | 10 | | 18 | 3 | | 19 | 8 | | 20 | 2 | | 21 | 6 | | 22 | 28 | | 23 | 19 | | 24 | 10 | | 25 | 30 | | 26 | 5 | | 27 | 28 | | 28 | 4 | | 29 | 2 | | 30 | 19 | | 31 | 6 | | 32 | 9 | | 33 | 17 | | 34 | 22 | | 35 | 5 | | 36 | 45 | | 37 | 3 | | 38 | 10 | | 39 | 5 | | 40 | 38 | | 41 | 2 | | 42 | 17 | | 43 | 3 | | 44 | 15 | | 45 | 7 | | 46 | 2 | | 47 | 78 | | 48 | 14 | | 49 | 42 |
| |
| 54.84% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3870967741935484 | | totalSentences | 62 | | uniqueOpeners | 24 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 55 | | matches | | 0 | "Then last night the Heartstone" | | 1 | "Somewhere behind her, low, almost" |
| | ratio | 0.036 | |
| 74.55% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 55 | | matches | | 0 | "She hadn't wanted to come" | | 1 | "She'd climbed the fence the" | | 2 | "She told herself the quiet" | | 3 | "It wasn't the absence of" | | 4 | "Her voice sounded smaller than" | | 5 | "It didn't echo." | | 6 | "She told herself that was" | | 7 | "She crouched and touched one." | | 8 | "It sprang back upright at" | | 9 | "she said, to no one," | | 10 | "She made herself keep walking." | | 11 | "She stopped counting." | | 12 | "She backed up." | | 13 | "*It's a fae thing,* she" | | 14 | "She turned to leave and" | | 15 | "They were there—she could see" | | 16 | "Her pulse ticked up." | | 17 | "She started toward them anyway," | | 18 | "She didn't stop walking." | | 19 | "She didn't look back." |
| | ratio | 0.364 | |
| 69.09% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 43 | | totalSentences | 55 | | matches | | 0 | "The oaks marking the boundary" | | 1 | "Tonight they looked like something" | | 2 | "Tonight they looked like they" | | 3 | "She hadn't wanted to come" | | 4 | "That was the truth of" | | 5 | "Isolde had told her, weeks" | | 6 | "Something will need saying.* Rory" | | 7 | "She'd climbed the fence the" | | 8 | "She told herself the quiet" | | 9 | "Parks were quiet at night." | | 10 | "That was the whole design" | | 11 | "It wasn't the absence of" | | 12 | "The standing stones came up" | | 13 | "The wildflowers were still blooming," | | 14 | "Her voice sounded smaller than" | | 15 | "It didn't echo." | | 16 | "She told herself that was" | | 17 | "Fae came and went on" | | 18 | "Rory picked her way further" | | 19 | "The flowers here had stems," |
| | ratio | 0.782 | |
| 90.91% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 55 | | matches | | 0 | "So: Richmond Park, gates locked" |
| | ratio | 0.018 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 6 | | matches | | 0 | "She'd climbed the fence the way she'd learned to climb fences as a girl in Cardiff, quick and low, and she'd walked the long way in under a moon that kept vanis…" | | 1 | "Not broken—bent, all of them, all bowing in the same direction, as though something enormous had passed through and pressed them flat with a palm the size of a …" | | 2 | "Not everything here follows earth rules, that's the whole point of the place.* But she'd been here three times before and nothing had ever moved on its own, and…" | | 3 | "They were there—she could see the pale shapes of them, off through the trees at what felt like the wrong angle entirely, as if the whole grove had rotated a few…" | | 4 | "She started toward them anyway, because there was nothing else to do, and the grass under her boots made a sound it hadn't made on the way in: a faint, wet give…" | | 5 | "But her hand closed around the pendant, and it was burning now, burning bright enough that she could feel the shape of the gem imprint itself into her palm, and…" |
| |
| 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 | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |