| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 1 | | adverbTags | | 0 | "they said quietly [quietly]" |
| | dialogueSentences | 27 | | tagDensity | 0.593 | | leniency | 1 | | rawRatio | 0.063 | | effectiveRatio | 0.063 | |
| 76.92% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1300 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "slightly" | | 1 | "gently" | | 2 | "carefully" | | 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) | |
| 50.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1300 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "pulse" | | 1 | "whisper" | | 2 | "shimmered" | | 3 | "familiar" | | 4 | "warmth" | | 5 | "sense of" | | 6 | "weight" | | 7 | "unsettled" | | 8 | "could feel" | | 9 | "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 | 94 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 94 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 105 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1312 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 73.01% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1104 | | uniqueNames | 12 | | maxNameDensity | 1.54 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Heartstone | 5 | | Park | 2 | | November | 1 | | Isolde | 7 | | Rory | 17 | | Wicklow | 1 | | Nyx | 5 | | Bermondsey | 1 | | Hel | 1 | | Fae | 2 | | Richmond | 2 | | Dymas | 1 |
| | persons | | 0 | "Heartstone" | | 1 | "Isolde" | | 2 | "Rory" | | 3 | "Nyx" |
| | places | | 0 | "Park" | | 1 | "Wicklow" | | 2 | "Bermondsey" | | 3 | "Richmond" |
| | globalScore | 0.73 | | windowScore | 0.833 | |
| 11.11% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 3 | | matches | | 0 | "seemed richer somehow, the violet glow of their eyes more pronounced against the diffuse, sourceless light of the clearing" | | 1 | "not quite mist and not quite light" | | 2 | "not quite amusement moved across her face" |
| |
| 47.56% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.524 | | wordCount | 1312 | | matches | | 0 | "Not warmer exactly, but more present" | | 1 | "not the stacked grey slabs Rory associated with the idea of standing stones, but single shafts of dark wood grown rather than placed, ancient" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 105 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 31.24 | | std | 29.04 | | cv | 0.93 | | sampleLengths | | 0 | 11 | | 1 | 54 | | 2 | 59 | | 3 | 95 | | 4 | 39 | | 5 | 4 | | 6 | 58 | | 7 | 26 | | 8 | 15 | | 9 | 5 | | 10 | 3 | | 11 | 67 | | 12 | 3 | | 13 | 118 | | 14 | 64 | | 15 | 4 | | 16 | 12 | | 17 | 46 | | 18 | 7 | | 19 | 2 | | 20 | 12 | | 21 | 50 | | 22 | 4 | | 23 | 71 | | 24 | 71 | | 25 | 13 | | 26 | 52 | | 27 | 4 | | 28 | 3 | | 29 | 34 | | 30 | 17 | | 31 | 22 | | 32 | 47 | | 33 | 11 | | 34 | 7 | | 35 | 19 | | 36 | 59 | | 37 | 26 | | 38 | 73 | | 39 | 3 | | 40 | 3 | | 41 | 19 |
| |
| 97.80% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 94 | | matches | | 0 | "been told " | | 1 | "been told" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 177 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 105 | | ratio | 0.095 | | matches | | 0 | "Rory felt it through her jacket, through the thin cotton of her shirt — a pulse against her sternum like a second heartbeat finding its rhythm." | | 1 | "Not warmer exactly, but more present — dense with the smell of turned earth and something floral that Rory couldn't name, something that reminded her distantly of her grandmother's garden in Wicklow without being that at all." | | 2 | "She'd been told — she'd told herself — to expect something strange." | | 3 | "It was vast in a way that the eye kept refusing to accept — a natural amphitheatre dropping gently from the tree line to a shallow basin where the ground shimmered with something that was not quite mist and not quite light." | | 4 | "Standing stones rose from the basin's edge, not the stacked grey slabs Rory associated with the idea of standing stones, but single shafts of dark wood grown rather than placed, ancient oaks arrested in the act of reaching skyward, their upper branches long gone, bark worn smooth and black by centuries of — what?" | | 5 | "Rory thought at first it was a veil of cobweb, or ice, or — she moved closer before she'd made the decision to — a distortion." | | 6 | "They raised one hand — a shape approximating a hand, fingers of living shadow — and held it inches from the distortion without touching." | | 7 | "Rory thought of the Heartstone again, thought of Dymas and what she'd been told of it — amber skies over gardens planted for excess, grand tables set for souls under contract, a prince of singular appetite presiding over it all." | | 8 | "\"Merely adjacent. This place touches many things. That is why I was drawn here, three centuries past, and why I remain.\" She paused, and something that was almost — but carefully not quite — amusement moved across her face." | | 9 | "She turned fast, hand closing on the blade's handle fully now — and found nothing." |
| |
| 85.73% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1092 | | adjectiveStacks | 1 | | stackExamples | | 0 | "indifferent over muddy ground." |
| | adverbCount | 54 | | adverbRatio | 0.04945054945054945 | | lyAdverbCount | 20 | | lyAdverbRatio | 0.018315018315018316 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 105 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 105 | | mean | 12.5 | | std | 11.72 | | cv | 0.938 | | sampleLengths | | 0 | 11 | | 1 | 26 | | 2 | 28 | | 3 | 8 | | 4 | 2 | | 5 | 5 | | 6 | 12 | | 7 | 32 | | 8 | 4 | | 9 | 37 | | 10 | 37 | | 11 | 6 | | 12 | 3 | | 13 | 3 | | 14 | 5 | | 15 | 11 | | 16 | 7 | | 17 | 11 | | 18 | 10 | | 19 | 4 | | 20 | 20 | | 21 | 27 | | 22 | 11 | | 23 | 19 | | 24 | 7 | | 25 | 6 | | 26 | 9 | | 27 | 5 | | 28 | 3 | | 29 | 12 | | 30 | 21 | | 31 | 24 | | 32 | 3 | | 33 | 7 | | 34 | 3 | | 35 | 14 | | 36 | 42 | | 37 | 54 | | 38 | 1 | | 39 | 1 | | 40 | 6 | | 41 | 8 | | 42 | 26 | | 43 | 2 | | 44 | 28 | | 45 | 4 | | 46 | 3 | | 47 | 4 | | 48 | 5 | | 49 | 21 |
| |
| 63.49% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.4380952380952381 | | totalSentences | 105 | | uniqueOpeners | 46 | |
| 84.39% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 79 | | matches | | 0 | "Then Isolde had stepped out" | | 1 | "Only the sourceless light." |
| | ratio | 0.025 | |
| 78.23% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 79 | | matches | | 0 | "She pressed two fingers to" | | 1 | "It was soft." | | 2 | "It was real." | | 3 | "It just wasn't quite right." | | 4 | "She left no marks in" | | 5 | "Her feet passed over it" | | 6 | "They turned their head in" | | 7 | "they said, in that wind-carried" | | 8 | "She'd been told — she'd" | | 9 | "She'd stood in Nyx's shadow" | | 10 | "She'd held the Fae blade" | | 11 | "She knew strange." | | 12 | "She had a working relationship" | | 13 | "It was vast in a" | | 14 | "She'd felt it before." | | 15 | "Her pale lavender eyes reflected" | | 16 | "They raised one hand —" | | 17 | "they said quietly" | | 18 | "She pressed her hand flat" | | 19 | "It knew something she didn't." |
| | ratio | 0.354 | |
| 48.61% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 65 | | totalSentences | 79 | | matches | | 0 | "The Heartstone went warm the" | | 1 | "Rory felt it through her" | | 2 | "She pressed two fingers to" | | 3 | "Richmond Park had been ordinary" | | 4 | "A cyclist in luminous yellow." | | 5 | "The grey November sky pressing" | | 6 | "The air was different." | | 7 | "Wildflowers pressed up from the" | | 8 | "Rory crouched briefly, touched a" | | 9 | "It was soft." | | 10 | "It was real." | | 11 | "It just wasn't quite right." | | 12 | "Isolde said, already several paces" | | 13 | "She left no marks in" | | 14 | "Her feet passed over it" | | 15 | "Rory straightened and followed." | | 16 | "Nyx moved alongside her, or" | | 17 | "They turned their head in" | | 18 | "they said, in that wind-carried" | | 19 | "Isolde agreed without turning" |
| | ratio | 0.823 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 79 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 7 | | matches | | 0 | "She pressed two fingers to the pendant through the fabric and said nothing, watching the ancient oaks close behind them as though the grove had swallowed them w…" | | 1 | "Then Isolde had stepped out of nowhere in particular, silver hair catching light that didn't seem to belong to any identifiable source, and said, follow me thro…" | | 2 | "Not warmer exactly, but more present — dense with the smell of turned earth and something floral that Rory couldn't name, something that reminded her distantly …" | | 3 | "Wildflowers pressed up from the moss in small impossible clusters, white and violet and a shade of gold that seemed slightly too saturated, too deliberate, like…" | | 4 | "In the grove the shadow that comprised them seemed richer somehow, the violet glow of their eyes more pronounced against the diffuse, sourceless light of the cl…" | | 5 | "It was vast in a way that the eye kept refusing to accept — a natural amphitheatre dropping gently from the tree line to a shallow basin where the ground shimme…" | | 6 | "The moonsilver was always cold but here it was cold in a way that felt purposeful, attentive." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 27 | | tagDensity | 0.444 | | leniency | 0.889 | | rawRatio | 0.083 | | effectiveRatio | 0.074 | |