| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 3 | | adverbTags | | 0 | "She paused then [then]" | | 1 | "she said again [again]" | | 2 | "she said aloud [aloud]" |
| | dialogueSentences | 8 | | tagDensity | 0.875 | | leniency | 1 | | rawRatio | 0.429 | | effectiveRatio | 0.429 | |
| 64.13% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1812 | | totalAiIsmAdverbs | 13 | | found | | | highlights | | 0 | "slowly" | | 1 | "very" | | 2 | "slightly" | | 3 | "softly" |
| |
| 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) | |
| 50.33% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1812 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "stomach" | | 1 | "could feel" | | 2 | "warmth" | | 3 | "silence" | | 4 | "silk" | | 5 | "rhythmic" | | 6 | "pulse" | | 7 | "flickered" | | 8 | "flicker" | | 9 | "familiar" | | 10 | "pulsed" | | 11 | "traced" | | 12 | "perfect" |
| |
| 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 | 137 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 137 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 140 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 62 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 17 | | totalWords | 1826 | | ratio | 0.009 | | matches | | 0 | "certain" | | 1 | "door, door, door" | | 2 | "first you find out where you are. Then you decide what to do." |
| |
| 97.22% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 1 | | matches | | 0 | "It was even now, she told herself." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 1770 | | uniqueNames | 16 | | maxNameDensity | 0.62 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Twelve" | | discoveredNames | | Fae | 1 | | Grove | 1 | | January | 1 | | Richmond | 2 | | Park | 2 | | Isolde | 6 | | Evan | 2 | | Rory | 11 | | Heartstone | 2 | | Silas | 1 | | Soho | 1 | | Eva | 1 | | London | 1 | | Cardiff | 1 | | Twelve | 4 | | Warm | 4 |
| | persons | | 0 | "Isolde" | | 1 | "Evan" | | 2 | "Rory" | | 3 | "Heartstone" | | 4 | "Silas" | | 5 | "Eva" |
| | places | | 0 | "Fae" | | 1 | "Grove" | | 2 | "January" | | 3 | "Richmond" | | 4 | "Park" | | 5 | "Soho" | | 6 | "London" | | 7 | "Cardiff" | | 8 | "Twelve" |
| | globalScore | 1 | | windowScore | 1 | |
| 92.53% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 87 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like a bad idea, the way it feels" | | 1 | "something like campion, all of them blooming" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.548 | | wordCount | 1826 | | matches | | 0 | "not stone at all in the daylight, but the trunks of oaks so old they had petrified in place, black" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 140 | | matches | | 0 | "said that the" | | 1 | "saw that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 44 | | mean | 41.5 | | std | 31.59 | | cv | 0.761 | | sampleLengths | | 0 | 23 | | 1 | 76 | | 2 | 63 | | 3 | 13 | | 4 | 14 | | 5 | 136 | | 6 | 60 | | 7 | 4 | | 8 | 102 | | 9 | 60 | | 10 | 24 | | 11 | 7 | | 12 | 96 | | 13 | 24 | | 14 | 3 | | 15 | 5 | | 16 | 20 | | 17 | 47 | | 18 | 40 | | 19 | 64 | | 20 | 7 | | 21 | 27 | | 22 | 57 | | 23 | 23 | | 24 | 68 | | 25 | 23 | | 26 | 14 | | 27 | 72 | | 28 | 70 | | 29 | 9 | | 30 | 40 | | 31 | 23 | | 32 | 72 | | 33 | 16 | | 34 | 94 | | 35 | 4 | | 36 | 50 | | 37 | 70 | | 38 | 74 | | 39 | 22 | | 40 | 56 | | 41 | 9 | | 42 | 29 | | 43 | 16 |
| |
| 97.58% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 137 | | matches | | 0 | "been raised" | | 1 | "been even" | | 2 | "was used" |
| |
| 99.37% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 265 | | matches | | 0 | "was not coming" | | 1 | "was beginning" | | 2 | "were marking" | | 3 | "were turning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 140 | | ratio | 0.071 | | matches | | 0 | "Looking back felt like a bad idea, the way it feels like a bad idea to glance over your shoulder on a dark stairwell — not because anything is there, but because you are afraid of confirming it." | | 1 | "Isolde had answers — about the pendant, about Evan's shadow turning up in places it shouldn't, about the door in the basement of Silas' bar that smelled faintly of sulphur when the wind was wrong." | | 2 | "The Heartstone hung against her sternum on its silver chain, and even through two layers of fabric she could feel it — a small, steady warmth, like holding a coin that had been sitting in the sun." | | 3 | "Not silence — the grove was never silent." | | 4 | "The standing stones — not stone at all in the daylight, but the trunks of oaks so old they had petrified in place, black and smooth and faintly warm to the touch — stood in their ring around her." | | 5 | "Her thumb found the little gem — thumbnail-sized, deep crimson, its edges worn smooth — and rubbed it the way you rub a talisman." | | 6 | "Not a dying-battery flicker — a slow, deliberate dimming, as if something had passed between the bulb and the ground, something with the general shape of a hand." | | 7 | "Now it framed more trees — the same oaks, the same beeches, the same yew, going on and on into a dark that her torch couldn't reach the bottom of." | | 8 | "It circled her at a distance of maybe twenty meters, on the far side of the flowers, and she could see the tops of the foxgloves moving as something passed through them — a ripple, slow and languid, travelling around the ring of stones in the direction of the sun." | | 9 | "Darkness slammed down on her like a dropped shutter and she stood in it with her hand clamped over her mouth and her back against the warm stone and her heart slamming so hard she was certain — she was *certain* — that whatever was out there could hear it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 236 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 7 | | adverbRatio | 0.029661016949152543 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 140 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 140 | | mean | 13.04 | | std | 13.16 | | cv | 1.009 | | sampleLengths | | 0 | 23 | | 1 | 4 | | 2 | 38 | | 3 | 34 | | 4 | 4 | | 5 | 4 | | 6 | 17 | | 7 | 24 | | 8 | 14 | | 9 | 13 | | 10 | 3 | | 11 | 6 | | 12 | 5 | | 13 | 4 | | 14 | 19 | | 15 | 35 | | 16 | 12 | | 17 | 22 | | 18 | 44 | | 19 | 8 | | 20 | 37 | | 21 | 2 | | 22 | 13 | | 23 | 4 | | 24 | 14 | | 25 | 8 | | 26 | 45 | | 27 | 6 | | 28 | 7 | | 29 | 22 | | 30 | 8 | | 31 | 3 | | 32 | 39 | | 33 | 3 | | 34 | 5 | | 35 | 1 | | 36 | 1 | | 37 | 24 | | 38 | 1 | | 39 | 2 | | 40 | 3 | | 41 | 1 | | 42 | 11 | | 43 | 9 | | 44 | 5 | | 45 | 28 | | 46 | 5 | | 47 | 7 | | 48 | 31 | | 49 | 4 |
| |
| 42.86% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.32142857142857145 | | totalSentences | 140 | | uniqueOpeners | 45 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 8 | | totalSentences | 114 | | matches | | 0 | "Of course they were." | | 1 | "Usually there was birdsong at" | | 2 | "Then the torch beam swung" | | 3 | "Somewhere behind the stones, a" | | 4 | "Just flowers, parting and closing" | | 5 | "Somewhere very close, at about" | | 6 | "Somewhere in the dark, the" | | 7 | "Then you decide what to" |
| | ratio | 0.07 | |
| 72.63% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 42 | | totalSentences | 114 | | matches | | 0 | "She didn't look back." | | 1 | "She kept her torch low," | | 2 | "They were always out here," | | 3 | "Her voice sounded small and" | | 4 | "She'd come for Isolde." | | 5 | "She had said it in" | | 6 | "She unfastened the top button" | | 7 | "She'd started thinking of it" | | 8 | "It pressed against her eardrums" | | 9 | "She counted them by torchlight." | | 10 | "She counted again." | | 11 | "She was sure of it." | | 12 | "She had walked this ring" | | 13 | "It was even now, she" | | 14 | "It was a trick of" | | 15 | "She took a breath." | | 16 | "She paused, then added, because" | | 17 | "It went on for three" | | 18 | "Her thumb found the little" | | 19 | "It was always warm." |
| | ratio | 0.368 | |
| 91.58% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 84 | | totalSentences | 114 | | matches | | 0 | "Rory slipped between the standing" | | 1 | "She didn't look back." | | 2 | "She kept her torch low," | | 3 | "The wildflowers were out." | | 4 | "They were always out here," | | 5 | "Foxgloves and cornflowers and something" | | 6 | "The torch caught the wet" | | 7 | "Rory stopped in the center" | | 8 | "Her voice sounded small and" | | 9 | "She'd come for Isolde." | | 10 | "That was the reason, the" | | 11 | "Isolde had answers — about" | | 12 | "Isolde had said: come to" | | 13 | "She had said it in" | | 14 | "She unfastened the top button" | | 15 | "The Heartstone hung against her" | | 16 | "She'd started thinking of it" | | 17 | "The grove was quiet." | | 18 | "That was the first wrongness," | | 19 | "Tonight there was none of" |
| | ratio | 0.737 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 114 | | matches | | 0 | "To places where one thing" | | 1 | "Before, the gap had framed" | | 2 | "Now it framed more trees" |
| | ratio | 0.026 | |
| 48.52% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 7 | | matches | | 0 | "The Heartstone hung against her sternum on its silver chain, and even through two layers of fabric she could feel it — a small, steady warmth, like holding a co…" | | 1 | "She had walked this ring twice before, in daylight, measuring it with the particular pedantic thoroughness of a girl who'd been raised to cross-examine everythi…" | | 2 | "Not a dying-battery flicker — a slow, deliberate dimming, as if something had passed between the bulb and the ground, something with the general shape of a hand…" | | 3 | "She should leave, because Isolde was not coming, because the grove was wrong tonight in a way it had never been wrong before, because a woman who has learned th…" | | 4 | "She stood very still and she listened to her own breathing and she did not swear, because swearing was a kind of panic and she had promised herself years ago, i…" | | 5 | "A steady, insistent heat, the heat of something held in a fire, and it meant *door, door, door*, and there was a door here, there had always been a door here, t…" | | 6 | "And something across the grove exhaled at the same time, in perfect unison, matching her breath exactly, in a voice that was not Isolde's and had never been any…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 8 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |