| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said slowly [slowly]" |
| | dialogueSentences | 33 | | tagDensity | 0.545 | | leniency | 1 | | rawRatio | 0.056 | | effectiveRatio | 0.056 | |
| 86.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1851 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "suddenly" | | 1 | "slowly" | | 2 | "very" | | 3 | "quickly" |
| |
| 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) | |
| 75.69% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1851 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "pulsed" | | 1 | "silence" | | 2 | "structure" | | 3 | "resolved" | | 4 | "gloom" | | 5 | "pulse" | | 6 | "weight" | | 7 | "warmth" | | 8 | "gleaming" |
| |
| 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 | 109 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 109 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 124 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 77 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1876 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 88.99% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 51 | | wordCount | 1557 | | uniqueNames | 14 | | maxNameDensity | 1.22 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Isolde" | | discoveredNames | | Heartstone | 2 | | Isolde | 11 | | Rory | 19 | | Richmond | 2 | | Park | 1 | | September | 1 | | Nyx | 8 | | London | 1 | | Yu-Fei | 1 | | Silas | 1 | | Eva | 1 | | Wardens | 1 | | Tuesday | 1 | | Fae | 1 |
| | persons | | 0 | "Isolde" | | 1 | "Rory" | | 2 | "Nyx" | | 3 | "Silas" | | 4 | "Eva" | | 5 | "Wardens" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" |
| | globalScore | 0.89 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 5 | | matches | | 0 | "as though listening to a conversation conducted two rooms away" | | 1 | "looked like a hill" | | 2 | "something like candlewax" | | 3 | "something like chewing" | | 4 | "not quite exist and the seer who did not quite belong — and the breath of the place came up to meet them, warm and sweet and bottomless, and the dark below took them one step at a time" | | 5 | "not quite belong — and the breath of the place came up to meet them, warm and sweet and bottomless, and the dark below took them one step at a time" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.533 | | wordCount | 1876 | | matches | | 0 | "not pulsing but pulling, faintly, the way a compass needle trembles before i" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 124 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 44.67 | | std | 30.33 | | cv | 0.679 | | sampleLengths | | 0 | 20 | | 1 | 55 | | 2 | 7 | | 3 | 71 | | 4 | 46 | | 5 | 51 | | 6 | 27 | | 7 | 50 | | 8 | 3 | | 9 | 36 | | 10 | 68 | | 11 | 3 | | 12 | 109 | | 13 | 15 | | 14 | 52 | | 15 | 37 | | 16 | 23 | | 17 | 10 | | 18 | 72 | | 19 | 88 | | 20 | 43 | | 21 | 56 | | 22 | 28 | | 23 | 96 | | 24 | 112 | | 25 | 3 | | 26 | 7 | | 27 | 68 | | 28 | 70 | | 29 | 10 | | 30 | 28 | | 31 | 9 | | 32 | 34 | | 33 | 92 | | 34 | 86 | | 35 | 47 | | 36 | 10 | | 37 | 49 | | 38 | 25 | | 39 | 32 | | 40 | 46 | | 41 | 82 |
| |
| 79.51% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 8 | | totalSentences | 109 | | matches | | 0 | "was cultivated" | | 1 | "been worn" | | 2 | "was hollowed" | | 3 | "being caught" | | 4 | "been carved" | | 5 | "was combed" | | 6 | "was heard" | | 7 | "was tilted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 234 | | matches | | 0 | "was already walking" | | 1 | "was looking" | | 2 | "was pointing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 24 | | semicolonCount | 2 | | flaggedSentences | 20 | | totalSentences | 124 | | ratio | 0.161 | | matches | | 0 | "Rory felt it before she saw it — a low thrum in her teeth, and the Heartstone against her sternum going suddenly, traitorously warm." | | 1 | "The seer left no mark in the wet earth — no print, no crushed clover — and by now Rory had stopped flinching at it, though the back of her neck still prickled." | | 2 | "Their eyes were the only solid thing about them — faint violet, faintly glowing, like embers under ash." | | 3 | "She squared her shoulders, checked that the moonsilver blade was loose in her boot sheath — always cold, that blade, cold enough to ache through the leather — and stepped through after Isolde." | | 4 | "Not sunset-amber — a fixed, sourceless honeyed glow that came from everywhere and cast no proper shadows." | | 5 | "Below and beyond, the land fell away in terraces and swooped up again into low hills, and every inch of it was cultivated to within an inch of its life — vineyards stitched in ropes across the slopes, orchards in ordered riot, trellises and arbors and long green corridors of espaliered trees, all of it heavy, all of it loaded past bearing." | | 6 | "The stair was old — old in the way of things that had been worn by feet rather than weather." | | 7 | "It was the sound of ripening — the tick and creak of fruit swelling against its own skin, the wet sigh of grapes splitting on the vine, the plump percussion of things falling and being caught." | | 8 | "Closer, it resolved: a building, or the fossil of one — vast, low, roofless, its black stone the same as the terrace, colonnaded along its flanks with pillars that had been carved to look like bundled wheat, sheaves bound with stone rope." | | 9 | "Not strangled it — taken it, the way a host takes a guest's coat." | | 10 | "Inside the doorway — no door, only a threshold worn dish-deep — the light changed." | | 11 | "Rory's eyes adjusted slowly, and the hall unfolded out of the gloom in pieces: a floor of dark stone slabs with channels cut along them, still wet; tables." | | 12 | "All of it layered in dust fine as powder — centuries of it — and all of it waiting." | | 13 | "A sound went through the hall then — deep, long, felt in the chest and the soles of the feet before it was heard." | | 14 | "Her head was tilted again, and her expression — normally a kind of distant amusement — had emptied out." | | 15 | "Nyx solidified a fraction more; Rory could see it happen, the blur of their edges sharpening into something with weight." | | 16 | "The warmth at Rory's chest was pointing now — not pulsing but pulling, faintly, the way a compass needle trembles before it commits." | | 17 | "Warm air breathed up out of it, sweet and sour at once, and with it came the sound of that great slow mechanism turning over — stone on stone, water, and something like chewing." | | 18 | "\"Rory,\" Nyx said — and it was the first time all day they had used her name, which told her more than she wanted to know." | | 19 | "She rolled the pendant's chain around her fist until the gem sat hot against her knuckles, and she walked toward the ramp with the blade low and the two of them falling in behind her — the shade who did not quite exist and the seer who did not quite belong — and the breath of the place came up to meet them, warm and sweet and bottomless, and the dark below took them one step at a time." |
| |
| 92.66% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1541 | | adjectiveStacks | 1 | | stackExamples | | 0 | "vast, low, roofless, its" |
| | adverbCount | 64 | | adverbRatio | 0.04153147306943543 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.007138221933809215 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 124 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 124 | | mean | 15.13 | | std | 12.52 | | cv | 0.828 | | sampleLengths | | 0 | 20 | | 1 | 24 | | 2 | 10 | | 3 | 9 | | 4 | 12 | | 5 | 3 | | 6 | 4 | | 7 | 9 | | 8 | 33 | | 9 | 21 | | 10 | 8 | | 11 | 11 | | 12 | 35 | | 13 | 13 | | 14 | 20 | | 15 | 18 | | 16 | 4 | | 17 | 15 | | 18 | 8 | | 19 | 17 | | 20 | 33 | | 21 | 3 | | 22 | 4 | | 23 | 32 | | 24 | 3 | | 25 | 17 | | 26 | 12 | | 27 | 19 | | 28 | 1 | | 29 | 1 | | 30 | 15 | | 31 | 3 | | 32 | 21 | | 33 | 62 | | 34 | 9 | | 35 | 9 | | 36 | 8 | | 37 | 1 | | 38 | 1 | | 39 | 13 | | 40 | 22 | | 41 | 8 | | 42 | 22 | | 43 | 18 | | 44 | 9 | | 45 | 8 | | 46 | 2 | | 47 | 4 | | 48 | 19 | | 49 | 10 |
| |
| 76.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.4838709677419355 | | totalSentences | 124 | | uniqueOpeners | 60 | |
| 37.45% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 89 | | matches | | 0 | "Somewhere below, water ran and" |
| | ratio | 0.011 | |
| 98.65% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 89 | | matches | | 0 | "She pressed two fingers to" | | 1 | "She did not seem to" | | 2 | "Their eyes were the only" | | 3 | "Their voice came from everywhere" | | 4 | "She squared her shoulders, checked" | | 5 | "It folded the way a" | | 6 | "It pressed against the eyes" | | 7 | "They stood on a terrace" | | 8 | "It looked less like damnation" | | 9 | "It was not loud in" | | 10 | "It was the sound of" | | 11 | "she said slowly" | | 12 | "She crouched by a fallen" | | 13 | "She had picked up nothing," | | 14 | "Her lavender eyes tracked the" | | 15 | "You wrote down everything and" | | 16 | "They cut left along a" | | 17 | "Their violet eyes caught on" | | 18 | "It was not a question." | | 19 | "Her head was tilted again," |
| | ratio | 0.303 | |
| 72.36% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 69 | | totalSentences | 89 | | matches | | 0 | "The portal opened in the" | | 1 | "Rory felt it before she" | | 2 | "She pressed two fingers to" | | 3 | "The little crimson gem had" | | 4 | "The seer left no mark" | | 5 | "Isolde's silver hair hung loose" | | 6 | "She did not seem to" | | 7 | "Isolde said, without turning" | | 8 | "Nyx unfolded to their full" | | 9 | "Their eyes were the only" | | 10 | "Their voice came from everywhere" | | 11 | "Rory did not ask what" | | 12 | "She squared her shoulders, checked" | | 13 | "The world folded." | | 14 | "It folded the way a" | | 15 | "It pressed against the eyes" | | 16 | "The air that filled her" | | 17 | "They stood on a terrace" | | 18 | "Fruit hung in clusters so" | | 19 | "Grapes the colour of bruises" |
| | ratio | 0.775 | |
| 56.18% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 89 | | matches | | | ratio | 0.011 | |
| 46.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 59 | | technicalSentenceCount | 8 | | matches | | 0 | "Isolde's silver hair hung loose to her waist, beaded with the fine mist that had been falling over Richmond since dawn." | | 1 | "Not sunset-amber — a fixed, sourceless honeyed glow that came from everywhere and cast no proper shadows." | | 2 | "The air that filled her lungs was heavy and sweet, almost chewable, and warm as a kitchen in mid-afternoon." | | 3 | "Isolde stood at the top of the stair with her head tilted, as though listening to a conversation conducted two rooms away." | | 4 | "Closer, it resolved: a building, or the fossil of one — vast, low, roofless, its black stone the same as the terrace, colonnaded along its flanks with pillars t…" | | 5 | "Toward the far end of the hall, where the tables thinned and gave way to a wide descending ramp, black stone, wet channels gleaming along its edges, running dow…" | | 6 | "It came free cold enough to sting her palm, and in the amber half-light of the feast hall it woke to its own faint luminescence, a sliver of captured moon in a …" | | 7 | "She rolled the pendant's chain around her fist until the gem sat hot against her knuckles, and she walked toward the ramp with the blade low and the two of them…" |
| |
| 97.22% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 1 | | matches | | 0 | "Isolde said, without turning" |
| |
| 61.76% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 3 | | fancyTags | | 0 | "Rory breathed (breathe)" | | 1 | "they murmured (murmur)" | | 2 | "they whispered (whisper)" |
| | dialogueSentences | 33 | | tagDensity | 0.515 | | leniency | 1 | | rawRatio | 0.176 | | effectiveRatio | 0.176 | |