| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 2 | | adverbTags | | 0 | "They broke apart [apart]" | | 1 | "He drew back [back]" |
| | dialogueSentences | 52 | | tagDensity | 0.481 | | leniency | 0.962 | | rawRatio | 0.08 | | effectiveRatio | 0.077 | |
| 83.50% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1818 | | totalAiIsmAdverbs | 6 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | adverb | "deliberately" | | count | 1 |
|
| | highlights | | 0 | "carefully" | | 1 | "very" | | 2 | "softly" | | 3 | "completely" | | 4 | "deliberately" |
| |
| 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) | |
| 86.25% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1818 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "flicker" | | 1 | "weight" | | 2 | "unreadable" | | 3 | "traced" |
| |
| 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 | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 69 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 75 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 31 | | totalWords | 1832 | | ratio | 0.017 | | matches | | 0 | "Don't. Don't touch me like you get to keep it." | | 1 | "You carry a sword-stick, Lucien, like a villain in a novel." | | 2 | "Don't touch me like you get to keep it" | | 3 | "don't" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 32 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 1172 | | uniqueNames | 17 | | maxNameDensity | 0.68 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 8 | | Moreau | 2 | | Ptolemy | 5 | | Eva | 4 | | November | 1 | | Don | 1 | | Golden | 1 | | Empress | 1 | | London | 3 | | Lucien | 7 | | St | 1 | | Martin-in-the-Fields | 1 | | Brick | 1 | | Lane | 1 | | Whitechapel | 1 | | Bengali | 1 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Eva" | | 4 | "Lucien" | | 5 | "Evan" |
| | places | | 0 | "London" | | 1 | "St" | | 2 | "Martin-in-the-Fields" | | 3 | "Brick" | | 4 | "Lane" | | 5 | "Whitechapel" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 42 | | glossingSentenceCount | 3 | | matches | | 0 | "smelled like, sandalwood and something bit" | | 1 | "her and then, visibly, stopped himself, a" | | 2 | "looked like damage" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1832 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 97 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 35.92 | | std | 32.28 | | cv | 0.899 | | sampleLengths | | 0 | 20 | | 1 | 39 | | 2 | 78 | | 3 | 4 | | 4 | 31 | | 5 | 10 | | 6 | 51 | | 7 | 2 | | 8 | 7 | | 9 | 130 | | 10 | 10 | | 11 | 3 | | 12 | 21 | | 13 | 61 | | 14 | 58 | | 15 | 95 | | 16 | 23 | | 17 | 13 | | 18 | 53 | | 19 | 44 | | 20 | 7 | | 21 | 77 | | 22 | 1 | | 23 | 42 | | 24 | 9 | | 25 | 85 | | 26 | 14 | | 27 | 5 | | 28 | 68 | | 29 | 5 | | 30 | 10 | | 31 | 83 | | 32 | 24 | | 33 | 4 | | 34 | 2 | | 35 | 26 | | 36 | 131 | | 37 | 13 | | 38 | 46 | | 39 | 40 | | 40 | 20 | | 41 | 64 | | 42 | 6 | | 43 | 49 | | 44 | 51 | | 45 | 6 | | 46 | 57 | | 47 | 7 | | 48 | 48 | | 49 | 58 |
| |
| 95.09% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 69 | | matches | | 0 | "was slicked" | | 1 | "been asked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 193 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 97 | | ratio | 0.093 | | matches | | 0 | "She was mid-sentence — \"If you're the landlord, the rent's paid through March, and if you're the police, I want a solicitor and a coffee\" — and then the door swung wide and the words died in her mouth." | | 1 | "He looked at her the way men look at old injuries — carefully, and with a kind of grim respect for the fact that they still hurt." | | 2 | "\"No.\" He glanced past her at the siege of Eva's flat — books stacked into cairns on every surface, scrolls held open with butter knives, sticky notes flowering across the walls in yellow constellations." | | 3 | "She thought of the last time she had seen him — the November rain in the alley behind Silas' bar, his hand closed around her wrist where the little crescent scar sat, and her saying, *Don't." | | 4 | "She knew the blade that lived inside it — he had shown her once, in what she now understood had been a species of trust so total it frightened him, that flicker of alarm in the black eye when she'd said, *You carry a sword-stick, Lucien, like a villain in a novel.*" | | 5 | "\"I'm not flattering you.\" He took a step toward her and then, visibly, stopped himself, and that restraint — that visible leash he kept on his own body in her presence — undid her more than the flattery would have." | | 6 | "The flat was full of the small sounds of London — the rumble of the 8 from Brick Lane, a siren somewhere toward Whitechapel, the shouted Bengali of the kitchen staff closing up below." | | 7 | "He took the two steps that closed the distance between them and he put one hand against the wall beside her head, and the other — the other he held out, palm up, and waited." | | 8 | "They broke apart, laughing — the first real laugh either of them had managed in eight months — and Lucien pressed his forehead to hers and said, against her mouth, \"Blackfriars. Friday. Bring the knife Eva keeps in the biscuit tin and wear your boots with the good tread.\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 788 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 25 | | adverbRatio | 0.031725888324873094 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0038071065989847717 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 18.89 | | std | 17.91 | | cv | 0.948 | | sampleLengths | | 0 | 20 | | 1 | 39 | | 2 | 34 | | 3 | 12 | | 4 | 3 | | 5 | 2 | | 6 | 27 | | 7 | 4 | | 8 | 31 | | 9 | 5 | | 10 | 5 | | 11 | 34 | | 12 | 17 | | 13 | 2 | | 14 | 7 | | 15 | 4 | | 16 | 6 | | 17 | 19 | | 18 | 36 | | 19 | 65 | | 20 | 4 | | 21 | 6 | | 22 | 3 | | 23 | 18 | | 24 | 3 | | 25 | 21 | | 26 | 40 | | 27 | 3 | | 28 | 4 | | 29 | 51 | | 30 | 3 | | 31 | 31 | | 32 | 9 | | 33 | 52 | | 34 | 10 | | 35 | 13 | | 36 | 4 | | 37 | 9 | | 38 | 43 | | 39 | 10 | | 40 | 5 | | 41 | 39 | | 42 | 5 | | 43 | 2 | | 44 | 27 | | 45 | 46 | | 46 | 4 | | 47 | 1 | | 48 | 42 | | 49 | 9 |
| |
| 47.08% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.35051546391752575 | | totalSentences | 97 | | uniqueOpeners | 34 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 53 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 53 | | matches | | 0 | "She was mid-sentence — and" | | 1 | "His hair was slicked back" | | 2 | "He looked at her the" | | 3 | "He glanced past her at" | | 4 | "She should have shut the" | | 5 | "She thought of the last" | | 6 | "he agreed, softly, in the" | | 7 | "It wasn't an invitation." | | 8 | "It was logistics: the corridor" | | 9 | "He came in." | | 10 | "He set the paper bag" | | 11 | "She knew the blade that" | | 12 | "he said, nodding at the" | | 13 | "He paused, and the pause" | | 14 | "He set his gloves on" | | 15 | "He took a step toward" | | 16 | "She pushed off the door" | | 17 | "She poured two glasses of" | | 18 | "His black eye was unreadable." | | 19 | "It had gone soft at" |
| | ratio | 0.604 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 50 | | totalSentences | 53 | | matches | | 0 | "The last deadbolt stuck the" | | 1 | "She was mid-sentence — and" | | 2 | "Lucien Moreau stood in the" | | 3 | "His hair was slicked back" | | 4 | "He looked at her the" | | 5 | "Ptolemy chose that moment to" | | 6 | "He glanced past her at" | | 7 | "She should have shut the" | | 8 | "The thought sat in her" | | 9 | "She thought of the last" | | 10 | "he agreed, softly, in the" | | 11 | "Ptolemy had given up on" | | 12 | "Rory stepped back." | | 13 | "It wasn't an invitation." | | 14 | "It was logistics: the corridor" | | 15 | "He came in." | | 16 | "He set the paper bag" | | 17 | "The ivory head of his" | | 18 | "She knew the blade that" | | 19 | "he said, nodding at the" |
| | ratio | 0.943 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 53 | | matches | (empty) | | ratio | 0 | |
| 5.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 5 | | matches | | 0 | "Lucien Moreau stood in the corridor of the curry house's back stairwell, rain shining on the shoulders of his charcoal suit, holding a paper bag of something th…" | | 1 | "Ptolemy chose that moment to wind between her ankles, purring like a diesel engine, and the vibration was the only thing that kept her from shutting the door in…" | | 2 | "She knew the blade that lived inside it — he had shown her once, in what she now understood had been a species of trust so total it frightened him, that flicker…" | | 3 | "Rory leaned her hip against the door she'd just shut and folded her arms, which put the crescent scar on her left wrist on display like a signature, and she saw…" | | 4 | "Lucien looked down at the cat with an expression Rory had seen exactly once before, on the steps of St Martin-in-the-Fields, when he'd given his scarf to a woma…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 1 | | matches | | 0 | "He paused, and the pause had weight to it" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 2 | | fancyTags | | 0 | "she repeated (repeat)" | | 1 | "he agreed (agree)" |
| | dialogueSentences | 52 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0.154 | | effectiveRatio | 0.077 | |