| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said softly [softly]" |
| | dialogueSentences | 7 | | tagDensity | 0.714 | | leniency | 1 | | rawRatio | 0.2 | | effectiveRatio | 0.2 | |
| 69.59% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1151 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "softly" | | 1 | "very" | | 2 | "quickly" | | 3 | "suddenly" | | 4 | "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) | |
| 47.87% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1151 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "warmth" | | 1 | "pulse" | | 2 | "echo" | | 3 | "silence" | | 4 | "resolved" | | 5 | "lurched" | | 6 | "stomach" | | 7 | "weight" | | 8 | "footsteps" |
| |
| 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 | 75 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 75 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 78 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1139 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 15 | | wordCount | 1103 | | uniqueNames | 10 | | maxNameDensity | 0.36 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Hel" | | discoveredNames | | Rory | 4 | | Richmond | 1 | | Park | 1 | | October | 1 | | Heartstone | 2 | | June | 1 | | London | 1 | | Fifteen | 1 | | Hel | 2 | | Dymas | 1 |
| | persons | | 0 | "Rory" | | 1 | "October" | | 2 | "Dymas" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Hel" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 51 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.878 | | wordCount | 1139 | | matches | | 0 | "not the green sweetness she'd have expected from a meadow but something underneath it, faint" |
| |
| 81.20% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 78 | | matches | | 0 | "joking, that some" | | 1 | "wanted, that it" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 35.59 | | std | 26.84 | | cv | 0.754 | | sampleLengths | | 0 | 24 | | 1 | 86 | | 2 | 34 | | 3 | 24 | | 4 | 91 | | 5 | 34 | | 6 | 6 | | 7 | 47 | | 8 | 64 | | 9 | 6 | | 10 | 81 | | 11 | 7 | | 12 | 63 | | 13 | 11 | | 14 | 3 | | 15 | 91 | | 16 | 34 | | 17 | 43 | | 18 | 41 | | 19 | 25 | | 20 | 16 | | 21 | 77 | | 22 | 33 | | 23 | 11 | | 24 | 43 | | 25 | 10 | | 26 | 10 | | 27 | 37 | | 28 | 41 | | 29 | 5 | | 30 | 35 | | 31 | 6 |
| |
| 86.55% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 75 | | matches | | 0 | "been warned" | | 1 | "been interrupted" | | 2 | "was gone" | | 3 | "was annoyed" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 189 | | matches | | 0 | "were giving" | | 1 | "wasn't joking" | | 2 | "was beginning" | | 3 | "was singing" | | 4 | "was listening" | | 5 | "was waiting" | | 6 | "was opening" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 78 | | ratio | 0.128 | | matches | | 0 | "No signature, just an address that wasn't an address—a string of words that her phone refused to map until she'd already walked half of Richmond Park and stumbled onto the line of ancient oaks half-swallowed by ivy." | | 1 | "Wildflowers crowded the clearing—foxgloves and bluebells and things she had no names for, all of them blooming as though it were the height of June, all of them faintly luminous, as if they'd drunk down a day's worth of sun and were giving it back in the dark." | | 2 | "A grove this thick with summer flowers should have been thrumming with life—moths, at the very least, fumbling at the glowing blooms." | | 3 | "It came from the far side of the clearing, past the densest stand of foxgloves, low and wordless and sweet—a woman's voice, or close to one, threading a melody that almost resolved into something she knew, a lullaby, maybe, the sort her mother used to hum over the washing-up." | | 4 | "The foxgloves swayed, though there was no wind, and for an instant—just an instant—she thought she saw something pale move low among the stems, the curve of a shoulder, the line of a back, there and then not, the way an after-image swims when you've looked too long at a light." | | 5 | "A breeze finally came, and it carried a smell—not the green sweetness she'd have expected from a meadow but something underneath it, faint and meaty and turned, the smell of a fridge after a power cut." | | 6 | "Not drifted, the way stars should over an hour—shifted, lurched, as if the whole sky had been a painted ceiling and someone had nudged the canvas." | | 7 | "She could hear it breathing now—slow, wet, patient, the breath of something that had all the time it could ever need and knew it." | | 8 | "It flared with heat, a sudden ember pressed to her breastbone, pulsing—once, twice, hard and fast as a frightened heart." | | 9 | "Rory closed her hand around the burning stone, fixed her eyes on the standing stones at the threshold she'd come through—still there, still real, fifteen minutes and a whole world away—and very slowly, without turning around, she got to her feet." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 275 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 4 | | adverbRatio | 0.014545454545454545 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.007272727272727273 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 78 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 78 | | mean | 14.6 | | std | 13.96 | | cv | 0.956 | | sampleLengths | | 0 | 24 | | 1 | 5 | | 2 | 16 | | 3 | 37 | | 4 | 28 | | 5 | 10 | | 6 | 12 | | 7 | 4 | | 8 | 8 | | 9 | 9 | | 10 | 4 | | 11 | 11 | | 12 | 13 | | 13 | 48 | | 14 | 10 | | 15 | 20 | | 16 | 2 | | 17 | 4 | | 18 | 21 | | 19 | 5 | | 20 | 2 | | 21 | 4 | | 22 | 2 | | 23 | 10 | | 24 | 24 | | 25 | 6 | | 26 | 7 | | 27 | 32 | | 28 | 4 | | 29 | 1 | | 30 | 27 | | 31 | 6 | | 32 | 22 | | 33 | 4 | | 34 | 15 | | 35 | 22 | | 36 | 3 | | 37 | 15 | | 38 | 7 | | 39 | 4 | | 40 | 49 | | 41 | 10 | | 42 | 6 | | 43 | 5 | | 44 | 3 | | 45 | 27 | | 46 | 13 | | 47 | 51 | | 48 | 5 | | 49 | 5 |
| |
| 69.66% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.44871794871794873 | | totalSentences | 78 | | uniqueOpeners | 35 | |
| 48.31% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 69 | | matches | | | ratio | 0.014 | |
| 75.07% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 69 | | matches | | 0 | "She stopped at the threshold." | | 1 | "She pressed two fingers to" | | 2 | "Her voice went out and" | | 3 | "She checked her phone." | | 4 | "She locked it, unlocked it." | | 5 | "she said softly" | | 6 | "She'd been warned about this" | | 7 | "She hadn't asked what he" | | 8 | "She was beginning to wish" | | 9 | "She tucked her knees up" | | 10 | "It took her a while" | | 11 | "She turned her head." | | 12 | "It came from the far" | | 13 | "She felt herself lean toward" | | 14 | "She kept her eyes on" | | 15 | "Her mouth had gone dry." | | 16 | "She made herself sit still." | | 17 | "It rolled over her and" | | 18 | "She looked down quickly." | | 19 | "she said, and was annoyed" |
| | ratio | 0.362 | |
| 97.68% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 50 | | totalSentences | 69 | | matches | | 0 | "The standing stones came up" | | 1 | "She stopped at the threshold." | | 2 | "The text had said to" | | 3 | "The Heartstone lay against her" | | 4 | "She pressed two fingers to" | | 5 | "Whatever it sensed, it didn't" | | 6 | "Her voice went out and" | | 7 | "Wildflowers crowded the clearing—foxgloves and" | | 8 | "The grass was the deep" | | 9 | "She checked her phone." | | 10 | "The screen showed no signal," | | 11 | "She locked it, unlocked it." | | 12 | "she said softly" | | 13 | "She'd been warned about this" | | 14 | "Silas had said, once, with" | | 15 | "She hadn't asked what he" | | 16 | "She was beginning to wish" | | 17 | "Rory picked a spot near" | | 18 | "That was the instruction." | | 19 | "She tucked her knees up" |
| | ratio | 0.725 | |
| 72.46% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 69 | | matches | | 0 | "Now she stood between two" |
| | ratio | 0.014 | |
| 27.03% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 6 | | matches | | 0 | "No signature, just an address that wasn't an address—a string of words that her phone refused to map until she'd already walked half of Richmond Park and stumbl…" | | 1 | "Wildflowers crowded the clearing—foxgloves and bluebells and things she had no names for, all of them blooming as though it were the height of June, all of them…" | | 2 | "The silence that rushed back in was worse than before, because now it was a silence that had been interrupted, a silence that knew she was listening." | | 3 | "Every animal nerve in her body screamed to turn around and she did not, because she understood, with a clarity that arrived from somewhere deeper than thought, …" | | 4 | "She could hear it breathing now—slow, wet, patient, the breath of something that had all the time it could ever need and knew it." | | 5 | "And the voice that had been singing said, in a tone of mild, almost loving disappointment, so close now that she felt the breath of it stir the hair at the back…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 7 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0 | | effectiveRatio | 0 | |