| 37.84% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 3 | | adverbTags | | 0 | "Rory said quietly [quietly]" | | 1 | "Rory said slowly [slowly]" | | 2 | "The Seer turned away [away]" |
| | dialogueSentences | 37 | | tagDensity | 0.459 | | leniency | 0.919 | | rawRatio | 0.176 | | effectiveRatio | 0.162 | |
| 88.18% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1692 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "softly" | | 1 | "gently" | | 2 | "slowly" | | 3 | "very" |
| |
| 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) | |
| 64.54% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1692 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "weight" | | 1 | "porcelain" | | 2 | "comforting" | | 3 | "whisper" | | 4 | "warmth" | | 5 | "resolved" | | 6 | "pulse" | | 7 | "absolutely" |
| |
| 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 | 86 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 86 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 106 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1705 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 52 | | wordCount | 1298 | | uniqueNames | 14 | | maxNameDensity | 1.23 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Park | 2 | | Heartstone | 2 | | Nyx | 7 | | Shade | 1 | | Isolde | 12 | | Rory | 16 | | Silas | 1 | | London | 1 | | November | 1 | | December | 1 | | Grove | 3 | | Seer | 2 | | Yu-Fei | 1 |
| | persons | | 0 | "Nyx" | | 1 | "Shade" | | 2 | "Isolde" | | 3 | "Rory" | | 4 | "Silas" | | 5 | "Seer" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Yu-Fei" |
| | globalScore | 0.884 | | windowScore | 0.667 | |
| 69.35% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 2 | | matches | | 0 | "seemed embarrassed by the idea of ripples, ringed by more of the oak-born stones" | | 1 | "felt like one" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1705 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 106 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 46 | | mean | 37.07 | | std | 25.98 | | cv | 0.701 | | sampleLengths | | 0 | 51 | | 1 | 64 | | 2 | 8 | | 3 | 65 | | 4 | 1 | | 5 | 75 | | 6 | 54 | | 7 | 12 | | 8 | 88 | | 9 | 39 | | 10 | 3 | | 11 | 17 | | 12 | 37 | | 13 | 75 | | 14 | 14 | | 15 | 99 | | 16 | 33 | | 17 | 5 | | 18 | 53 | | 19 | 59 | | 20 | 48 | | 21 | 7 | | 22 | 64 | | 23 | 7 | | 24 | 28 | | 25 | 47 | | 26 | 11 | | 27 | 54 | | 28 | 5 | | 29 | 63 | | 30 | 28 | | 31 | 9 | | 32 | 18 | | 33 | 23 | | 34 | 19 | | 35 | 6 | | 36 | 46 | | 37 | 50 | | 38 | 17 | | 39 | 51 | | 40 | 10 | | 41 | 63 | | 42 | 4 | | 43 | 58 | | 44 | 68 | | 45 | 49 |
| |
| 88.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 86 | | matches | | 0 | "was gone" | | 1 | "was lit" | | 2 | "been assessed" | | 3 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 209 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 106 | | ratio | 0.113 | | matches | | 0 | "She knew, because she'd checked that morning — Richmond Park was sixty minutes by tube from her flat above Silas's bar, and she'd done her homework like the pre-law dropout she was." | | 1 | "Standing stones rose where the trees had been, taller than Nyx, pale as bone and grained like timber — stone that had been wood once, or wood that had given up and become stone, bark furring their bases and rings of growth still visible in their flanks, worn smooth as candle wax." | | 2 | "She put out her hand, and her fingers met nothing — and then met everything, a pressure like walking into deep water, a soft pop in her ears, a taste of apples and cold honey on her tongue." | | 3 | "Rory stood ankle-deep in wildflowers — red campion, cowslips, things she had no names for, petals the colors of stained glass — all of them blooming their heads off in what was, by any sane calendar, the middle of December." | | 4 | "Just the song, looping and looping, and once — she would have sworn it — the phrase almost resolved into words before sliding apart again." | | 5 | "At her hip, the moonsilver dagger Isolde had given her lay cold through its sheath — cold in all this warmth, cold like a held grudge — glowing a faint, stubborn silver, as if it missed the moon and refused to pretend otherwise." | | 6 | "Not all at once, and not much — a few degrees, stems creaking like old wood, faces swiveling to follow her the way sunflowers follow the sun." | | 7 | "And the wildflowers nearest her hand leaned away — all of them, a full-body flinch in slow motion, stems bowing back as if from an open oven door." | | 8 | "It came up through Rory's palm like a coal cupped in a hand — slow, then certain, a heat with a rhythm to it, a pulse." | | 9 | "\"It's warm. It's never warm. You told me—\" she turned to Nyx \"—it warms near portals.\"" | | 10 | "The crossing out was a slap of cold and noise — traffic somewhere, the frost-hard ground, true dark under real stars." | | 11 | "She stood between the ordinary oaks with her breath steaming and her heart going hard, and the Heartstone lay against her sternum, still warm, still counting — a slow, patient, gluttonous pulse, like something on the far side of a thinning wall, tapping its fingers, waiting to be fed." |
| |
| 99.82% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1169 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 47 | | adverbRatio | 0.04020530367835757 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.00855431993156544 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 106 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 106 | | mean | 16.08 | | std | 11.7 | | cv | 0.728 | | sampleLengths | | 0 | 21 | | 1 | 30 | | 2 | 8 | | 3 | 28 | | 4 | 18 | | 5 | 10 | | 6 | 8 | | 7 | 8 | | 8 | 28 | | 9 | 12 | | 10 | 17 | | 11 | 1 | | 12 | 13 | | 13 | 19 | | 14 | 19 | | 15 | 24 | | 16 | 12 | | 17 | 32 | | 18 | 3 | | 19 | 5 | | 20 | 2 | | 21 | 12 | | 22 | 52 | | 23 | 11 | | 24 | 2 | | 25 | 3 | | 26 | 20 | | 27 | 4 | | 28 | 18 | | 29 | 17 | | 30 | 3 | | 31 | 17 | | 32 | 16 | | 33 | 21 | | 34 | 5 | | 35 | 38 | | 36 | 32 | | 37 | 14 | | 38 | 1 | | 39 | 22 | | 40 | 40 | | 41 | 36 | | 42 | 6 | | 43 | 2 | | 44 | 25 | | 45 | 4 | | 46 | 1 | | 47 | 16 | | 48 | 17 | | 49 | 20 |
| |
| 77.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5 | | totalSentences | 106 | | uniqueOpeners | 53 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 77 | | matches | | 0 | "Then Isolde stepped between two" | | 1 | "Then it was her turn." | | 2 | "Then she was through, and" | | 3 | "Just the song, looping and" | | 4 | "Nearly three hours gone in" |
| | ratio | 0.065 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 19 | | totalSentences | 77 | | matches | | 0 | "Her bare feet settled on" | | 1 | "She tried not to find" | | 2 | "she asked, low" | | 3 | "Their voice arrived the way" | | 4 | "It watched them pass with" | | 5 | "She knew, because she'd checked" | | 6 | "Her silver hair hung to" | | 7 | "She put out her hand," | | 8 | "She said it briskly, because" | | 9 | "They followed Isolde deeper." | | 10 | "She told herself it was" | | 11 | "She stopped, and after a" | | 12 | "They came at last to" | | 13 | "It came up through Rory's" | | 14 | "She went absolutely still." | | 15 | "she turned to Nyx \"—it" | | 16 | "They pivoted toward the northern" | | 17 | "Her shift had started forty" | | 18 | "She stood between the ordinary" |
| | ratio | 0.247 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 54 | | totalSentences | 77 | | matches | | 0 | "Frost had come down hard" | | 1 | "Rory walked with her hands" | | 2 | "Isolde crossed the rimed bracken" | | 3 | "Her bare feet settled on" | | 4 | "Rory's own tracks ran out" | | 5 | "She tried not to find" | | 6 | "she asked, low" | | 7 | "Their voice arrived the way" | | 8 | "A stag stood watch fifty" | | 9 | "It watched them pass with" | | 10 | "She knew, because she'd checked" | | 11 | "A small wood." | | 12 | "A dip in the land." | | 13 | "Rory's thumb found the crescent" | | 14 | "Her silver hair hung to" | | 15 | "Nyx flowed between the pillars" | | 16 | "Rory heard their whisper drift" | | 17 | "She put out her hand," | | 18 | "Rory stood ankle-deep in wildflowers" | | 19 | "Birdsong came from everywhere and" |
| | ratio | 0.701 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 77 | | matches | (empty) | | ratio | 0 | |
| 31.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 7 | | matches | | 0 | "Her bare feet settled on ground frozen stiff as porcelain, and the frost stayed whole beneath them, unbroken, as though the world declined to admit she was ther…" | | 1 | "It watched them pass with the flat courtesy of a creature that had decided they were not its problem." | | 2 | "Standing stones rose where the trees had been, taller than Nyx, pale as bone and grained like timber — stone that had been wood once, or wood that had given up …" | | 3 | "At her hip, the moonsilver dagger Isolde had given her lay cold through its sheath — cold in all this warmth, cold like a held grudge — glowing a faint, stubbor…" | | 4 | "And the wildflowers nearest her hand leaned away — all of them, a full-body flinch in slow motion, stems bowing back as if from an open oven door." | | 5 | "Rory became aware of her own heartbeat, of the pendant's pulse answering it, or setting it, she couldn't tell which, and for the first time since the standing s…" | | 6 | "She stood between the ordinary oaks with her breath steaming and her heart going hard, and the Heartstone lay against her sternum, still warm, still counting — …" |
| |
| 36.76% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 3 | | matches | | 0 | "she asked, low" | | 1 | "Nyx had, their edges uncertain, starved-looking" | | 2 | "Nyx breathed, and the name came out of them like a smell" |
| |
| 95.95% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 2 | | fancyTags | | 0 | "Rory muttered (mutter)" | | 1 | "Nyx breathed (breathe)" |
| | dialogueSentences | 37 | | tagDensity | 0.27 | | leniency | 0.541 | | rawRatio | 0.2 | | effectiveRatio | 0.108 | |