| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 2 | | adverbTags | | 0 | "Okafor sat back [back]" | | 1 | "She sat back [back]" |
| | dialogueSentences | 45 | | tagDensity | 0.511 | | leniency | 1 | | rawRatio | 0.087 | | effectiveRatio | 0.087 | |
| 95.63% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1143 | | totalAiIsmAdverbs | 1 | | 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) | |
| 69.38% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1143 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "footsteps" | | 1 | "echoed" | | 2 | "pristine" | | 3 | "resolved" | | 4 | "stomach" | | 5 | "weight" | | 6 | "flickered" |
| |
| 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 | 91 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 91 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1147 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 24 | | wordCount | 797 | | uniqueNames | 10 | | maxNameDensity | 1.25 | | worstName | "Okafor" | | maxWindowNameDensity | 3 | | worstWindowName | "Okafor" | | discoveredNames | | Tube | 1 | | Young | 1 | | Blitz | 1 | | Camden | 2 | | Quinn | 5 | | Okafor | 10 | | Morris | 1 | | British | 1 | | Museum | 1 | | Kowalski | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Okafor" | | 2 | "Morris" | | 3 | "Kowalski" |
| | places | | | globalScore | 0.873 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 49 | | 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 | 1147 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 112 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 27.31 | | std | 22.17 | | cv | 0.812 | | sampleLengths | | 0 | 50 | | 1 | 23 | | 2 | 2 | | 3 | 26 | | 4 | 7 | | 5 | 65 | | 6 | 14 | | 7 | 10 | | 8 | 20 | | 9 | 40 | | 10 | 19 | | 11 | 3 | | 12 | 31 | | 13 | 48 | | 14 | 10 | | 15 | 23 | | 16 | 74 | | 17 | 5 | | 18 | 29 | | 19 | 17 | | 20 | 63 | | 21 | 22 | | 22 | 12 | | 23 | 62 | | 24 | 9 | | 25 | 6 | | 26 | 57 | | 27 | 3 | | 28 | 6 | | 29 | 64 | | 30 | 7 | | 31 | 58 | | 32 | 6 | | 33 | 47 | | 34 | 10 | | 35 | 69 | | 36 | 10 | | 37 | 2 | | 38 | 39 | | 39 | 6 | | 40 | 38 | | 41 | 35 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 91 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 143 | | matches | (empty) | |
| 15.31% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 112 | | ratio | 0.045 | | matches | | 0 | "The man's shirt, once white, had gone stiff and brown at the neck — but below the sternum, the cotton was pristine." | | 1 | "Two sets of footprints leading in — Okafor's and the explorer's, by the tread — and the body, lying as if it had simply appeared." | | 2 | "\"A man dies of a cut throat. The blood goes somewhere. It doesn't evaporate. So either it was collected—\" she let that hang \"—or he didn't die here at all, and yet there's no way to bring him here without leaving a trace. Both can't be true. But they are.\"" | | 3 | "There was a researcher she knew of — a friend of someone she'd been watching, a woman at the British Museum who dealt in the kind of history that didn't make the textbooks." | | 4 | "She simply raised her torch and looked again — and the body lay exactly as before, staring up at nothing, wearing a symbol that meant something she wasn't ready to name." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 684 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.027777777777777776 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0043859649122807015 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 10.24 | | std | 8.73 | | cv | 0.852 | | sampleLengths | | 0 | 11 | | 1 | 28 | | 2 | 2 | | 3 | 2 | | 4 | 7 | | 5 | 11 | | 6 | 1 | | 7 | 4 | | 8 | 7 | | 9 | 2 | | 10 | 21 | | 11 | 5 | | 12 | 3 | | 13 | 4 | | 14 | 24 | | 15 | 11 | | 16 | 30 | | 17 | 7 | | 18 | 7 | | 19 | 7 | | 20 | 3 | | 21 | 16 | | 22 | 4 | | 23 | 29 | | 24 | 11 | | 25 | 3 | | 26 | 9 | | 27 | 7 | | 28 | 3 | | 29 | 8 | | 30 | 23 | | 31 | 3 | | 32 | 22 | | 33 | 11 | | 34 | 12 | | 35 | 6 | | 36 | 4 | | 37 | 9 | | 38 | 14 | | 39 | 10 | | 40 | 12 | | 41 | 25 | | 42 | 2 | | 43 | 2 | | 44 | 5 | | 45 | 18 | | 46 | 5 | | 47 | 8 | | 48 | 21 | | 49 | 2 |
| |
| 84.52% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.5446428571428571 | | totalSentences | 112 | | uniqueOpeners | 61 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 71 | | matches | (empty) | | ratio | 0 | |
| 84.79% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 71 | | matches | | 0 | "She couldn't decide which bothered" | | 1 | "He hesitated, eyes flicking toward" | | 2 | "She always did." | | 3 | "He glanced up as her" | | 4 | "She saw it." | | 5 | "she said, testing it" | | 6 | "She swept her torch across" | | 7 | "She shook her head" | | 8 | "He'd worked with her long" | | 9 | "She'd seen the same on" | | 10 | "She moved to the head," | | 11 | "She breathed on her glove" | | 12 | "He passed it over without" | | 13 | "She'd seen its like once" | | 14 | "Her stomach tightened." | | 15 | "She sat back, letting the" | | 16 | "She rose, knees protesting" | | 17 | "she let that hang \"—or" | | 18 | "She thought of the dust" | | 19 | "She crouched one last time," |
| | ratio | 0.338 | |
| 44.51% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 71 | | matches | | 0 | "The call had come at" | | 1 | "Quinn took the stairs down" | | 2 | "She couldn't decide which bothered" | | 3 | "A uniformed constable straightened as" | | 4 | "He hesitated, eyes flicking toward" | | 5 | "She always did." | | 6 | "That was the job." | | 7 | "The platform stretched out before" | | 8 | "Camden, the map said, though" | | 9 | "Someone had strung work lamps" | | 10 | "Okafor crouched beside him, gloved" | | 11 | "He glanced up as her" | | 12 | "Quinn knelt opposite, the cold" | | 13 | "Okafor gestured at the body" | | 14 | "She saw it." | | 15 | "A clean wound, edges parted" | | 16 | "Okafor nodded as if she'd" | | 17 | "Quinn leaned closer." | | 18 | "The man's shirt, once white," | | 19 | "A wound like that should" |
| | ratio | 0.831 | |
| 70.42% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 71 | | matches | | | ratio | 0.014 | |
| 60.44% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 3 | | matches | | 0 | "Two sets of footprints leading in — Okafor's and the explorer's, by the tread — and the body, lying as if it had simply appeared." | | 1 | "There was a researcher she knew of — a friend of someone she'd been watching, a woman at the British Museum who dealt in the kind of history that didn't make th…" | | 2 | "She simply raised her torch and looked again — and the body lay exactly as before, staring up at nothing, wearing a symbol that meant something she wasn't ready…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 1 | | matches | | 0 | "He hesitated, eyes flicking toward the dark mouth of the tunnel" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | 0 | "She rose knees protesting (protest)" |
| | dialogueSentences | 45 | | tagDensity | 0.156 | | leniency | 0.311 | | rawRatio | 0.143 | | effectiveRatio | 0.044 | |