| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.6 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 71.62% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1057 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "softly" | | 1 | "slowly" | | 2 | "slightly" | | 3 | "very" |
| |
| 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) | |
| 66.89% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1057 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "weight" | | 1 | "pulsed" | | 2 | "loomed" | | 3 | "could feel" | | 4 | "perfect" | | 5 | "silence" |
| |
| 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 | 83 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 83 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 85 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 68 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1068 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 25 | | wordCount | 1054 | | uniqueNames | 10 | | maxNameDensity | 0.66 | | worstName | "Eva" | | maxWindowNameDensity | 2 | | worstWindowName | "Don" | | discoveredNames | | Eva | 7 | | Richmond | 1 | | Petersham | 1 | | Road | 1 | | South | 1 | | Circular | 1 | | May | 1 | | Rory | 7 | | Aurora | 1 | | Don | 4 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Petersham" | | 2 | "Road" |
| | globalScore | 1 | | windowScore | 1 | |
| 5.77% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 3 | | matches | | 0 | "felt like ten minutes before she saw th" | | 1 | "not quite meeting the world" | | 2 | "sounded like a stranger's" |
| |
| 12.73% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.873 | | wordCount | 1068 | | matches | | 0 | "not painful yet but insistent, a second heartbeat she had not asked for" | | 1 | "not moving, but it had not been there a moment ago" |
| |
| 49.02% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 85 | | matches | | 0 | "collarbones that pulsed" | | 1 | "realized that the" | | 2 | "dry, that it" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 29 | | mean | 36.83 | | std | 31.96 | | cv | 0.868 | | sampleLengths | | 0 | 18 | | 1 | 69 | | 2 | 58 | | 3 | 6 | | 4 | 84 | | 5 | 13 | | 6 | 7 | | 7 | 2 | | 8 | 94 | | 9 | 99 | | 10 | 5 | | 11 | 72 | | 12 | 17 | | 13 | 70 | | 14 | 14 | | 15 | 59 | | 16 | 10 | | 17 | 46 | | 18 | 8 | | 19 | 77 | | 20 | 6 | | 21 | 32 | | 22 | 34 | | 23 | 3 | | 24 | 80 | | 25 | 11 | | 26 | 4 | | 27 | 12 | | 28 | 58 |
| |
| 88.35% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 83 | | matches | | 0 | "was meant" | | 1 | "been left" | | 2 | "been poured" | | 3 | "was meant" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 176 | | matches | | 0 | "was hanging" | | 1 | "were moving" | | 2 | "was listening" | | 3 | "was threading" | | 4 | "was burning" | | 5 | "was taking" | | 6 | "wasn't watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 1 | | flaggedSentences | 8 | | totalSentences | 85 | | ratio | 0.094 | | matches | | 0 | "She had known it would be; Eva had known it, too, which was why the note had specified midnight and a bent panel in the deer fence off Petersham Road." | | 1 | "The sound of the road — the low thrum of South Circular traffic, the occasional sigh of a lorry on the A307 — had cut out." | | 2 | "The grove was meant to be marked by standing stones — old oaks grown into the shape of pillars, Eva had said, as if the trees remembered being something else." | | 3 | "The second stone came a few paces on, and the third, and between the third and the fourth she realized that the wildflowers at her feet were all in bloom at once — foxgloves beside snowdrops beside poppies beside things she could not name — and none of them should have been flowering together, and none of them were moving, though she could feel a small wind on her cheek." | | 4 | "She listened past it, and heard — she was almost sure she heard — the faint, dry click of something drawing breath through teeth." | | 5 | "It was not moving, but it had not been there a moment ago, and the angle of it was wrong in a way she could not articulate — as though it had been cut out of the dark and pasted in slightly off, its edges not quite meeting the world." | | 6 | "That was the only word for it — a long, slow drawing-in, as if the air itself had lungs." | | 7 | "She stood, slowly, the way you stand in front of a dog that has not yet decided, and she walked — did not run, did not run — back between the standing stones, and with every step the grove exhaled behind her, long and slow and almost, almost, like laughter." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1047 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 32 | | adverbRatio | 0.030563514804202482 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.008595988538681949 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 85 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 85 | | mean | 12.56 | | std | 12.75 | | cv | 1.015 | | sampleLengths | | 0 | 18 | | 1 | 5 | | 2 | 10 | | 3 | 3 | | 4 | 35 | | 5 | 16 | | 6 | 4 | | 7 | 30 | | 8 | 24 | | 9 | 6 | | 10 | 26 | | 11 | 2 | | 12 | 1 | | 13 | 7 | | 14 | 10 | | 15 | 4 | | 16 | 13 | | 17 | 21 | | 18 | 10 | | 19 | 3 | | 20 | 7 | | 21 | 2 | | 22 | 14 | | 23 | 30 | | 24 | 50 | | 25 | 12 | | 26 | 11 | | 27 | 6 | | 28 | 70 | | 29 | 5 | | 30 | 7 | | 31 | 2 | | 32 | 1 | | 33 | 14 | | 34 | 23 | | 35 | 8 | | 36 | 17 | | 37 | 9 | | 38 | 8 | | 39 | 32 | | 40 | 19 | | 41 | 3 | | 42 | 4 | | 43 | 5 | | 44 | 5 | | 45 | 2 | | 46 | 14 | | 47 | 19 | | 48 | 4 | | 49 | 15 |
| |
| 51.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.4 | | totalSentences | 85 | | uniqueOpeners | 34 | |
| 48.31% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 69 | | matches | | 0 | "Too close to be anything" |
| | ratio | 0.014 | |
| 86.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 23 | | totalSentences | 69 | | matches | | 0 | "She walked with one hand" | | 1 | "She had known it would" | | 2 | "She stopped, one boot still" | | 3 | "She turned and looked back" | | 4 | "she said, because saying something" | | 5 | "Its bark had the slick," | | 6 | "She gave it a wide" | | 7 | "She stepped between the stones." | | 8 | "She crouched and set down" | | 9 | "She was meant to lay" | | 10 | "It came from behind her" | | 11 | "She did not turn." | | 12 | "She kept her hands moving." | | 13 | "Her breath was loud to" | | 14 | "She listened past it, and" | | 15 | "It was not moving, but" | | 16 | "She looked back at her" | | 17 | "She understood, with a clarity" | | 18 | "she whispered, because that was" | | 19 | "She laid the nail and" |
| | ratio | 0.333 | |
| 54.20% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 56 | | totalSentences | 69 | | matches | | 0 | "Rory had told herself she" | | 1 | "That was the plan, anyway." | | 2 | "The pendant had started warming" | | 3 | "She walked with one hand" | | 4 | "The park was closed." | | 5 | "She had known it would" | | 6 | "Rory squeezed through, snagged her" | | 7 | "She stopped, one boot still" | | 8 | "The sound of the road" | | 9 | "She turned and looked back" | | 10 | "The fence was there." | | 11 | "The streetlamp on the far" | | 12 | "she said, because saying something" | | 13 | "The pendant pulsed, warmer now," | | 14 | "The torch on her phone" | | 15 | "The grove was meant to" | | 16 | "Rory walked for what felt" | | 17 | "The oak loomed out of" | | 18 | "Its bark had the slick," | | 19 | "She gave it a wide" |
| | ratio | 0.812 | |
| 72.46% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 69 | | matches | | 0 | "As if someone had thumbed" |
| | ratio | 0.014 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 8 | | matches | | 0 | "The grove was meant to be marked by standing stones — old oaks grown into the shape of pillars, Eva had said, as if the trees remembered being something else." | | 1 | "Rory walked for what felt like ten minutes before she saw the first of them, and by then her breath was hanging in front of her face in pale plumes, which was w…" | | 2 | "Like standing in a greenhouse that had been left shut through a summer afternoon." | | 3 | "Moonlight lay on the grass in a perfect silver disc, too round, too even, as if it had been poured from a jug." | | 4 | "It was not moving, but it had not been there a moment ago, and the angle of it was wrong in a way she could not articulate — as though it had been cut out of th…" | | 5 | "She understood, with a clarity that made her mouth dry, that it had been stepping closer only while she wasn't watching." | | 6 | "That was the only word for it — a long, slow drawing-in, as if the air itself had lungs." | | 7 | "She stood, slowly, the way you stand in front of a dog that has not yet decided, and she walked — did not run, did not run — back between the standing stones, a…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 5 | | tagDensity | 0.6 | | leniency | 1 | | rawRatio | 0.333 | | effectiveRatio | 0.333 | |