| 91.89% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 2 | | adverbTags | | 0 | "He exhaled slowly [slowly]" | | 1 | "he agreed softly [softly]" |
| | dialogueSentences | 37 | | tagDensity | 0.351 | | leniency | 0.703 | | rawRatio | 0.154 | | effectiveRatio | 0.108 | |
| 82.21% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1124 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "lightly" | | 1 | "slowly" | | 2 | "really" | | 3 | "softly" |
| |
| 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) | |
| 77.76% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1124 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "measured" | | 1 | "effortless" | | 2 | "silence" | | 3 | "ensuring" | | 4 | "shattered" |
| |
| 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 | 44 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 44 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 67 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 50 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1145 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 806 | | uniqueNames | 13 | | maxNameDensity | 0.87 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 6 | | Eva | 4 | | Sumerian | 1 | | Moreau | 2 | | London | 1 | | Lucien | 7 | | Avaros | 1 | | Brick | 1 | | Lane | 1 | | Deverell | 1 | | Brendan | 1 | | Carter | 1 | | Ptolemy | 2 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Deverell" | | 5 | "Brendan" | | 6 | "Carter" | | 7 | "Ptolemy" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 29 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 25.33% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.747 | | wordCount | 1145 | | matches | | 0 | "not to leave, she realized, but to move, because he was a man who thought on his feet" | | 1 | "not to hide it but because she couldn't bear for it to exist" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 67 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 30.95 | | std | 28.45 | | cv | 0.919 | | sampleLengths | | 0 | 45 | | 1 | 44 | | 2 | 3 | | 3 | 69 | | 4 | 1 | | 5 | 39 | | 6 | 4 | | 7 | 4 | | 8 | 46 | | 9 | 52 | | 10 | 52 | | 11 | 8 | | 12 | 8 | | 13 | 64 | | 14 | 11 | | 15 | 6 | | 16 | 30 | | 17 | 93 | | 18 | 19 | | 19 | 9 | | 20 | 4 | | 21 | 78 | | 22 | 11 | | 23 | 89 | | 24 | 6 | | 25 | 21 | | 26 | 95 | | 27 | 7 | | 28 | 62 | | 29 | 20 | | 30 | 50 | | 31 | 12 | | 32 | 9 | | 33 | 10 | | 34 | 2 | | 35 | 15 | | 36 | 47 |
| |
| 97.29% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 44 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 132 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 19 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 67 | | ratio | 0.164 | | matches | | 0 | "Nobody else knocked like that — three measured raps, patient, as if the world owed them an answer and they could afford to wait for it." | | 1 | "\"Carter\" was what she meant to say — keep it professional, keep it at arm's length — but the cold had gotten into the corridor through the propped-open door downstairs, and what came out was just his name." | | 2 | "The old rhythm of him — that dry, effortless wit that made her feel like she was the only person in London who got the joke — and underneath it, the thing they never said." | | 3 | "Ptolemy lifted his head from a pile of Eva's research notes, assessed the intruder, and — traitor — immediately wound himself around Lucien's trousers." | | 4 | "His gaze traveled over the flat — the books stacked like sediment layers, the scrolls curling off the table, the three cups of cold tea Rory had been rotating between — and she felt the audit of it, the way he read rooms the way other people read faces." | | 5 | "\"Because you unplugged your phone.\" He said it lightly, but his fingers had tightened on the cane's ivory handle, and she saw it — she always saw it, that was the whole problem." | | 6 | "He rose — not to leave, she realized, but to move, because he was a man who thought on his feet — and stood at Eva's window, looking down at Brick Lane where the curry house sign bled red light onto the wet pavement." | | 7 | "She thought of that night — Deverell's file, her father's name buried in the middle pages, Brendan Carter, barrister, listed among the paid consultants of a thing she still couldn't say out loud — and how she'd burned it not to hide it but because she couldn't bear for it to exist." | | 8 | "A laugh escaped her — sudden, wet at the edges." | | 9 | "\"Don't grow accustomed to it.\" But he was smiling, really smiling, the rare version that reached the amber eye and the black one at the same time, and his hand came up — hesitated, a full second of asking — and tucked a strand of black hair behind her ear." | | 10 | "Ptolemy, offended by the disappearing lap, bit Lucien's ankle through the trouser leg, and the moment shattered into laughter — hers startled and bright, his low and unguarded — and somewhere below them the curry house closed for the night, and neither of them noticed at all." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 790 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 30 | | adverbRatio | 0.0379746835443038 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.012658227848101266 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 67 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 67 | | mean | 17.09 | | std | 14.29 | | cv | 0.836 | | sampleLengths | | 0 | 19 | | 1 | 26 | | 2 | 27 | | 3 | 17 | | 4 | 3 | | 5 | 33 | | 6 | 26 | | 7 | 5 | | 8 | 5 | | 9 | 1 | | 10 | 38 | | 11 | 1 | | 12 | 4 | | 13 | 4 | | 14 | 27 | | 15 | 4 | | 16 | 15 | | 17 | 35 | | 18 | 3 | | 19 | 14 | | 20 | 28 | | 21 | 24 | | 22 | 8 | | 23 | 8 | | 24 | 15 | | 25 | 49 | | 26 | 4 | | 27 | 7 | | 28 | 6 | | 29 | 8 | | 30 | 12 | | 31 | 10 | | 32 | 33 | | 33 | 27 | | 34 | 33 | | 35 | 19 | | 36 | 4 | | 37 | 5 | | 38 | 4 | | 39 | 44 | | 40 | 31 | | 41 | 3 | | 42 | 7 | | 43 | 4 | | 44 | 6 | | 45 | 18 | | 46 | 31 | | 47 | 34 | | 48 | 6 | | 49 | 9 |
| |
| 73.13% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.44776119402985076 | | totalSentences | 67 | | uniqueOpeners | 30 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 39 | | matches | (empty) | | ratio | 0 | |
| 45.64% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 39 | | matches | | 0 | "She'd been sitting cross-legged on" | | 1 | "Her second instinct was to" | | 2 | "She opened it." | | 3 | "He tilted his head toward" | | 4 | "His mouth curved, barely." | | 5 | "She stepped aside." | | 6 | "It was as good as" | | 7 | "He moved past her into" | | 8 | "His gaze traveled over the" | | 9 | "He said it lightly, but" | | 10 | "He exhaled slowly" | | 11 | "He rose — not to" | | 12 | "He stopped, jaw working" | | 13 | "His voice dropped" | | 14 | "She thought of that night" | | 15 | "He crossed the small room" | | 16 | "he agreed softly" |
| | ratio | 0.436 | |
| 11.28% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 35 | | totalSentences | 39 | | matches | | 0 | "The knock came at half" | | 1 | "Nobody else knocked like that" | | 2 | "She'd been sitting cross-legged on" | | 3 | "Her second instinct was to" | | 4 | "She opened it." | | 5 | "Lucien Moreau stood in the" | | 6 | "Charcoal suit, silver tie, platinum" | | 7 | "Both of them on her." | | 8 | "He tilted his head toward" | | 9 | "His mouth curved, barely." | | 10 | "The old rhythm of him" | | 11 | "She stepped aside." | | 12 | "It was as good as" | | 13 | "He moved past her into" | | 14 | "Ptolemy lifted his head from" | | 15 | "Lucien lowered himself onto the" | | 16 | "His gaze traveled over the" | | 17 | "The rain filled the silence" | | 18 | "Rory crossed her arms and" | | 19 | "He said it lightly, but" |
| | ratio | 0.897 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 39 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 19 | | technicalSentenceCount | 4 | | matches | | 0 | "Lucien Moreau stood in the corridor of a building that smelled permanently of cumin and damp, holding an ivory-handled cane and looking like a photograph that h…" | | 1 | "The old rhythm of him — that dry, effortless wit that made her feel like she was the only person in London who got the joke — and underneath it, the thing they …" | | 2 | "He moved past her into the flat with the careful grace of a man who'd learned to make himself small in crowded rooms and never quite unlearned it." | | 3 | "Lucien Moreau, who negotiated with things from the realm of Avaros without blinking, who could lie in four languages, could not hide a white knuckle from her." |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "He said, but his fingers had tightened on the cane's ivory handle, and she saw it — she always saw it, that was the whole problem" |
| |
| 68.92% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 3 | | fancyTags | | 0 | "she meant (mean)" | | 1 | "Lucien observed (observe)" | | 2 | "he agreed softly (agree)" |
| | dialogueSentences | 37 | | tagDensity | 0.162 | | leniency | 0.324 | | rawRatio | 0.5 | | effectiveRatio | 0.162 | |