| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 29 | | tagDensity | 0.517 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.04% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1437 | | 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) | |
| 89.56% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1437 | | totalAiIsms | 3 | | found | | | highlights | | |
| 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 | 1 | | narrationSentences | 61 | | matches | | |
| 72.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 61 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 74 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 116 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1452 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 1007 | | uniqueNames | 12 | | maxNameDensity | 1.39 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 14 | | Nyx | 6 | | Hel | 1 | | Heartstone | 2 | | November | 1 | | London | 2 | | Richmond | 1 | | Park | 1 | | Grove | 2 | | Varga | 1 | | Isolde | 9 | | Fae-forged | 1 |
| | persons | | 0 | "Rory" | | 1 | "Nyx" | | 2 | "Heartstone" | | 3 | "Grove" | | 4 | "Varga" | | 5 | "Isolde" |
| | places | | 0 | "Hel" | | 1 | "London" | | 2 | "Richmond" | | 3 | "Park" |
| | globalScore | 0.805 | | windowScore | 0.333 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 50 | | glossingSentenceCount | 5 | | matches | | 0 | "looked like nothing from the path" | | 1 | "quite match her own" | | 2 | "felt like walking through a beaded curt" | | 3 | "light that seemed to seek her out" | | 4 | "something like distaste" |
| |
| 62.26% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.377 | | wordCount | 1452 | | matches | | 0 | "not the warm steady beat it made near Hel portals, but something quicker, shallower, like a second heartbeat" | | 1 | "not cruel, but it is not careful either" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 74 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 46.84 | | std | 30.67 | | cv | 0.655 | | sampleLengths | | 0 | 64 | | 1 | 13 | | 2 | 64 | | 3 | 53 | | 4 | 74 | | 5 | 65 | | 6 | 35 | | 7 | 16 | | 8 | 92 | | 9 | 29 | | 10 | 17 | | 11 | 73 | | 12 | 19 | | 13 | 5 | | 14 | 84 | | 15 | 43 | | 16 | 37 | | 17 | 77 | | 18 | 22 | | 19 | 44 | | 20 | 55 | | 21 | 68 | | 22 | 1 | | 23 | 84 | | 24 | 1 | | 25 | 131 | | 26 | 13 | | 27 | 41 | | 28 | 14 | | 29 | 61 | | 30 | 57 |
| |
| 99.51% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 61 | | matches | | |
| 27.29% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 193 | | matches | | 0 | "wasn't blowing" | | 1 | "were trying" | | 2 | "were writing" | | 3 | "was pulsing" | | 4 | "was beating" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 2 | | flaggedSentences | 11 | | totalSentences | 74 | | ratio | 0.149 | | matches | | 0 | "That was the first lie of the place, Rory decided — ancient oaks grown together into a ring of living pillars, their trunks fused and twisted until they seemed less like trees and more like something trying to remember being architecture." | | 1 | "The pendant at her throat had begun to pulse — not the warm steady beat it made near Hel portals, but something quicker, shallower, like a second heartbeat that didn't quite match her own." | | 2 | "Sound changed — the distant traffic of the A3 vanished as if someone had closed a door on it, and what replaced it was softness: birdsong in a register she had no name for, layered and falling over itself, as though the birds had never heard music but were trying to reconstruct it from memory." | | 3 | "It was late November in London; it should have been grey." | | 4 | "Wildflowers in riotous bloom crowded the clearing — white and violet and a blue so intense it looked wet — and frost glittered among them without touching a single petal." | | 5 | "She knew — she had checked the map, she was a person who checked maps — that this corner of Richmond Park held perhaps forty metres of scrubby grass between the oaks." | | 6 | "Her eyes were pale lavender, and when they fixed on Rory, Rory felt catalogued — turned over, weighed, and found to have more pages than expected." | | 7 | "Her voice was like the birdsong — almost music, almost language." | | 8 | "\"Ah.\" Isolde turned, walked — leave no trace, take no ground, Rory thought, there's something deeply wrong in that — and gestured for them to follow." | | 9 | "She sat, and only then did Rory notice that the shadows around the stone made a ring — a boundary even here, even for a seer." | | 10 | "\"The stone that beats for doors of flame — it will beat faster as you near the wrong door, or the right one; you will have to learn its grammar, and its grammar is your blood. The blade that cuts wards — there is a ward on the wound in the Veil, laid by Wardens in haste, and haste makes wards that cut both ways. And the third—\" she paused, and her gaze slid to Nyx, and something ancient and amused moved in it, \"—the third is a shadow willing to be pulled through spaces between spaces, which hurts, which he will not admit, which he has done before, in 1643, and never again wished to do.\"" |
| |
| 90.79% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 916 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 40 | | adverbRatio | 0.043668122270742356 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.012008733624454149 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 74 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 74 | | mean | 19.62 | | std | 17.71 | | cv | 0.903 | | sampleLengths | | 0 | 8 | | 1 | 41 | | 2 | 7 | | 3 | 8 | | 4 | 13 | | 5 | 28 | | 6 | 21 | | 7 | 15 | | 8 | 2 | | 9 | 34 | | 10 | 17 | | 11 | 13 | | 12 | 6 | | 13 | 55 | | 14 | 3 | | 15 | 11 | | 16 | 21 | | 17 | 30 | | 18 | 6 | | 19 | 29 | | 20 | 16 | | 21 | 11 | | 22 | 32 | | 23 | 49 | | 24 | 16 | | 25 | 8 | | 26 | 5 | | 27 | 17 | | 28 | 4 | | 29 | 19 | | 30 | 24 | | 31 | 26 | | 32 | 5 | | 33 | 11 | | 34 | 3 | | 35 | 5 | | 36 | 36 | | 37 | 48 | | 38 | 7 | | 39 | 11 | | 40 | 25 | | 41 | 26 | | 42 | 11 | | 43 | 6 | | 44 | 22 | | 45 | 15 | | 46 | 10 | | 47 | 8 | | 48 | 16 | | 49 | 22 |
| |
| 74.77% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.47297297297297297 | | totalSentences | 74 | | uniqueOpeners | 35 | |
| 61.73% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 54 | | matches | | 0 | "Gently, unbothered, silver-bright water climbing" |
| | ratio | 0.019 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 54 | | matches | | 0 | "They poured themselves along the" | | 1 | "It was late November in" | | 2 | "She knew — she had" | | 3 | "She was halfway to deciding" | | 4 | "She made herself look away." | | 5 | "Her eyes were pale lavender," | | 6 | "Her voice was like the" | | 7 | "It was pulsing faster now," | | 8 | "They followed the sound of" | | 9 | "Her reflection looked back at" | | 10 | "she told it quietly, and" | | 11 | "She sat, and only then" | | 12 | "she paused, and her gaze" | | 13 | "Their silhouette rippled once, like" | | 14 | "She rose, leaving no mark" |
| | ratio | 0.278 | |
| 43.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 45 | | totalSentences | 54 | | matches | | 0 | "The stones looked like nothing" | | 1 | "That was the first lie" | | 2 | "Nyx's voice was always a" | | 3 | "They poured themselves along the" | | 4 | "The pendant at her throat" | | 5 | "The Heartstone sat cold against" | | 6 | "The hairs on her arms" | | 7 | "Sound changed — the distant" | | 8 | "It was late November in" | | 9 | "Wildflowers in riotous bloom crowded" | | 10 | "Rory touched the crescent scar" | | 11 | "The clearing was larger than" | | 12 | "She knew — she had" | | 13 | "She was halfway to deciding" | | 14 | "That frightened her more than" | | 15 | "She made herself look away." | | 16 | "Nyx called, and the whisper" | | 17 | "The grass didn't bend." | | 18 | "That was how Rory knew" | | 19 | "Isolde Varga crossed the grove" |
| | ratio | 0.833 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 54 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 7 | | matches | | 0 | "The pendant at her throat had begun to pulse — not the warm steady beat it made near Hel portals, but something quicker, shallower, like a second heartbeat that…" | | 1 | "Sound changed — the distant traffic of the A3 vanished as if someone had closed a door on it, and what replaced it was softness: birdsong in a register she had …" | | 2 | "But the Grove opened out around her like a held breath, rolling down to a stream she could hear but not yet see, the standing stones rising behind her impossibl…" | | 3 | "Isolde Varga crossed the grove without disturbing a single blade, silver hair falling to her waist, catching light that seemed to seek her out." | | 4 | "Gently, unbothered, silver-bright water climbing the shallow gradient toward its source, which was somehow downhill." | | 5 | "Isolde had stopped at a flat stone beside the stream, half-sunk in moss, studded with tiny flowers that opened as she approached and closed behind her like a wa…" | | 6 | "Rory looked from the seer to the stream running uphill to the stones that might have been writing, and felt the wild, terrible clarity of standing at the edge o…" |
| |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 1 | | matches | | 0 | "Nyx called, and the whisper went out across the clearing like a stone across still water" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 1 | | fancyTags | | 0 | "they murmured (murmur)" |
| | dialogueSentences | 29 | | tagDensity | 0.345 | | leniency | 0.69 | | rawRatio | 0.1 | | effectiveRatio | 0.069 | |