| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 43 | | tagDensity | 0.326 | | leniency | 0.651 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 88.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1297 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "utterly" | | 1 | "slowly" | | 2 | "suddenly" |
| |
| 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) | |
| 69.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1297 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "silence" | | 1 | "warmth" | | 2 | "perfect" | | 3 | "comfortable" | | 4 | "whisper" | | 5 | "pulse" |
| |
| 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 | 73 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 73 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 102 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1305 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 1071 | | uniqueNames | 12 | | maxNameDensity | 1.49 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Park | 1 | | Eva | 11 | | Rory | 16 | | Shade | 2 | | Heartstone | 1 | | December | 1 | | Orion | 2 | | Plough | 1 | | London | 1 | | Fae | 1 | | Nyx | 5 | | Deeper | 1 |
| | persons | | 0 | "Eva" | | 1 | "Rory" | | 2 | "Shade" | | 3 | "Nyx" |
| | places | | | globalScore | 0.753 | | windowScore | 0.667 | |
| 97.92% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | glossingSentenceCount | 1 | | matches | | 0 | "urning slowly, visibly, the way a mobile t" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1305 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 102 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 25.59 | | std | 27.51 | | cv | 1.075 | | sampleLengths | | 0 | 32 | | 1 | 5 | | 2 | 7 | | 3 | 38 | | 4 | 9 | | 5 | 21 | | 6 | 64 | | 7 | 15 | | 8 | 56 | | 9 | 27 | | 10 | 48 | | 11 | 6 | | 12 | 3 | | 13 | 92 | | 14 | 17 | | 15 | 2 | | 16 | 65 | | 17 | 61 | | 18 | 10 | | 19 | 8 | | 20 | 7 | | 21 | 75 | | 22 | 5 | | 23 | 3 | | 24 | 92 | | 25 | 7 | | 26 | 3 | | 27 | 6 | | 28 | 2 | | 29 | 2 | | 30 | 47 | | 31 | 87 | | 32 | 6 | | 33 | 1 | | 34 | 1 | | 35 | 4 | | 36 | 30 | | 37 | 1 | | 38 | 7 | | 39 | 19 | | 40 | 33 | | 41 | 8 | | 42 | 4 | | 43 | 1 | | 44 | 66 | | 45 | 82 | | 46 | 11 | | 47 | 30 | | 48 | 46 | | 49 | 26 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 73 | | matches | (empty) | |
| 75.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 160 | | matches | | 0 | "was coming" | | 1 | "was hugging" | | 2 | "was holding" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 102 | | ratio | 0.069 | | matches | | 0 | "The air between two of the trunks had a texture to it — a slight resistance, like pressing a palm against the skin on cooling milk." | | 1 | "Not warmth exactly — the temperature of a held breath, of a room where someone had just been." | | 2 | "Her thumb had made the call for her, because the light was already there — a low, honeyed glow with no source she could find, rising from the grass itself, from the undersides of leaves, from the mist that pooled at the far edge of the clearing and never once thinned or moved." | | 3 | "The clearing was bigger inside than the ring of oaks allowed for — Rory counted forty paces and then eighty and the far treeline stayed exactly as far away as it had been, until she stopped counting, and then it was suddenly near." | | 4 | "It had a shell of hammered copper — not the colour of copper, the substance, seamed and dented and beaten thin — and when it opened its wings the sound was a struck bell, small and clear." | | 5 | "Deeper in, the flowers gave way to a floor of moss so thick that Rory sank to her shins, and the sound of their walking simply stopped existing — three people moving through knee-high growth in total, cottony silence, so that Eva's breathing became the loudest thing for a hundred yards." | | 6 | "Under the warmth, faint, patient, something moved — a pulse, slow as a sleeping animal's." |
| |
| 93.60% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 317 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 15 | | adverbRatio | 0.0473186119873817 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.006309148264984227 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 102 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 102 | | mean | 12.79 | | std | 11.9 | | cv | 0.93 | | sampleLengths | | 0 | 13 | | 1 | 19 | | 2 | 5 | | 3 | 7 | | 4 | 27 | | 5 | 11 | | 6 | 9 | | 7 | 11 | | 8 | 10 | | 9 | 18 | | 10 | 22 | | 11 | 2 | | 12 | 22 | | 13 | 5 | | 14 | 10 | | 15 | 7 | | 16 | 26 | | 17 | 19 | | 18 | 4 | | 19 | 16 | | 20 | 11 | | 21 | 11 | | 22 | 3 | | 23 | 34 | | 24 | 3 | | 25 | 3 | | 26 | 3 | | 27 | 7 | | 28 | 18 | | 29 | 50 | | 30 | 17 | | 31 | 17 | | 32 | 2 | | 33 | 8 | | 34 | 4 | | 35 | 53 | | 36 | 5 | | 37 | 2 | | 38 | 37 | | 39 | 17 | | 40 | 7 | | 41 | 3 | | 42 | 4 | | 43 | 4 | | 44 | 7 | | 45 | 2 | | 46 | 43 | | 47 | 14 | | 48 | 16 | | 49 | 5 |
| |
| 72.55% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.47058823529411764 | | totalSentences | 102 | | uniqueOpeners | 48 | |
| 55.56% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 60 | | matches | | 0 | "Then the moss ended at" |
| | ratio | 0.017 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 13 | | totalSentences | 60 | | matches | | 0 | "Their voice arrived the way" | | 1 | "They weren't growing so much" | | 2 | "Her breath fogged and drifted" | | 3 | "She hadn't decided to." | | 4 | "Her thumb had made the" | | 5 | "She marked the ground behind" | | 6 | "Her boots left dents in" | | 7 | "It had a shell of" | | 8 | "They found the spring at" | | 9 | "She sat back on her" | | 10 | "She held it up so" | | 11 | "It was warm." | | 12 | "Her palm kept the heat" |
| | ratio | 0.217 | |
| 60.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 48 | | totalSentences | 60 | | matches | | 0 | "Richmond Park at four in" | | 1 | "Rory kept her torch low," | | 2 | "Nyx flowed ahead of them" | | 3 | "Their voice arrived the way" | | 4 | "The oaks came up out" | | 5 | "Rory stopped hard enough that" | | 6 | "They weren't growing so much" | | 7 | "The trunks simply ended twelve" | | 8 | "Rory reached out, then didn't" | | 9 | "The air between two of" | | 10 | "Her breath fogged and drifted" | | 11 | "The Shade's violet eyes brightened," | | 12 | "That was something." | | 13 | "Rory stepped through." | | 14 | "The cold went out of" | | 15 | "Grass came up past her" | | 16 | "The scent hit the back" | | 17 | "Eva came through a second" | | 18 | "Rory clicked the torch off" | | 19 | "She hadn't decided to." |
| | ratio | 0.8 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 60 | | matches | (empty) | | ratio | 0 | |
| 90.59% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 3 | | matches | | 0 | "The trunks simply ended twelve feet up, flat and pale, as though something had sheared the crowns off and taken them elsewhere." | | 1 | "Her thumb had made the call for her, because the light was already there — a low, honeyed glow with no source she could find, rising from the grass itself, from…" | | 2 | "Flagstones, pale, each the size of a tabletop, laid in a curve that ran off into the mist in both directions and carried marks in a script that turned Rory's ey…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 2 | | fancyTags | | 0 | "Nyx murmured (murmur)" | | 1 | "Eva breathed (breathe)" |
| | dialogueSentences | 43 | | tagDensity | 0.186 | | leniency | 0.372 | | rawRatio | 0.25 | | effectiveRatio | 0.093 | |