| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.8 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 89.63% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1447 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slowly" | | 1 | "very" | | 2 | "perfectly" |
| |
| 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) | |
| 48.17% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1447 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "warmth" | | 1 | "pulsed" | | 2 | "silence" | | 3 | "throb" | | 4 | "echo" | | 5 | "scanning" | | 6 | "weight" | | 7 | "quickened" | | 8 | "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 | 1 | | narrationSentences | 119 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 119 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 121 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1432 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 1403 | | uniqueNames | 8 | | maxNameDensity | 0.64 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Park | 2 | | Rory | 9 | | November | 3 | | Heathrow | 1 | | Eva | 3 | | London | 1 | | Welsh | 1 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "November" | | 3 | "Heathrow" | | 4 | "London" | | 5 | "Welsh" |
| | globalScore | 1 | | windowScore | 1 | |
| 55.06% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 79 | | glossingSentenceCount | 3 | | matches | | 0 | "seemed farther away than they had been" | | 1 | "looked like paper" | | 2 | "not quite touching her skin" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1432 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 121 | | matches | | 0 | "learned that much" | | 1 | "understood that it" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 29 | | mean | 49.38 | | std | 30.6 | | cv | 0.62 | | sampleLengths | | 0 | 88 | | 1 | 82 | | 2 | 12 | | 3 | 79 | | 4 | 5 | | 5 | 116 | | 6 | 18 | | 7 | 80 | | 8 | 84 | | 9 | 35 | | 10 | 26 | | 11 | 52 | | 12 | 8 | | 13 | 67 | | 14 | 20 | | 15 | 5 | | 16 | 90 | | 17 | 30 | | 18 | 19 | | 19 | 14 | | 20 | 64 | | 21 | 52 | | 22 | 40 | | 23 | 41 | | 24 | 55 | | 25 | 88 | | 26 | 79 | | 27 | 48 | | 28 | 35 |
| |
| 90.52% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 119 | | matches | | 0 | "been locked" | | 1 | "been banked" | | 2 | "been trampled" | | 3 | "was lit" | | 4 | "was gone" |
| |
| 50.52% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 223 | | matches | | 0 | "were blooming" | | 1 | "was beating" | | 2 | "was only guessing" | | 3 | "was looking" | | 4 | "was telling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 121 | | ratio | 0.074 | | matches | | 0 | "The wildflowers inside the ring were blooming—cowslip and stitchwort and something blue she couldn't name—though it was the middle of November and the rest of the park lay under a thin, frost-bitten dark." | | 1 | "The distant hiss of the A3, the rumble of a plane on approach to Heathrow, the occasional bark of a fox—all of it gone." | | 2 | "There should have been wind—there was always wind in Richmond Park, even on the calmest nights, a low continuous breathing through the oaks." | | 3 | "She had checked it at the hedge—23:12." | | 4 | "She counted her breaths—one, two, three—and then it came again, closer, a soft crush of leaf litter underfoot." | | 5 | "For a single instant the clearing was lit in crimson, and Rory saw everything—the standing stones, the wildflowers, the ring of oaks—and then the light died, and she saw the figure standing at the edge of the treeline." | | 6 | "And as she retreated, the humming began again—soft, patient, almost kind—and she understood that it was not a lure." | | 7 | "The city noise rushed back all at once—the A3, the planes, the foxes—and the cold November air bit at her cheeks, and her phone buzzed in her pocket with a backlog of messages she did not read." | | 8 | "But when she pressed her palm to it, she felt it pulse once—slow, deliberate, like a promise—and she knew, with a sinking certainty, that she would be back." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 367 | | adjectiveStacks | 1 | | stackExamples | | 0 | "thin, frost-bitten dark." |
| | adverbCount | 12 | | adverbRatio | 0.0326975476839237 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0027247956403269754 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 121 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 121 | | mean | 11.83 | | std | 9.47 | | cv | 0.8 | | sampleLengths | | 0 | 37 | | 1 | 5 | | 2 | 46 | | 3 | 6 | | 4 | 20 | | 5 | 33 | | 6 | 11 | | 7 | 3 | | 8 | 9 | | 9 | 12 | | 10 | 2 | | 11 | 13 | | 12 | 15 | | 13 | 24 | | 14 | 8 | | 15 | 3 | | 16 | 14 | | 17 | 5 | | 18 | 14 | | 19 | 6 | | 20 | 30 | | 21 | 30 | | 22 | 2 | | 23 | 2 | | 24 | 9 | | 25 | 6 | | 26 | 17 | | 27 | 18 | | 28 | 9 | | 29 | 18 | | 30 | 4 | | 31 | 23 | | 32 | 26 | | 33 | 5 | | 34 | 10 | | 35 | 2 | | 36 | 4 | | 37 | 7 | | 38 | 11 | | 39 | 8 | | 40 | 8 | | 41 | 29 | | 42 | 5 | | 43 | 10 | | 44 | 8 | | 45 | 12 | | 46 | 5 | | 47 | 5 | | 48 | 10 | | 49 | 6 |
| |
| 32.64% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 21 | | diversityRatio | 0.24793388429752067 | | totalSentences | 121 | | uniqueOpeners | 30 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 8 | | totalSentences | 108 | | matches | | 0 | "Just the pendant and a" | | 1 | "Then it had warmed in" | | 2 | "Twice, this time, quick and" | | 3 | "Then, from somewhere to her" | | 4 | "Just the dark between two" | | 5 | "Instead she reached into her" | | 6 | "Instead she took one step" | | 7 | "Just oaks, ordinary oaks, their" |
| | ratio | 0.074 | |
| 53.33% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 45 | | totalSentences | 108 | | matches | | 0 | "She had learned that much." | | 1 | "She stepped between two of" | | 2 | "It went away all at" | | 3 | "It had texture." | | 4 | "It pressed against her ears" | | 5 | "She closed her hand around" | | 6 | "She had worn it for" | | 7 | "She had almost thrown it" | | 8 | "They were wet with dew" | | 9 | "She took out her phone." | | 10 | "She had checked it at" | | 11 | "She looked at the standing" | | 12 | "They seemed farther away than" | | 13 | "Her heart was beating faster," | | 14 | "She had learned to keep" | | 15 | "she said, aloud" | | 16 | "Her voice did not echo." | | 17 | "It fell flat, as if" | | 18 | "She turned in a slow" | | 19 | "She counted her breaths—one, two," |
| | ratio | 0.417 | |
| 61.85% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 86 | | totalSentences | 108 | | matches | | 0 | "The gates to Richmond Park" | | 1 | "She had learned that much." | | 2 | "The standing stones were there" | | 3 | "The wildflowers inside the ring" | | 4 | "The air smelled of wet" | | 5 | "Honey in November." | | 6 | "Honey in a place where" | | 7 | "She stepped between two of" | | 8 | "It went away all at" | | 9 | "The distant hiss of the" | | 10 | "The silence that replaced it" | | 11 | "It had texture." | | 12 | "It pressed against her ears" | | 13 | "Rory stopped walking and listened." | | 14 | "The pendant pulsed once, a" | | 15 | "She closed her hand around" | | 16 | "The crimson stone was the" | | 17 | "She had worn it for" | | 18 | "She had almost thrown it" | | 19 | "The wildflowers brushed against her" |
| | ratio | 0.796 | |
| 46.30% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 108 | | matches | | | ratio | 0.009 | |
| 89.95% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 54 | | technicalSentenceCount | 4 | | matches | | 0 | "Six of them, rough-barked and grey, arranged in a ring that did not match any map she had ever studied." | | 1 | "The crimson stone was the size of her thumbnail, and in the dark it gave off a faint inner glow, like a coal that had been banked but not extinguished." | | 2 | "The humming was soft too, almost tuneless, as if the singer had forgotten the melody and was only guessing at it." | | 3 | "It was a listening silence, an attentive silence, as if the whole grove had leaned closer to hear what she would say next." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.6 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |