| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 35 | | tagDensity | 0.514 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 89.08% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1373 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "suddenly" | | 1 | "very" | | 2 | "slightly" |
| |
| 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) | |
| 74.51% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1373 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "whisper" | | 1 | "pulsed" | | 2 | "calculating" | | 3 | "weight" | | 4 | "pulse" | | 5 | "chill" |
| |
| 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 | 77 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 77 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 94 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 67 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 2 | | totalWords | 1389 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 1178 | | uniqueNames | 14 | | maxNameDensity | 1.19 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Isolde" | | discoveredNames | | Peter | 1 | | Kavanagh | 1 | | Nyx | 7 | | December | 1 | | Richmond | 1 | | Park | 1 | | Golden | 1 | | Empress | 1 | | Yu-Fei | 1 | | Cardiff | 1 | | Rory | 14 | | Heartstone | 1 | | Isolde | 6 | | Veil | 1 |
| | persons | | 0 | "Peter" | | 1 | "Kavanagh" | | 2 | "Nyx" | | 3 | "Yu-Fei" | | 4 | "Rory" | | 5 | "Heartstone" | | 6 | "Isolde" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Cardiff" |
| | globalScore | 0.906 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 4 | | matches | | 0 | "something like it once, years ago, through t" | | 1 | "not quite there" | | 2 | "not quite in time with her own, and she thought of an amber sky that wasn't the sky she knew, and a Veil that thinned when the year turned over, and the fact that she had walked into a place that kept its own time and had not once thought about the duck getting cold" | | 3 | "around it was visibly colder — Rory felt" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1389 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 94 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 33.07 | | std | 27.69 | | cv | 0.837 | | sampleLengths | | 0 | 58 | | 1 | 5 | | 2 | 74 | | 3 | 4 | | 4 | 5 | | 5 | 77 | | 6 | 28 | | 7 | 19 | | 8 | 35 | | 9 | 58 | | 10 | 58 | | 11 | 62 | | 12 | 17 | | 13 | 2 | | 14 | 88 | | 15 | 8 | | 16 | 10 | | 17 | 3 | | 18 | 13 | | 19 | 70 | | 20 | 26 | | 21 | 37 | | 22 | 2 | | 23 | 5 | | 24 | 80 | | 25 | 40 | | 26 | 71 | | 27 | 6 | | 28 | 23 | | 29 | 5 | | 30 | 10 | | 31 | 27 | | 32 | 45 | | 33 | 19 | | 34 | 23 | | 35 | 90 | | 36 | 3 | | 37 | 77 | | 38 | 9 | | 39 | 36 | | 40 | 17 | | 41 | 44 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 77 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 196 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 94 | | ratio | 0.128 | | matches | | 0 | "Not warm exactly — the air was still cool against her cheeks, still carried the mineral bite of a December evening — but the sharpness left it, the way a struck bell goes silent." | | 1 | "Not sun-warm — deeper than that, like the side of a mug someone had been holding." | | 2 | "The oaks of Richmond Park were bare and black-veined in winter, but these were heavy with leaf — deep green, faintly luminous, each one catching light that had no source." | | 3 | "Her delivery bag — Golden Empress, the order still inside, a container of Yu-Fei's five-spice duck going cold against her hip — suddenly seemed like an artefact from a different species." | | 4 | "The clearing opened ahead of them in stages, the way a room reveals itself when you come down a corridor — first the low hush of the grass, then a sound that was almost music, a thin bright plucking like a string being tuned forever and never quite finished." | | 5 | "Not fireflies — too steady, too deliberate, drifting in slow arcs above the flower carpet and pausing as they noticed her, the way a cat pauses when a door opens." | | 6 | "The trees thinned, and Rory saw them — the standing stones, older than anything she had touched in her life, eight of them set in a ring so precise that her barrister's brain immediately started calculating who had surveyed it and when." | | 7 | "Rory's hand went to her wrist before she understood why — the crescent scar, the old habit, the place she touched when the ground shifted under her." | | 8 | "\"I told her nothing,\" Isolde said, and the compulsion moved through the words like a wire through cloth — true, entirely, and leading somewhere else entirely." | | 9 | "The fire — the lights — the canopy breathing above them — all of it seemed, for one held breath, to lean closer." | | 10 | "It was a dagger, delicate as a surgeon's tool, and the air around it was visibly colder — Rory felt the cold reach her before the metal did, a clean biting chill that made her teeth ache." | | 11 | "Behind them, far off through the ring of oaks, something that was not wind moved through the leaves, and every light in the clearing went out at once, and then came back — every one of them, in the same instant, facing the stones." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1171 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 46 | | adverbRatio | 0.03928266438941076 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.008539709649871904 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 94 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 94 | | mean | 14.78 | | std | 12.78 | | cv | 0.865 | | sampleLengths | | 0 | 24 | | 1 | 15 | | 2 | 4 | | 3 | 15 | | 4 | 5 | | 5 | 16 | | 6 | 21 | | 7 | 23 | | 8 | 14 | | 9 | 4 | | 10 | 5 | | 11 | 4 | | 12 | 34 | | 13 | 39 | | 14 | 9 | | 15 | 3 | | 16 | 16 | | 17 | 10 | | 18 | 9 | | 19 | 15 | | 20 | 20 | | 21 | 6 | | 22 | 30 | | 23 | 8 | | 24 | 14 | | 25 | 11 | | 26 | 3 | | 27 | 44 | | 28 | 6 | | 29 | 16 | | 30 | 9 | | 31 | 31 | | 32 | 9 | | 33 | 8 | | 34 | 2 | | 35 | 2 | | 36 | 49 | | 37 | 3 | | 38 | 34 | | 39 | 8 | | 40 | 6 | | 41 | 4 | | 42 | 3 | | 43 | 4 | | 44 | 9 | | 45 | 5 | | 46 | 30 | | 47 | 35 | | 48 | 4 | | 49 | 22 |
| |
| 47.16% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.3404255319148936 | | totalSentences | 94 | | uniqueOpeners | 32 | |
| 51.28% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 65 | | matches | | 0 | "Then she reached beneath her" |
| | ratio | 0.015 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 65 | | matches | | 0 | "It had read 6:14 when" | | 1 | "They were taller than the" | | 2 | "they said, and their voice" | | 3 | "She pushed through the arch." | | 4 | "It was warm." | | 5 | "she said, though she didn't" | | 6 | "She realised what she was" | | 7 | "It wasn't clouds." | | 8 | "It was the canopy itself," | | 9 | "She straightened up, brushed the" | | 10 | "Her delivery bag — Golden" | | 11 | "She had heard something like" | | 12 | "It wasn't a question." | | 13 | "She looked down." | | 14 | "She unfolded from the stone" | | 15 | "She held it out, hilt" | | 16 | "It was a dagger, delicate" | | 17 | "Her gaze settled on Rory," |
| | ratio | 0.277 | |
| 52.31% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 65 | | matches | | 0 | "The oak stood apart from" | | 1 | "Rory stopped beneath it and" | | 2 | "The screen read 6:14." | | 3 | "It had read 6:14 when" | | 4 | "Nyx materialised out of her" | | 5 | "They were taller than the" | | 6 | "they said, and their voice" | | 7 | "She pushed through the arch." | | 8 | "The cold went first." | | 9 | "Rory crouched and put two" | | 10 | "It was warm." | | 11 | "she said, though she didn't" | | 12 | "Nyx said, and stepped through" | | 13 | "The oaks of Richmond Park" | | 14 | "Rory looked for a moon" | | 15 | "The sky was the colour" | | 16 | "She realised what she was" | | 17 | "It wasn't clouds." | | 18 | "It was the canopy itself," | | 19 | "The words came out before" |
| | ratio | 0.815 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 65 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 10 | | matches | | 0 | "The oaks of Richmond Park were bare and black-veined in winter, but these were heavy with leaf — deep green, faintly luminous, each one catching light that had …" | | 1 | "It was the canopy itself, breathing, the leaves shifting in a wind she couldn't feel, and wherever they parted she glimpsed a sky that was wrong: too wide, too …" | | 2 | "The clearing opened ahead of them in stages, the way a room reveals itself when you come down a corridor — first the low hush of the grass, then a sound that wa…" | | 3 | "The thing hovered, considered her with an intelligence that had no business being behind a light that small, and then spiralled away." | | 4 | "The stones were grey and unmarked, and where they met the earth the wildflowers grew thickest, crowding the base of each one as if drawn by heat." | | 5 | "And beyond it, sitting on the lowest stone with her silver hair unbound and her pale lavender eyes half-closed, a woman who was not quite there." | | 6 | "Nyx drifted to the edge of the ring and stopped, their shadow-form flattening slightly, as though something in the stone resisted them." | | 7 | "Rory felt the pendant pulse against her sternum, a small insistent heartbeat not quite in time with her own, and she thought of an amber sky that wasn't the sky…" | | 8 | "Then she reached beneath her own collar and drew out a slender leaf of grey-white metal that shone faintly in the light that had no source." | | 9 | "Behind them, far off through the ring of oaks, something that was not wind moved through the leaves, and every light in the clearing went out at once, and then …" |
| |
| 97.22% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 1 | | matches | | 0 | "Isolde said, and the compulsion moved through the words like a wire through cloth — true, entirely, and leading somewhere else entirely" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 1 | | fancyTags | | 0 | "Nyx breathed (breathe)" |
| | dialogueSentences | 35 | | tagDensity | 0.486 | | leniency | 0.971 | | rawRatio | 0.059 | | effectiveRatio | 0.057 | |