| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.73% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1171 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 57.30% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1171 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "loomed" | | 1 | "pulsed" | | 2 | "warmth" | | 3 | "chill" | | 4 | "weight" | | 5 | "silence" | | 6 | "pulse" | | 7 | "resolve" | | 8 | "velvet" |
| |
| 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 | 106 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 106 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1163 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 1110 | | uniqueNames | 9 | | maxNameDensity | 0.9 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Kingston | 1 | | Richmond | 1 | | Park | 1 | | Heartstone | 2 | | Eva | 2 | | London | 1 | | Speaking | 1 | | MagSafe | 1 | | Rory | 10 |
| | persons | | 0 | "Heartstone" | | 1 | "Eva" | | 2 | "Speaking" | | 3 | "Rory" |
| | places | | 0 | "Kingston" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 9.15% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 71 | | glossingSentenceCount | 4 | | matches | | 0 | "snap that seemed to carry further than it should" | | 1 | "loops that seemed to shift as the light moved over them" | | 2 | "felt like throwing a stone into a well" | | 3 | "as if testing her resolve" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1163 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 112 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 40 | | mean | 29.08 | | std | 21.17 | | cv | 0.728 | | sampleLengths | | 0 | 62 | | 1 | 2 | | 2 | 83 | | 3 | 2 | | 4 | 33 | | 5 | 14 | | 6 | 32 | | 7 | 8 | | 8 | 43 | | 9 | 59 | | 10 | 36 | | 11 | 66 | | 12 | 6 | | 13 | 48 | | 14 | 4 | | 15 | 34 | | 16 | 29 | | 17 | 31 | | 18 | 11 | | 19 | 9 | | 20 | 50 | | 21 | 12 | | 22 | 57 | | 23 | 11 | | 24 | 48 | | 25 | 30 | | 26 | 47 | | 27 | 1 | | 28 | 49 | | 29 | 3 | | 30 | 59 | | 31 | 27 | | 32 | 11 | | 33 | 19 | | 34 | 3 | | 35 | 32 | | 36 | 18 | | 37 | 40 | | 38 | 23 | | 39 | 11 |
| |
| 98.64% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 106 | | matches | | 0 | "been switched" | | 1 | "was faded" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 191 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 112 | | ratio | 0.063 | | matches | | 0 | "The park at night was never truly silent—London’s ambient growl rode the air even here—but this section of the grove had swallowed sound." | | 1 | "The torch beam wobbled across the central oak’s trunk and picked out shapes that weren’t bark—carvings, worn smooth by weather, spirals and loops that seemed to shift as the light moved over them." | | 2 | "It came from everywhere at once—a dry, rattling exhalation like dead leaves scraping across pavement." | | 3 | "The make was recent, an iPhone in a clear MagSafe case with a photo slide inside—two women, arms linked, both grinning." | | 4 | "Wildflowers dotted the grass despite the season—cornflowers and poppies, bright as paint drops in the torchlight." | | 5 | "It had shape—roughly human, crouched, head tilted at an angle spines didn’t allow." | | 6 | "A second voice answered from behind her—plummy, theatrical, startlingly close." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1118 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 37 | | adverbRatio | 0.03309481216457961 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.005366726296958855 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 10.38 | | std | 7.41 | | cv | 0.714 | | sampleLengths | | 0 | 23 | | 1 | 29 | | 2 | 10 | | 3 | 2 | | 4 | 12 | | 5 | 11 | | 6 | 3 | | 7 | 22 | | 8 | 27 | | 9 | 8 | | 10 | 2 | | 11 | 7 | | 12 | 10 | | 13 | 16 | | 14 | 14 | | 15 | 2 | | 16 | 13 | | 17 | 17 | | 18 | 8 | | 19 | 23 | | 20 | 2 | | 21 | 3 | | 22 | 15 | | 23 | 13 | | 24 | 17 | | 25 | 15 | | 26 | 7 | | 27 | 7 | | 28 | 12 | | 29 | 6 | | 30 | 18 | | 31 | 9 | | 32 | 5 | | 33 | 19 | | 34 | 33 | | 35 | 6 | | 36 | 5 | | 37 | 16 | | 38 | 9 | | 39 | 18 | | 40 | 4 | | 41 | 4 | | 42 | 4 | | 43 | 15 | | 44 | 11 | | 45 | 6 | | 46 | 23 | | 47 | 7 | | 48 | 10 | | 49 | 14 |
| |
| 60.71% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.4017857142857143 | | totalSentences | 112 | | uniqueOpeners | 45 | |
| 70.92% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 94 | | matches | | 0 | "Just a negation of light." | | 1 | "Then it spoke." |
| | ratio | 0.021 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 94 | | matches | | 0 | "She’d nearly ditched the bike" | | 1 | "She unzipped her jacket and" | | 2 | "She ran her thumb across" | | 3 | "It came from beyond the" | | 4 | "She unclipped the small torch" | | 5 | "Her boots crunched on dead" | | 6 | "It pressed against her eardrums" | | 7 | "She reached out to touch" | | 8 | "She yanked the chain free" | | 9 | "It came from everywhere at" | | 10 | "It lasted three seconds and" | | 11 | "she said, her voice a" | | 12 | "She took another step back" | | 13 | "She didn’t recognize the faces" | | 14 | "It had lain here long" | | 15 | "She set it down with" | | 16 | "Her fingers had gone cold." | | 17 | "Their scent reached her, too" | | 18 | "It circled the clearing, keeping" | | 19 | "She stood her ground and" |
| | ratio | 0.255 | |
| 71.70% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 94 | | matches | | 0 | "Rory pulled her bike off" | | 1 | "The ride from Kingston had" | | 2 | "She’d nearly ditched the bike" | | 3 | "She unzipped her jacket and" | | 4 | "The Heartstone lay against her" | | 5 | "That wasn’t right." | | 6 | "The sensation had grown insistent" | | 7 | "Rory cupped the pendant in" | | 8 | "The crimson stone sat inert," | | 9 | "She ran her thumb across" | | 10 | "Wind slipped through the oaks" | | 11 | "It came from beyond the" | | 12 | "Rory pocketed the pendant and" | | 13 | "The park at night was" | | 14 | "The breeze stirred the leaves" | | 15 | "She unclipped the small torch" | | 16 | "The beam cut a white" | | 17 | "Eva’s map called them the" | | 18 | "Rory approached with the torch" | | 19 | "Her boots crunched on dead" |
| | ratio | 0.777 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 94 | | matches | (empty) | | ratio | 0 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 6 | | matches | | 0 | "The ride from Kingston had chewed up forty minutes, the last stretch through Richmond Park a blind slog past deer that loomed out of the dark like stone monumen…" | | 1 | "For three days it had pulsed whenever she faced southwest, a steady warmth that seeped through her shirt like a living thing." | | 2 | "The pendant had ignited against her chest, a sudden bloom of heat that made her gasp." | | 3 | "She took another step back and her heel met something that rolled." | | 4 | "A shape like an arm unspooled from its side and reached toward her with fingers that were too long, too many, each joint bending in directions that left no silh…" | | 5 | "She pressed the stone hard against her palm and felt it pulse once, a single strong heartbeat, as if testing her resolve." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, her voice a croak" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 0 | | effectiveRatio | 0 | |