| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 2 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 84.91% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1325 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "deliberately" | | count | 1 |
| | 2 | |
| | highlights | | 0 | "truly" | | 1 | "deliberately" | | 2 | "slowly" |
| |
| 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) | |
| 20.75% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1325 | | totalAiIsms | 21 | | found | | | highlights | | 0 | "whisper" | | 1 | "pulse" | | 2 | "warmth" | | 3 | "crystal" | | 4 | "sentinels" | | 5 | "flickered" | | 6 | "silence" | | 7 | "perfect" | | 8 | "resolved" | | 9 | "echo" | | 10 | "flicker" | | 11 | "aftermath" | | 12 | "rhythmic" | | 13 | "quickened" | | 14 | "lurched" | | 15 | "echoed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "let out a breath" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 108 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 108 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 108 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1308 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 1301 | | uniqueNames | 10 | | maxNameDensity | 0.54 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 7 | | Golden | 1 | | Empress | 1 | | London | 4 | | Richmond | 1 | | Park | 1 | | October | 1 | | Silas | 1 | | Carter | 1 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Empress" | | 2 | "Silas" | | 3 | "Carter" | | 4 | "Evan" |
| | places | | 0 | "London" | | 1 | "Richmond" | | 2 | "Park" |
| | globalScore | 1 | | windowScore | 1 | |
| 81.51% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 73 | | glossingSentenceCount | 2 | | matches | | 0 | "me had curved, seemingly of its own accord" | | 1 | "felt like folding, and Rory Carter did" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 3.058 | | wordCount | 1308 | | matches | | 0 | "Not the absence of sound, but the presence of a different kind of quiet, one" | | 1 | "not left, but behind" | | 2 | "Not with words, but with a sound" | | 3 | "Not a branch at all, but a limb, long" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 108 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 39.64 | | std | 25.97 | | cv | 0.655 | | sampleLengths | | 0 | 58 | | 1 | 62 | | 2 | 18 | | 3 | 71 | | 4 | 66 | | 5 | 48 | | 6 | 22 | | 7 | 86 | | 8 | 67 | | 9 | 3 | | 10 | 7 | | 11 | 60 | | 12 | 6 | | 13 | 27 | | 14 | 62 | | 15 | 60 | | 16 | 6 | | 17 | 62 | | 18 | 7 | | 19 | 53 | | 20 | 46 | | 21 | 5 | | 22 | 59 | | 23 | 55 | | 24 | 59 | | 25 | 42 | | 26 | 2 | | 27 | 58 | | 28 | 9 | | 29 | 56 | | 30 | 58 | | 31 | 1 | | 32 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 108 | | matches | | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 8 | | totalVerbs | 206 | | matches | | 0 | "was glowing" | | 1 | "was already settling" | | 2 | "wasn’t leaving" | | 3 | "wasn’t looking" | | 4 | "was beating" | | 5 | "was breathing" | | 6 | "was cooling" | | 7 | "was still watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 108 | | ratio | 0.111 | | matches | | 0 | "But the pendant had grown insistent—a steady, thrumming warmth against her sternum—and her route home had curved, seemingly of its own accord, toward the black expanse of Richmond Park." | | 1 | "By daylight, they were merely odd—weathered sentinels that tourists photographed and forgot." | | 2 | "The air tasted different here—sweet and cold, like apples left too long in a cellar." | | 3 | "The next, the air thickened, and the moonlight took on a quality she couldn’t name—older, somehow, as though it had traveled farther to reach her." | | 4 | "Wildflowers spilled across the clearing in careless drifts—bluebells and foxgloves and things she had no name for, blossoms that uncurled in shades of violet so deep they were nearly black." | | 5 | "She’d come here for answers—or the pendant had brought her, which amounted to the same thing—and she wasn’t leaving without something." | | 6 | "She spun, heart hammering, but there was nothing—just the boundary stones, dark and patient, and the wall of trees beyond." | | 7 | "It was beating—actually beating, a rhythmic pulse that matched nothing, not her heart, not anything living." | | 8 | "The moonlight caught the edge of something pale—bone-white, bark-textured—before it withdrew into the darkness beneath the tree." | | 9 | "The wildflowers nearest her feet turned their heads—turned, like living things, their petals swiveling toward her with a rustle that finally, finally made sound." | | 10 | "She hit the stone line at full sprint, and the world lurched—a sickening twist of gravity and direction—and then she was through, stumbling onto damp London grass with the distant glitter of city lights bleeding through the trees." | | 11 | "The laughter still echoed in the space behind her ears, and she knew—with the same bone-deep certainty—that something in the grove was still watching." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1325 | | adjectiveStacks | 1 | | stackExamples | | 0 | "same bone-deep certainty—" |
| | adverbCount | 53 | | adverbRatio | 0.04 | | lyAdverbCount | 17 | | lyAdverbRatio | 0.012830188679245283 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 108 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 108 | | mean | 12.11 | | std | 8.67 | | cv | 0.716 | | sampleLengths | | 0 | 30 | | 1 | 11 | | 2 | 17 | | 3 | 6 | | 4 | 2 | | 5 | 25 | | 6 | 29 | | 7 | 18 | | 8 | 17 | | 9 | 12 | | 10 | 7 | | 11 | 16 | | 12 | 19 | | 13 | 4 | | 14 | 25 | | 15 | 7 | | 16 | 15 | | 17 | 15 | | 18 | 3 | | 19 | 13 | | 20 | 4 | | 21 | 9 | | 22 | 19 | | 23 | 22 | | 24 | 4 | | 25 | 9 | | 26 | 25 | | 27 | 9 | | 28 | 23 | | 29 | 8 | | 30 | 5 | | 31 | 3 | | 32 | 18 | | 33 | 30 | | 34 | 19 | | 35 | 3 | | 36 | 7 | | 37 | 13 | | 38 | 17 | | 39 | 1 | | 40 | 3 | | 41 | 17 | | 42 | 9 | | 43 | 6 | | 44 | 11 | | 45 | 2 | | 46 | 2 | | 47 | 12 | | 48 | 18 | | 49 | 23 |
| |
| 39.81% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.2962962962962963 | | totalSentences | 108 | | uniqueOpeners | 32 | |
| 70.92% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 94 | | matches | | 0 | "Just a branch." | | 1 | "Just sound that ceased to" |
| | ratio | 0.021 | |
| 88.09% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 94 | | matches | | 0 | "She pressed her palm flat" | | 1 | "It was glowing again, a" | | 2 | "She hadn’t meant to come" | | 3 | "She shoved it back in" | | 4 | "She should leave." | | 5 | "She had work tomorrow." | | 6 | "Her flat above Silas’s bar" | | 7 | "Her heart seized, a brutal" | | 8 | "She blinked, hard, and the" | | 9 | "She let out a breath" | | 10 | "It was almost hot now," | | 11 | "Her voice fell dead in" | | 12 | "She moved deeper into the" | | 13 | "She’d come here for answers—or" | | 14 | "She stopped mid-stride and stamped," | | 15 | "She crouched and pressed her" | | 16 | "She spun, heart hammering, but" | | 17 | "She turned more slowly this" | | 18 | "She knew it with the" | | 19 | "It lay in a different" |
| | ratio | 0.33 | |
| 66.38% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 74 | | totalSentences | 94 | | matches | | 0 | "The chain slipped against Rory’s" | | 1 | "She pressed her palm flat" | | 2 | "It was glowing again, a" | | 3 | "She hadn’t meant to come" | | 4 | "The delivery shift had ended" | | 5 | "The standing stones rose before" | | 6 | "The silver glow didn’t so" | | 7 | "The shadows beneath them were" | | 8 | "Rory checked her phone." | | 9 | "The screen flickered, the time" | | 10 | "She shoved it back in" | | 11 | "The air tasted different here—sweet" | | 12 | "The wildflowers at her feet" | | 13 | "She should leave." | | 14 | "The thought was clear and" | | 15 | "She had work tomorrow." | | 16 | "Her flat above Silas’s bar" | | 17 | "Eva would text in the" | | 18 | "The transition wasn’t visible." | | 19 | "The next, the air thickened," |
| | ratio | 0.787 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 94 | | matches | | 0 | "Now she stood at the" | | 1 | "To bolt for the boundary" |
| | ratio | 0.021 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 56 | | technicalSentenceCount | 14 | | matches | | 0 | "The chain slipped against Rory’s collarbone as she dismounted her bike, a whisper of silver and a pulse of warmth that had nothing to do with her own body heat." | | 1 | "By daylight, they were merely odd—weathered sentinels that tourists photographed and forgot." | | 2 | "The screen flickered, the time stuttering between 12:03 and something that might have been 3:17 before settling on a string of numbers she didn’t recognize." | | 3 | "The wildflowers at her feet were in full bloom, which was impossible for late October." | | 4 | "The next, the air thickened, and the moonlight took on a quality she couldn’t name—older, somehow, as though it had traveled farther to reach her." | | 5 | "Wildflowers spilled across the clearing in careless drifts—bluebells and foxgloves and things she had no name for, blossoms that uncurled in shades of violet so…" | | 6 | "Her heart seized, a brutal clench that sent adrenaline screaming through her limbs." | | 7 | "She let out a breath that was half-laugh, half-gasp, and pressed her hand harder against the pendant." | | 8 | "She knew it with the bone-deep certainty that precedes conscious thought." | | 9 | "It was beating—actually beating, a rhythmic pulse that matched nothing, not her heart, not anything living." | | 10 | "Not with words, but with a sound that began beneath the threshold of hearing and rose slowly, a vibration that she felt in her teeth before her ears caught up." | | 11 | "The inhale and exhale of something vast and patient, something that had been waiting longer than the trees had been alive." | | 12 | "The laughter rose, split, multiplied until it was a chorus of small, cruel voices that chased her heels and plucked at her jacket and whispered syllables that a…" | | 13 | "The pendant was cooling rapidly, its glow fading to a sullen ember." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 2 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "she breathed (breathe)" |
| | dialogueSentences | 2 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 1 | | effectiveRatio | 1 | |