| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 59.60% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 990 | | totalAiIsmAdverbs | 8 | | found | | | highlights | | 0 | "slightly" | | 1 | "completely" | | 2 | "slowly" | | 3 | "precisely" | | 4 | "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) | |
| 14.14% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 990 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "familiar" | | 1 | "resolved" | | 2 | "throb" | | 3 | "could feel" | | 4 | "weight" | | 5 | "silence" | | 6 | "chill" | | 7 | "footsteps" | | 8 | "warmth" | | 9 | "pulse" | | 10 | "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 | 0 | | narrationSentences | 75 | | matches | (empty) | |
| 66.67% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 75 | | filterMatches | | | hedgeMatches | | 0 | "started to" | | 1 | "tended to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 75 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 61 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1000 | | ratio | 0 | | matches | (empty) | |
| 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 | 9 | | wordCount | 1000 | | uniqueNames | 5 | | maxNameDensity | 0.4 | | worstName | "Grove" | | maxWindowNameDensity | 1 | | worstWindowName | "Grove" | | discoveredNames | | Fae | 1 | | Grove | 4 | | Isolde | 2 | | Richmond | 1 | | Park | 1 |
| | persons | | | places | | 0 | "Fae" | | 1 | "Grove" | | 2 | "Richmond" | | 3 | "Park" |
| | globalScore | 1 | | windowScore | 1 | |
| 90.48% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 42 | | glossingSentenceCount | 1 | | matches | | 0 | "as though tracking something moving through the air" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 3 | | wordCount | 1000 | | matches | | 0 | "not the gentle throb she'd come to recognise near a portal, but something faster, more urgent, the way a second heartbeat wo" | | 1 | "neither louder nor" | | 2 | "neither approaching nor" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 75 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 33.33 | | std | 30.74 | | cv | 0.922 | | sampleLengths | | 0 | 7 | | 1 | 69 | | 2 | 13 | | 3 | 59 | | 4 | 112 | | 5 | 31 | | 6 | 4 | | 7 | 60 | | 8 | 4 | | 9 | 50 | | 10 | 1 | | 11 | 52 | | 12 | 80 | | 13 | 3 | | 14 | 17 | | 15 | 50 | | 16 | 28 | | 17 | 3 | | 18 | 73 | | 19 | 5 | | 20 | 4 | | 21 | 85 | | 22 | 8 | | 23 | 3 | | 24 | 72 | | 25 | 5 | | 26 | 37 | | 27 | 10 | | 28 | 31 | | 29 | 24 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 75 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 150 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 75 | | ratio | 0.133 | | matches | | 0 | "She told herself it was different at night only because she was alone — that the ancient oaks forming the boundary of the clearing simply cast longer shadows, that the stones themselves hadn't changed, that the unease crawling up the back of her neck was tiredness and nothing more." | | 1 | "It had been pulsing all day — not the gentle throb she'd come to recognise near a portal, but something faster, more urgent, the way a second heartbeat would feel pressed against your palm." | | 2 | "The trees at the boundary moved — just the upper branches, just a little, the way they did when a breeze came through." | | 3 | "Not loud — a single soft crack, like weight settling onto dry wood, and then silence." | | 4 | "Not all of them — just a cluster, three or four, their white heads tilting slowly in the direction of the standing stones as though tracking something moving through the air." | | 5 | "She'd taken four steps when she heard it — a sound from directly behind her." | | 6 | "She was not frightened — she made the decision about that clearly, named it in her own mind the way her father used to name disputed facts in court, laid it flat on the table." | | 7 | "Or not footsteps exactly — the impression of footsteps, weight on grass at a regular interval, coming from the far side of the clearing." | | 8 | "Whatever it was — sound, presence, trick of acoustics in the pocket-space between realms — it maintained exactly the distance it had started with, and it moved precisely as she moved, and she stood very still in the middle of the clearing and became aware, with a cold and total certainty, that it had been doing this since before she'd noticed it." | | 9 | "The silence that followed had a quality to it she didn't like — the quality of held breath, of something that had stopped moving not because it had gone but because it had arrived." |
| |
| 93.42% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 990 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 44 | | adverbRatio | 0.044444444444444446 | | lyAdverbCount | 23 | | lyAdverbRatio | 0.023232323232323233 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 75 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 75 | | mean | 13.33 | | std | 12.9 | | cv | 0.968 | | sampleLengths | | 0 | 7 | | 1 | 20 | | 2 | 49 | | 3 | 13 | | 4 | 4 | | 5 | 6 | | 6 | 30 | | 7 | 5 | | 8 | 6 | | 9 | 8 | | 10 | 4 | | 11 | 3 | | 12 | 36 | | 13 | 34 | | 14 | 16 | | 15 | 19 | | 16 | 13 | | 17 | 18 | | 18 | 4 | | 19 | 2 | | 20 | 23 | | 21 | 8 | | 22 | 5 | | 23 | 18 | | 24 | 4 | | 25 | 4 | | 26 | 10 | | 27 | 16 | | 28 | 24 | | 29 | 1 | | 30 | 8 | | 31 | 31 | | 32 | 7 | | 33 | 3 | | 34 | 3 | | 35 | 29 | | 36 | 15 | | 37 | 5 | | 38 | 2 | | 39 | 29 | | 40 | 3 | | 41 | 4 | | 42 | 4 | | 43 | 9 | | 44 | 4 | | 45 | 35 | | 46 | 4 | | 47 | 3 | | 48 | 4 | | 49 | 5 |
| |
| 28.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.29333333333333333 | | totalSentences | 75 | | uniqueOpeners | 22 | |
| 98.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 68 | | matches | | 0 | "Then they stopped." | | 1 | "Then the whole cluster, one" |
| | ratio | 0.029 | |
| 49.41% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 68 | | matches | | 0 | "She told herself it was" | | 1 | "She pushed through the last" | | 2 | "They simply glowed, faintly, from" | | 3 | "She checked her phone." | | 4 | "She'd left the flat at" | | 5 | "It had been pulsing all" | | 6 | "She'd come to the Grove" | | 7 | "She'd come because standing in" | | 8 | "She stood in the centre" | | 9 | "It had stopped pulsing." | | 10 | "She could feel that plainly." | | 11 | "She lowered the pendant." | | 12 | "She turned toward it and" | | 13 | "She watched them for a" | | 14 | "They kept bending." | | 15 | "She let out a slow" | | 16 | "She'd taken four steps when" | | 17 | "She turned around." | | 18 | "She was not frightened." | | 19 | "She was not frightened —" |
| | ratio | 0.426 | |
| 92.35% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 50 | | totalSentences | 68 | | matches | | 0 | "The standing stones looked smaller" | | 1 | "Rory had visited the Fae" | | 2 | "She told herself it was" | | 3 | "She pushed through the last" | | 4 | "The wildflowers were open." | | 5 | "That was the first wrong" | | 6 | "They simply glowed, faintly, from" | | 7 | "She checked her phone." | | 8 | "She'd left the flat at" | | 9 | "It had been pulsing all" | | 10 | "She'd come to the Grove" | | 11 | "She'd come because standing in" | | 12 | "She stood in the centre" | | 13 | "The deep crimson of the" | | 14 | "It had stopped pulsing." | | 15 | "The trees at the boundary" | | 16 | "She could feel that plainly." | | 17 | "The branches moved anyway." | | 18 | "She lowered the pendant." | | 19 | "Something in the trees to" |
| | ratio | 0.735 | |
| 73.53% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 68 | | matches | | 0 | "Because it was where it" |
| | ratio | 0.015 | |
| 50.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 4 | | matches | | 0 | "Not all of them — just a cluster, three or four, their white heads tilting slowly in the direction of the standing stones as though tracking something moving th…" | | 1 | "The sound kept coming, steady, unhurried, growing neither louder nor quieter, as though whatever made it was neither approaching nor retreating but simply movin…" | | 2 | "The silence that followed had a quality to it she didn't like — the quality of held breath, of something that had stopped moving not because it had gone but bec…" | | 3 | "Then the whole cluster, one after the next, petals drawing inward in the dark, as though something nearby had swallowed the source of whatever light they'd been…" |
| |
| 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 | |