| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 89.55% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 957 | | totalAiIsmAdverbs | 2 | | 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) | |
| 42.53% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 957 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "silence" | | 1 | "pulse" | | 2 | "structure" | | 3 | "footfall" | | 4 | "echoed" | | 5 | "rhythmic" | | 6 | "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 | 93 | | matches | (empty) | |
| 96.77% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 93 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 94 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 7 | | totalWords | 963 | | ratio | 0.007 | | matches | | 0 | "Come Thursday. The grove. Midnight. Come alone." |
| |
| 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 | 12 | | wordCount | 962 | | uniqueNames | 8 | | maxNameDensity | 0.31 | | worstName | "Richmond" | | maxWindowNameDensity | 1 | | worstWindowName | "Richmond" | | discoveredNames | | Park | 1 | | Thursday | 1 | | Wednesday | 1 | | Richmond | 3 | | London | 1 | | Rory | 3 | | October | 1 | | Hel | 1 |
| | persons | | | places | | 0 | "Park" | | 1 | "Richmond" | | 2 | "London" | | 3 | "October" | | 4 | "Hel" |
| | globalScore | 1 | | windowScore | 1 | |
| 8.49% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 3 | | matches | | 0 | "seemed obvious enough — through the bracken, past the two bowed oaks that leaned together like old men sharing a secret, then down the shallow slope to the standing stones" | | 1 | "as if tracking a sun that was not there" | | 2 | "felt like two metres" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 2.077 | | wordCount | 963 | | matches | | 0 | "not unpleasant but was entirely wrong for the season" | | 1 | "not gradually but instantly, as if whatever made it became aware she'd heard" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 94 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 29.18 | | std | 27.68 | | cv | 0.949 | | sampleLengths | | 0 | 8 | | 1 | 85 | | 2 | 38 | | 3 | 35 | | 4 | 85 | | 5 | 5 | | 6 | 6 | | 7 | 84 | | 8 | 2 | | 9 | 6 | | 10 | 59 | | 11 | 62 | | 12 | 7 | | 13 | 4 | | 14 | 1 | | 15 | 33 | | 16 | 34 | | 17 | 22 | | 18 | 49 | | 19 | 3 | | 20 | 44 | | 21 | 6 | | 22 | 45 | | 23 | 5 | | 24 | 6 | | 25 | 67 | | 26 | 14 | | 27 | 59 | | 28 | 4 | | 29 | 8 | | 30 | 2 | | 31 | 64 | | 32 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 93 | | matches | (empty) | |
| 29.06% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 156 | | matches | | 0 | "was meeting" | | 1 | "was coming" | | 2 | "was deciding" | | 3 | "was, seeping" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 94 | | ratio | 0.053 | | matches | | 0 | "Rory had come through the east gate just past midnight, the padlock left conveniently open the way the note had promised — a folded square of paper she'd found wedged beneath her flat door three days ago, unsigned, the handwriting careful and slanted as if someone had written it with their non-dominant hand." | | 1 | "She'd been to the grove twice before, both times in daylight, and the path had seemed obvious enough — through the bracken, past the two bowed oaks that leaned together like old men sharing a secret, then down the shallow slope to the standing stones." | | 2 | "Not ordinary silence — Richmond at midnight still held the distant pulse of the city, the occasional fox bark, the wind in the canopy." | | 3 | "The flowers nearest the north edge of the clearing — she was nearly certain — had been open a moment ago." | | 4 | "Not walking — that wasn't the right word." |
| |
| 99.38% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 958 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 39 | | adverbRatio | 0.0407098121085595 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.011482254697286013 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 94 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 94 | | mean | 10.24 | | std | 10.36 | | cv | 1.011 | | sampleLengths | | 0 | 8 | | 1 | 53 | | 2 | 2 | | 3 | 2 | | 4 | 1 | | 5 | 5 | | 6 | 5 | | 7 | 17 | | 8 | 6 | | 9 | 32 | | 10 | 9 | | 11 | 17 | | 12 | 2 | | 13 | 2 | | 14 | 5 | | 15 | 45 | | 16 | 6 | | 17 | 7 | | 18 | 6 | | 19 | 21 | | 20 | 5 | | 21 | 6 | | 22 | 7 | | 23 | 24 | | 24 | 4 | | 25 | 12 | | 26 | 37 | | 27 | 2 | | 28 | 3 | | 29 | 3 | | 30 | 24 | | 31 | 19 | | 32 | 16 | | 33 | 7 | | 34 | 24 | | 35 | 6 | | 36 | 7 | | 37 | 18 | | 38 | 7 | | 39 | 3 | | 40 | 1 | | 41 | 1 | | 42 | 8 | | 43 | 20 | | 44 | 2 | | 45 | 3 | | 46 | 4 | | 47 | 1 | | 48 | 23 | | 49 | 6 |
| |
| 59.50% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.40860215053763443 | | totalSentences | 93 | | uniqueOpeners | 38 | |
| 44.44% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 75 | | matches | | 0 | "Then she heard footsteps." |
| | ratio | 0.013 | |
| 92.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 75 | | matches | | 0 | "She'd told herself she wouldn't" | | 1 | "She'd told herself that twice" | | 2 | "She pressed her palm to" | | 3 | "She'd been to the grove" | | 4 | "Her phone torch threw a" | | 5 | "She found the bowed oaks." | | 6 | "She passed between two of" | | 7 | "Her voice landed strangely, absorbed" | | 8 | "It just ended." | | 9 | "She checked her phone." | | 10 | "She was deciding between leaving" | | 11 | "It came from her left," | | 12 | "Her torch swept the hawthorn." | | 13 | "She pressed her fingers to" | | 14 | "It was definitely warm." | | 15 | "It stayed warm." | | 16 | "She turned in a slow" | | 17 | "She watched the ones nearest" | | 18 | "They stayed open." | | 19 | "She looked back to the" |
| | ratio | 0.32 | |
| 80.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 57 | | totalSentences | 75 | | matches | | 0 | "Richmond Park held its breath" | | 1 | "Rory had come through the" | | 2 | "Something in between, like the" | | 3 | "She'd told herself she wouldn't" | | 4 | "She'd told herself that twice" | | 5 | "The pendant lay against her" | | 6 | "She pressed her palm to" | | 7 | "That, at least, was something." | | 8 | "She'd been to the grove" | | 9 | "The bracken rose taller, or" | | 10 | "Shadows absorbed the landmarks she'd" | | 11 | "Her phone torch threw a" | | 12 | "She found the bowed oaks." | | 13 | "The relief lasted about four" | | 14 | "The first wrong thing was" | | 15 | "This silence was architectural." | | 16 | "A structure built to keep" | | 17 | "The ambient hum of London" | | 18 | "The standing stones emerged from" | | 19 | "She passed between two of" |
| | ratio | 0.76 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 75 | | matches | | 0 | "Whoever or whatever she was" | | 1 | "Now they were closed, folded" |
| | ratio | 0.027 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 8 | | matches | | 0 | "Rory had come through the east gate just past midnight, the padlock left conveniently open the way the note had promised — a folded square of paper she'd found …" | | 1 | "She'd been to the grove twice before, both times in daylight, and the path had seemed obvious enough — through the bracken, past the two bowed oaks that leaned …" | | 2 | "The standing stones emerged from the dark in a way that felt less like approaching them and more like them deciding to be visible." | | 3 | "The whole clearing breathed a faint sweetness that was not unpleasant but was entirely wrong for the season." | | 4 | "The breathing continued for two, three seconds and then stopped, not gradually but instantly, as if whatever made it became aware she'd heard." | | 5 | "The deep crimson stone held its faint inner glow but brighter than usual, a thin light that shouldn't have been visible through her fingers but was, seeping bet…" | | 6 | "The particular deliberate pace of something that wanted to be heard." | | 7 | "She counted them and did not turn and her jaw locked and her whole body had the rigid stillness of an animal that knows it is too late to run but cannot stop th…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |