| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 31 | | tagDensity | 0.387 | | leniency | 0.774 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 83.73% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1537 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "carefully" | | 1 | "very" | | 2 | "suddenly" | | 3 | "perfectly" |
| |
| 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) | |
| 77.23% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1537 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "flicker" | | 1 | "etched" | | 2 | "shimmered" | | 3 | "crystal" | | 4 | "weight" | | 5 | "perfect" | | 6 | "pulsed" |
| |
| 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 | 79 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 79 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 96 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 4 | | totalWords | 1550 | | ratio | 0.003 | | matches | | 0 | "curated" | | 1 | "agreement" | | 2 | "more" | | 3 | "admire" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1206 | | uniqueNames | 12 | | maxNameDensity | 0.75 | | worstName | "Aurora" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | Richmond | 2 | | Park | 1 | | London | 2 | | Aurora | 9 | | Heartstone | 3 | | Pendant | 2 | | Nyx | 7 | | Eva | 1 | | Cardiff | 1 | | Evan | 1 | | October | 1 | | Fae-touched | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Pendant" | | 2 | "Nyx" | | 3 | "Eva" | | 4 | "Evan" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Cardiff" | | 4 | "October" |
| | globalScore | 1 | | windowScore | 1 | |
| 16.07% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 56 | | glossingSentenceCount | 3 | | matches | | 0 | "quite eyes" | | 1 | "seemed muffled as though the ground had grown a layer of felt between the tarmac and her soles" | | 2 | "as if commenting on the weather" |
| |
| 70.97% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.29 | | wordCount | 1550 | | matches | | 0 | "not silent, but *curated* quiet, as if someone had reached into the ordinary" | | 1 | "not a path that had always been there, but one" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 96 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 36.9 | | std | 29.3 | | cv | 0.794 | | sampleLengths | | 0 | 61 | | 1 | 20 | | 2 | 48 | | 3 | 16 | | 4 | 9 | | 5 | 34 | | 6 | 28 | | 7 | 78 | | 8 | 14 | | 9 | 32 | | 10 | 3 | | 11 | 85 | | 12 | 8 | | 13 | 31 | | 14 | 5 | | 15 | 58 | | 16 | 57 | | 17 | 61 | | 18 | 4 | | 19 | 5 | | 20 | 134 | | 21 | 5 | | 22 | 43 | | 23 | 26 | | 24 | 61 | | 25 | 52 | | 26 | 43 | | 27 | 6 | | 28 | 4 | | 29 | 36 | | 30 | 14 | | 31 | 94 | | 32 | 19 | | 33 | 54 | | 34 | 37 | | 35 | 31 | | 36 | 14 | | 37 | 17 | | 38 | 89 | | 39 | 11 | | 40 | 51 | | 41 | 52 |
| |
| 96.38% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 79 | | matches | | 0 | "been told" | | 1 | "was pleased" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 8 | | totalVerbs | 191 | | matches | | 0 | "was looking" | | 1 | "wasn't watching" | | 2 | "was burning" | | 3 | "were doing" | | 4 | "was deciding" | | 5 | "was playing" | | 6 | "was watching" | | 7 | "were speaking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 96 | | ratio | 0.115 | | matches | | 0 | "The amber sky of Richmond Park had been doing strange things for the past hour — flushing copper at the edges, then bleeding into a violet that didn't belong to any London sunset Aurora had ever seen." | | 1 | "Their silhouette shifted at the edges, a slow leak of darkness into the late afternoon air, and their voice came as it always did — like words carried on a wind that wasn't there." | | 2 | "That was the first thing — not silent, but *curated* quiet, as if someone had reached into the ordinary chorus of birdsong and insects and trimmed it back to a single instrument." | | 3 | "The Heartstone was almost too warm to bear now, pulsing in time with something she couldn't name — her own heartbeat, or something else's." | | 4 | "It was burning now, a small star of heat, and the crimson gem seemed to catch a light that wasn't there — a faint, inner glow that hadn't been there this morning when she'd woken in her flat above the bar, with the sounds of Silas' early customers filtering up through the floorboards." | | 5 | "She thought of the last time she had walked toward something unknown — the night she had left Evan, with nothing but a rucksack and the key to a flat she hadn't seen yet." | | 6 | "Not winter cold — a deeper, cleaner cold, the kind you felt at the back of your throat when you breathed in deeply on a mountain." | | 7 | "The trees on the other side of the threshold were the same trees, in a sense — the same oaks, the same birches, the same spindly sycamores — but they were *more*." | | 8 | "A path unfurled ahead of them — not a path that had always been there, but one that was deciding, in this moment, to exist." | | 9 | "The standing stones marked the cardinal points — four, eight, she couldn't count them, the number shifting when she tried." | | 10 | "In the centre, a low ring of smaller stones circled a still pool of water, black as ink, perfectly reflective, and from the pool rose a single tree — silver-barked, leafless, strung with tiny lights that pulsed like a slow heartbeat." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 623 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 24 | | adverbRatio | 0.038523274478330656 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.008025682182985553 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 96 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 96 | | mean | 16.15 | | std | 12.32 | | cv | 0.763 | | sampleLengths | | 0 | 37 | | 1 | 24 | | 2 | 19 | | 3 | 1 | | 4 | 14 | | 5 | 34 | | 6 | 16 | | 7 | 5 | | 8 | 4 | | 9 | 16 | | 10 | 18 | | 11 | 11 | | 12 | 2 | | 13 | 15 | | 14 | 3 | | 15 | 32 | | 16 | 8 | | 17 | 11 | | 18 | 24 | | 19 | 13 | | 20 | 1 | | 21 | 2 | | 22 | 24 | | 23 | 6 | | 24 | 3 | | 25 | 23 | | 26 | 25 | | 27 | 13 | | 28 | 2 | | 29 | 22 | | 30 | 8 | | 31 | 16 | | 32 | 15 | | 33 | 5 | | 34 | 43 | | 35 | 15 | | 36 | 4 | | 37 | 53 | | 38 | 12 | | 39 | 15 | | 40 | 34 | | 41 | 4 | | 42 | 5 | | 43 | 4 | | 44 | 26 | | 45 | 12 | | 46 | 32 | | 47 | 37 | | 48 | 23 | | 49 | 3 |
| |
| 50.69% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.3541666666666667 | | totalSentences | 96 | | uniqueOpeners | 34 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 69 | | matches | | 0 | "Even the crunch of her" | | 1 | "Then the light, which rearranged" | | 2 | "Somewhere, very far off, someone" | | 3 | "Perhaps before they had decided" |
| | ratio | 0.058 | |
| 92.46% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 69 | | matches | | 0 | "She stood at the iron" | | 1 | "She pressed her palm flat" | | 2 | "Their silhouette shifted at the" | | 3 | "She didn't know whether to" | | 4 | "She pushed through the gate," | | 5 | "It was quiet." | | 6 | "She looked where Nyx was" | | 7 | "They rose from a mossy" | | 8 | "It was burning now, a" | | 9 | "She thought of Eva, who" | | 10 | "She thought of her mother" | | 11 | "She thought of the last" | | 12 | "She stepped between the stones." | | 13 | "They were doing it anyway," | | 14 | "She pulled her hand back" | | 15 | "She had been." | | 16 | "She looked at her feet" | | 17 | "It was smaller than she" | | 18 | "She was watching them." | | 19 | "She had been watching them," |
| | ratio | 0.319 | |
| 32.46% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 69 | | matches | | 0 | "The amber sky of Richmond" | | 1 | "She stood at the iron" | | 2 | "She pressed her palm flat" | | 3 | "Their silhouette shifted at the" | | 4 | "Aurora squinted into the wood." | | 5 | "A pause, the violet flicker" | | 6 | "She didn't know whether to" | | 7 | "She pushed through the gate," | | 8 | "It was quiet." | | 9 | "That was the first thing" | | 10 | "A thrush called somewhere ahead," | | 11 | "A breeze moved through the" | | 12 | "Nyx flowed along beside her," | | 13 | "The Heartstone was almost too" | | 14 | "She looked where Nyx was" | | 15 | "The standing stones." | | 16 | "They rose from a mossy" | | 17 | "The air between the stones" | | 18 | "A faint, high sound, just" | | 19 | "Nyx drifted closer, their form" |
| | ratio | 0.855 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 69 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 9 | | matches | | 0 | "The amber sky of Richmond Park had been doing strange things for the past hour — flushing copper at the edges, then bleeding into a violet that didn't belong to…" | | 1 | "Their silhouette shifted at the edges, a slow leak of darkness into the late afternoon air, and their voice came as it always did — like words carried on a wind…" | | 2 | "That was the first thing — not silent, but *curated* quiet, as if someone had reached into the ordinary chorus of birdsong and insects and trimmed it back to a …" | | 3 | "Even the crunch of her boots seemed muffled, as though the ground had grown a layer of felt between the tarmac and her soles." | | 4 | "Two of them, massive trunks of ancient oak that had either petrified over centuries or simply chosen to forget they were ever trees." | | 5 | "They rose from a mossy rise in the undergrowth, silver-grey against the deeper green, etched with spirals that moved when she wasn't watching them directly." | | 6 | "The bark was deeper, the green of the leaves almost blue, and the wildflowers that carpeted the forest floor in drifts of white and gold and a violet she couldn…" | | 7 | "The moss drew itself aside, the wildflowers bent in deference, and a track of pale, packed earth appeared, winding between the ancient trunks toward a clearing …" | | 8 | "It was warm in the exact way the pendant had been warm when she'd first stepped off the train at Richmond that morning, as if the grove had been waiting for her…" |
| |
| 83.33% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 1 | | matches | | 0 | "Nyx said, as if commenting on the weather" |
| |
| 85.48% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 2 | | fancyTags | | 0 | "She pressed (press)" | | 1 | "Aurora breathed (breathe)" |
| | dialogueSentences | 31 | | tagDensity | 0.194 | | leniency | 0.387 | | rawRatio | 0.333 | | effectiveRatio | 0.129 | |