| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 1 | | adverbTags | | 0 | "they said softly [softly]" |
| | dialogueSentences | 29 | | tagDensity | 0.414 | | leniency | 0.828 | | rawRatio | 0.083 | | effectiveRatio | 0.069 | |
| 84.80% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1316 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "very" | | 1 | "slightly" | | 2 | "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.61% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1316 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "shimmered" | | 1 | "weight" | | 2 | "warmth" | | 3 | "familiar" | | 4 | "resolved" | | 5 | "stomach" | | 6 | "whisper" | | 7 | "flickered" | | 8 | "pulse" | | 9 | "lurch" |
| |
| 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 | 58 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 58 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 71 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 5 | | markdownWords | 14 | | totalWords | 1328 | | ratio | 0.011 | | matches | | 0 | "it" | | 1 | "you" | | 2 | "you will need something that does not care about wards" | | 3 | "question" | | 4 | "gone" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 1057 | | uniqueNames | 9 | | maxNameDensity | 1.51 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | London | 2 | | Isolde | 9 | | Rory | 16 | | Nyx | 5 | | Fae | 1 | | Yu-Fei | 1 | | Cheung | 1 | | Friday | 1 | | Heartstone | 1 |
| | persons | | 0 | "Isolde" | | 1 | "Rory" | | 2 | "Nyx" | | 3 | "Yu-Fei" | | 4 | "Cheung" | | 5 | "Heartstone" |
| | places | | | globalScore | 0.743 | | windowScore | 0.5 | |
| 90.48% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 42 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.753 | | wordCount | 1328 | | matches | | 0 | "not one scent but hundreds layered on top of each other, orchard" |
| |
| 72.77% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 71 | | matches | | 0 | "spiced that Rory's" | | 1 | "woke that morning" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 41.5 | | std | 33.55 | | cv | 0.808 | | sampleLengths | | 0 | 83 | | 1 | 4 | | 2 | 66 | | 3 | 52 | | 4 | 26 | | 5 | 6 | | 6 | 25 | | 7 | 42 | | 8 | 4 | | 9 | 108 | | 10 | 3 | | 11 | 12 | | 12 | 59 | | 13 | 50 | | 14 | 24 | | 15 | 96 | | 16 | 3 | | 17 | 111 | | 18 | 11 | | 19 | 7 | | 20 | 67 | | 21 | 19 | | 22 | 3 | | 23 | 61 | | 24 | 56 | | 25 | 67 | | 26 | 3 | | 27 | 2 | | 28 | 66 | | 29 | 79 | | 30 | 37 | | 31 | 76 |
| |
| 93.16% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 58 | | matches | | 0 | "were gone " | | 1 | "were prepared" |
| |
| 79.52% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 166 | | matches | | 0 | "were rising" | | 1 | "was waiting" | | 2 | "were still watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 1 | | flaggedSentences | 10 | | totalSentences | 71 | | ratio | 0.141 | | matches | | 0 | "Rory stopped at the tree line and counted them — seven oaks, each one wide as a London black cab, their bark split into ridges that caught the last of the afternoon light and threw it back wrong, in colours that had no name in particular." | | 1 | "Nyx did not have weight, exactly — more the memory of it." | | 2 | "Nyx tilted their head — an unnecessary gesture, given they had no neck — and Rory felt rather than heard the amusement in it." | | 3 | "Wildflowers pushed through it in impossible densities — foxglove and snowdrop and orchids that should have needed weeks of frost to open — all of them blooming at once, all of them turning, very slightly, to watch her pass." | | 4 | "NyxCame through as shadow first — a ribbon of dark flowing between the oaks — and then gathered upward into their solid form, taller than the low sweep of an oak bough that hung overhead." | | 5 | "The moonsilver was cold even through the leather — it was always cold, a leaf-shaped sliver of Fae work that Isolde had pressed into her palm three nights ago on a London pavement with the words *you will need something that does not care about wards*." | | 6 | "Then a hollow where the grass gave way to moss so thick it swallowed sound — Rory's boots made no noise, Nyx's whispers came back muted, and even Isolde's voice dropped to something barely above thought." | | 7 | "The air thickened with scent — not one scent but hundreds layered on top of each other, orchard and loam and something hot and spiced that Rory's stomach recognised before her mind did, a smell like Yu-Fei Cheung's kitchen on a Friday night multiplied by a hundred, and her mouth flooded with saliva and her feet slowed of their own accord." | | 8 | "The Heartstone had been warm when she woke that morning; it was warm now, a faint pulse against her collarbone, deep crimson and thumb-sized and pulsing faintly with an inner glow that showed best in shadow." | | 9 | "The standing stones were gone — not distant, *gone*, the honey-coloured sky closing over the space where the threshold had been, and she understood with a lurch in her chest that an hour in here might be minutes out there, or days, and that Silas' bar would still be open when she got back, or would have been shut for a week, and that Yu-Fei would count the difference either way." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 938 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.03091684434968017 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.008528784648187633 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 71 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 71 | | mean | 18.7 | | std | 15.91 | | cv | 0.851 | | sampleLengths | | 0 | 14 | | 1 | 46 | | 2 | 23 | | 3 | 4 | | 4 | 6 | | 5 | 14 | | 6 | 33 | | 7 | 13 | | 8 | 13 | | 9 | 12 | | 10 | 27 | | 11 | 17 | | 12 | 9 | | 13 | 4 | | 14 | 2 | | 15 | 21 | | 16 | 4 | | 17 | 18 | | 18 | 24 | | 19 | 4 | | 20 | 25 | | 21 | 44 | | 22 | 39 | | 23 | 3 | | 24 | 8 | | 25 | 4 | | 26 | 18 | | 27 | 17 | | 28 | 24 | | 29 | 35 | | 30 | 15 | | 31 | 5 | | 32 | 19 | | 33 | 23 | | 34 | 46 | | 35 | 4 | | 36 | 3 | | 37 | 20 | | 38 | 3 | | 39 | 12 | | 40 | 18 | | 41 | 36 | | 42 | 45 | | 43 | 11 | | 44 | 4 | | 45 | 3 | | 46 | 6 | | 47 | 19 | | 48 | 42 | | 49 | 8 |
| |
| 53.52% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.38028169014084506 | | totalSentences | 71 | | uniqueOpeners | 27 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 51 | | matches | | 0 | "Then a hollow where the" | | 1 | "Somewhere beneath them, far down," |
| | ratio | 0.039 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 51 | | matches | | 0 | "She stood a pace ahead," | | 1 | "She had not crossed the" | | 2 | "She went through first." | | 3 | "She left no impression at" | | 4 | "Their violet eyes went wide," | | 5 | "they said softly" | | 6 | "It always did." | | 7 | "She felt the small crescent" | | 8 | "They went deeper." | | 9 | "Her pale eyes held Rory's" | | 10 | "They went on." | | 11 | "It had been warm since" | | 12 | "She walked on, her silver" | | 13 | "She faced forward again." | | 14 | "She drew the moonsilver blade" |
| | ratio | 0.294 | |
| 48.24% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 42 | | totalSentences | 51 | | matches | | 0 | "The standing stones came out" | | 1 | "Rory stopped at the tree" | | 2 | "She stood a pace ahead," | | 3 | "She had not crossed the" | | 4 | "Nyx did not have weight," | | 5 | "Nyx whispered, and the voice" | | 6 | "Isolde's pale lavender eyes moved" | | 7 | "That was her own voice," | | 8 | "Nyx tilted their head —" | | 9 | "She went through first." | | 10 | "The cold of the threshold" | | 11 | "The sky on the other" | | 12 | "Wildflowers pushed through it in" | | 13 | "Rory stopped walking." | | 14 | "Isolde agreed, stepping through behind" | | 15 | "She left no impression at" | | 16 | "NyxCame through as shadow first" | | 17 | "Their violet eyes went wide," | | 18 | "they said softly" | | 19 | "Rory did not know what" |
| | ratio | 0.824 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 51 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 9 | | matches | | 0 | "Rory stopped at the tree line and counted them — seven oaks, each one wide as a London black cab, their bark split into ridges that caught the last of the after…" | | 1 | "Between two of them the air shimmered, a faint distortion, as if heat were rising off tarmac on a day that wasn't warm." | | 2 | "She had not crossed the threshold yet, and Rory understood, with the cool small click of a mind that had spent three years studying the law, that she was waitin…" | | 3 | "Isolde's pale lavender eyes moved to her, and the corner of her mouth did something that was not quite a smile." | | 4 | "Wildflowers pushed through it in impossible densities — foxglove and snowdrop and orchids that should have needed weeks of frost to open — all of them blooming …" | | 5 | "NyxCame through as shadow first — a ribbon of dark flowing between the oaks — and then gathered upward into their solid form, taller than the low sweep of an oa…" | | 6 | "The moonsilver was cold even through the leather — it was always cold, a leaf-shaped sliver of Fae work that Isolde had pressed into her palm three nights ago o…" | | 7 | "The Heartstone had been warm when she woke that morning; it was warm now, a faint pulse against her collarbone, deep crimson and thumb-sized and pulsing faintly…" | | 8 | "She drew the moonsilver blade an inch from its sheath, felt the cold bite into her palm, and stepped down into the flowers, which parted for her without complai…" |
| |
| 83.33% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 1 | | matches | | 0 | "Nyx whispered, and the voice arrived from everywhere at once, a draught under a door" |
| |
| 81.03% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 2 | | fancyTags | | 0 | "Nyx whispered (whisper)" | | 1 | "Isolde agreed (agree)" |
| | dialogueSentences | 29 | | tagDensity | 0.345 | | leniency | 0.69 | | rawRatio | 0.2 | | effectiveRatio | 0.138 | |