| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 17 | | tagDensity | 0.588 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 87.09% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1162 | | totalAiIsmAdverbs | 3 | | 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) | |
| 87.09% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1162 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "weight" | | 1 | "echo" | | 2 | "absolutely" |
| |
| 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 | 90 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 90 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 65 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 13 | | totalWords | 1169 | | ratio | 0.011 | | matches | | 0 | "No light. Light makes you interesting." | | 1 | "that" | | 2 | "couldn't" | | 3 | "it's Carter, I'm coming in." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 24 | | wordCount | 1090 | | uniqueNames | 15 | | maxNameDensity | 0.73 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Sheen | 1 | | Cross | 1 | | Rory | 8 | | Richmond | 2 | | Park | 2 | | Putney | 1 | | Silas | 1 | | Heartstone | 1 | | April | 1 | | November | 1 | | Llandaff | 1 | | Heathrow | 1 | | London | 1 | | Evan | 1 | | Fifteen | 1 |
| | persons | | 0 | "Cross" | | 1 | "Rory" | | 2 | "Silas" | | 3 | "Heartstone" | | 4 | "Evan" |
| | places | | 0 | "Sheen" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "November" | | 4 | "Llandaff" | | 5 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1169 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 97 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 46 | | mean | 25.41 | | std | 21.61 | | cv | 0.85 | | sampleLengths | | 0 | 26 | | 1 | 13 | | 2 | 65 | | 3 | 78 | | 4 | 54 | | 5 | 7 | | 6 | 14 | | 7 | 8 | | 8 | 59 | | 9 | 19 | | 10 | 4 | | 11 | 57 | | 12 | 7 | | 13 | 12 | | 14 | 39 | | 15 | 25 | | 16 | 4 | | 17 | 61 | | 18 | 19 | | 19 | 8 | | 20 | 22 | | 21 | 52 | | 22 | 28 | | 23 | 8 | | 24 | 3 | | 25 | 26 | | 26 | 34 | | 27 | 18 | | 28 | 10 | | 29 | 6 | | 30 | 57 | | 31 | 6 | | 32 | 4 | | 33 | 33 | | 34 | 13 | | 35 | 8 | | 36 | 59 | | 37 | 6 | | 38 | 62 | | 39 | 7 | | 40 | 3 | | 41 | 13 | | 42 | 14 | | 43 | 60 | | 44 | 27 | | 45 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 90 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 185 | | matches | | 0 | "was standing" | | 1 | "was getting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 97 | | ratio | 0.052 | | matches | | 0 | "The city glow sat on the horizon like a rind of dirty orange, and everything under it — the bracken, the flattened grass, the black humps of the oaks — held only shades of grey." | | 1 | "Not dramatically — three degrees, four, the difference between a hallway and a kitchen where somebody's been cooking." | | 2 | "She sat down on the flat stone at the centre — worn concave, like a step in an old church — and let herself breathe." | | 3 | "Slowly, hands loose, the way she'd learned to stand up in a room with Evan in it — no sudden movement, nothing that reads as fleeing, because fleeing invites the chase." | | 4 | "A breath through a smile, off to her right, at head height, and head height was the wrong height — the flowers came to her knees and the branches started twelve feet up, there was nothing at head height between her and the trees but air." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1088 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.029411764705882353 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.008272058823529412 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 12.05 | | std | 13 | | cv | 1.078 | | sampleLengths | | 0 | 26 | | 1 | 8 | | 2 | 5 | | 3 | 10 | | 4 | 35 | | 5 | 7 | | 6 | 7 | | 7 | 2 | | 8 | 4 | | 9 | 7 | | 10 | 6 | | 11 | 65 | | 12 | 15 | | 13 | 26 | | 14 | 13 | | 15 | 7 | | 16 | 9 | | 17 | 5 | | 18 | 2 | | 19 | 3 | | 20 | 3 | | 21 | 7 | | 22 | 18 | | 23 | 4 | | 24 | 30 | | 25 | 19 | | 26 | 4 | | 27 | 4 | | 28 | 34 | | 29 | 7 | | 30 | 12 | | 31 | 3 | | 32 | 4 | | 33 | 7 | | 34 | 1 | | 35 | 4 | | 36 | 5 | | 37 | 6 | | 38 | 28 | | 39 | 25 | | 40 | 4 | | 41 | 12 | | 42 | 7 | | 43 | 28 | | 44 | 14 | | 45 | 10 | | 46 | 9 | | 47 | 8 | | 48 | 4 | | 49 | 1 |
| |
| 78.69% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.5154639175257731 | | totalSentences | 97 | | uniqueOpeners | 50 | |
| 43.86% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 76 | | matches | | 0 | "Slowly, hands loose, the way" |
| | ratio | 0.013 | |
| 93.68% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 76 | | matches | | 0 | "she muttered, wiping it down" | | 1 | "She walked with her phone" | | 2 | "It had been cool since" | | 3 | "She found the standing stones" | | 4 | "Her voice came out smaller" | | 5 | "She stepped through." | | 6 | "She pressed two fingers to" | | 7 | "She should have felt relieved" | | 8 | "She sat down on the" | | 9 | "It took her a good" | | 10 | "It was deer coughing and" | | 11 | "She sat with her hands" | | 12 | "she said, out loud, because" | | 13 | "She turned her head." | | 14 | "Her voice went out and" | | 15 | "She stood up." | | 16 | "she told the clearing, conversational" | | 17 | "She counted them as steps." | | 18 | "It was so small she" | | 19 | "It was tall and it" |
| | ratio | 0.316 | |
| 58.68% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 76 | | matches | | 0 | "The gate at Sheen Cross" | | 1 | "she muttered, wiping it down" | | 2 | "Richmond Park at night wasn't" | | 3 | "The city glow sat on" | | 4 | "She walked with her phone" | | 5 | "Yu-Fei had been very clear" | | 6 | "Light makes you interesting.*" | | 7 | "The pendant lay against her" | | 8 | "It had been cool since" | | 9 | "That was the whole point" | | 10 | "She found the standing stones" | | 11 | "The bark had shapes cut" | | 12 | "Rory stopped in front of" | | 13 | "Her voice came out smaller" | | 14 | "That was normal." | | 15 | "She stepped through." | | 16 | "The temperature changed on the" | | 17 | "The air went sweet." | | 18 | "Meadowsweet, cow parsley, and under" | | 19 | "The wildflowers stood knee-high all" |
| | ratio | 0.803 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 76 | | matches | (empty) | | ratio | 0 | |
| 44.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 4 | | matches | | 0 | "That was the whole point of the walk: Silas said the Heartstone went warm within a hundred yards of anything that opened, and Rory wanted to know whether the gr…" | | 1 | "Slowly, hands loose, the way she'd learned to stand up in a room with Evan in it — no sudden movement, nothing that reads as fleeing, because fleeing invites th…" | | 2 | "All at once, every one, a sound like a hundred small mouths shutting, and the clearing went dark in a way that made no sense because the flowers hadn't been the…" | | 3 | "Her whole body wanted to and she locked it, every joint, and she stood there with her hand over the pendant that was getting hotter against her palm, and she wa…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 2 | | matches | | 0 | "she told, conversational" | | 1 | "it said, and its voice was lovely, and it came from behind her" |
| |
| 94.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 17 | | tagDensity | 0.529 | | leniency | 1 | | rawRatio | 0.111 | | effectiveRatio | 0.111 | |