| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.35 | | leniency | 0.7 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.51% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1540 | | totalAiIsmAdverbs | 2 | | 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) | |
| 44.81% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1540 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "fractured" | | 1 | "weight" | | 2 | "flickered" | | 3 | "predator" | | 4 | "footfall" | | 5 | "glistening" | | 6 | "depths" | | 7 | "footsteps" | | 8 | "echoed" | | 9 | "rhythmic" | | 10 | "flicker" | | 11 | "velvet" | | 12 | "glinting" | | 13 | "measured" | | 14 | "stark" |
| |
| 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 | 105 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 105 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 118 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1523 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1384 | | uniqueNames | 17 | | maxNameDensity | 1.3 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 18 | | St | 1 | | Street | 2 | | Raven | 2 | | Nest | 2 | | Soho | 1 | | Silas | 1 | | Morris | 6 | | Camden | 1 | | High | 1 | | Met | 1 | | Tube | 1 | | Saint | 1 | | Christopher | 1 | | Herrera | 1 | | Tomás | 4 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Silas" | | 4 | "Morris" | | 5 | "Met" | | 6 | "Saint" | | 7 | "Christopher" | | 8 | "Herrera" | | 9 | "Tomás" |
| | places | | 0 | "St" | | 1 | "Street" | | 2 | "Soho" | | 3 | "Camden" | | 4 | "High" |
| | globalScore | 0.85 | | windowScore | 0.833 | |
| 95.05% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 91 | | glossingSentenceCount | 2 | | matches | | 0 | "amber that seemed to breathe" | | 1 | "as though shielding the object in his jacket pocket" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.657 | | wordCount | 1523 | | matches | | 0 | "not among them, but the weight of it pressed all the same" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 118 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 34 | | mean | 44.79 | | std | 29.84 | | cv | 0.666 | | sampleLengths | | 0 | 108 | | 1 | 97 | | 2 | 15 | | 3 | 69 | | 4 | 89 | | 5 | 73 | | 6 | 49 | | 7 | 12 | | 8 | 21 | | 9 | 86 | | 10 | 99 | | 11 | 76 | | 12 | 19 | | 13 | 13 | | 14 | 11 | | 15 | 51 | | 16 | 49 | | 17 | 49 | | 18 | 69 | | 19 | 45 | | 20 | 18 | | 21 | 25 | | 22 | 7 | | 23 | 18 | | 24 | 20 | | 25 | 21 | | 26 | 54 | | 27 | 14 | | 28 | 54 | | 29 | 22 | | 30 | 73 | | 31 | 21 | | 32 | 15 | | 33 | 61 |
| |
| 95.24% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 105 | | matches | | 0 | "been forced" | | 1 | "been closed" | | 2 | "were scratched" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 231 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 5 | | flaggedSentences | 16 | | totalSentences | 118 | | ratio | 0.136 | | matches | | 0 | "The leather watch on her wrist lay heavy and damp against her skin; she had not glanced at it once." | | 1 | "Ahead, the suspect—hooded, jacket clinging like skin—vanished around the next corner." | | 2 | "She did not know the man’s name yet, only that he had slipped something into his pocket at the bar—something small enough to vanish between wet fingers—and that the bar’s owner, Silas, had watched him leave with a predator’s calm." | | 3 | "He risked a glance over his shoulder—warm brown eyes meeting hers for half a second—and she registered the thin scar that ran along his left forearm where the sleeve had climbed during the sprint." | | 4 | "The gate bore a rusted padlock that had clearly been forced; the man slid sideways through the gap like smoke." | | 5 | "A faint glow—wan, bluish, wrong—rose from the depths, pulsing in time with the traffic lights above." | | 6 | "The air warmed, carrying a faint metallic tang that reminded her of the hospital wards after Morris’s case—the one with no body to bury." | | 7 | "Vendors—shapes half-hidden by hoods and shadows—moved between tables heavy with glass vials, bone fetishes, and knives that gleamed too brightly under the lanterns." | | 8 | "The scar on his arm caught a flicker of lantern light; she noted the way he favored that side slightly, an old injury remembered in muscle memory." | | 9 | "He glanced back again—eyes wide for a heartbeat—then ducked behind heavy velvet." | | 10 | "One hand gripped the fabric; the other held the flashlight like a club." | | 11 | "The market’s noise pressed around her—low bartering, the clink of glass, the distant toll of a bell whose tone had no source." | | 12 | "Beyond lay a smaller chamber lined with black-and-white photographs nailed directly into the tunnel wall—faces of the missing, some she recognized from case files long filed away." | | 13 | "Quinn’s gaze moved across the faces—men and women whose disappearances had never been closed." | | 14 | "Quinn studied his face—the olive skin gone pale, the scar stark against the forearm." | | 15 | "He was not lying; the steadiness in his eyes matched the steadiness of a man who had already accepted possible arrest." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1409 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 51 | | adverbRatio | 0.0361958836053939 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.008516678495386799 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 118 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 118 | | mean | 12.91 | | std | 6.77 | | cv | 0.524 | | sampleLengths | | 0 | 19 | | 1 | 13 | | 2 | 8 | | 3 | 20 | | 4 | 21 | | 5 | 11 | | 6 | 16 | | 7 | 16 | | 8 | 21 | | 9 | 40 | | 10 | 20 | | 11 | 15 | | 12 | 5 | | 13 | 16 | | 14 | 14 | | 15 | 8 | | 16 | 19 | | 17 | 7 | | 18 | 7 | | 19 | 7 | | 20 | 27 | | 21 | 34 | | 22 | 4 | | 23 | 10 | | 24 | 16 | | 25 | 20 | | 26 | 9 | | 27 | 12 | | 28 | 16 | | 29 | 12 | | 30 | 16 | | 31 | 13 | | 32 | 8 | | 33 | 12 | | 34 | 4 | | 35 | 17 | | 36 | 9 | | 37 | 8 | | 38 | 19 | | 39 | 7 | | 40 | 19 | | 41 | 24 | | 42 | 12 | | 43 | 13 | | 44 | 15 | | 45 | 14 | | 46 | 13 | | 47 | 9 | | 48 | 23 | | 49 | 18 |
| |
| 63.84% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.3983050847457627 | | totalSentences | 118 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 99 | | matches | | 0 | "Instead, he veered left into" | | 1 | "Somewhere in the crowd a" | | 2 | "Instead she stepped fully into" |
| | ratio | 0.03 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 99 | | matches | | 0 | "She had tracked him from" | | 1 | "She did not know the" | | 2 | "Her breath came steady, counted" | | 3 | "She had lost Morris to" | | 4 | "She would not lose another" | | 5 | "He risked a glance over" | | 6 | "He reached a low iron" | | 7 | "She pulled her service radio" | | 8 | "Her thumb pressed the button" | | 9 | "She clipped the radio to" | | 10 | "She reached a landing where" | | 11 | "Her suspect was already halfway" | | 12 | "He kept his head down," | | 13 | "He glanced back again—eyes wide" | | 14 | "He looked smaller in here," | | 15 | "His right hand hovered near" | | 16 | "he said, voice quiet but" | | 17 | "She kept ten feet between" | | 18 | "He licked rain from his" | | 19 | "He shook his head once." |
| | ratio | 0.253 | |
| 55.96% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 80 | | totalSentences | 99 | | matches | | 0 | "Detective Harlow Quinn cut across" | | 1 | "Giles Street, boots striking water" | | 2 | "The leather watch on her" | | 3 | "Rain ran in rivulets down" | | 4 | "Quinn lengthened her stride, the" | | 5 | "She had tracked him from" | | 6 | "The green neon sign had" | | 7 | "She did not know the" | | 8 | "Quinn’s instincts, honed by the" | | 9 | "The words left her lungs" | | 10 | "The figure did not slow." | | 11 | "Quinn followed, shoulder brushing the" | | 12 | "Her breath came steady, counted" | | 13 | "She had lost Morris to" | | 14 | "She would not lose another" | | 15 | "The alley emptied onto Camden" | | 16 | "Traffic lights bled red across" | | 17 | "The suspect cut between two" | | 18 | "He risked a glance over" | | 19 | "The scar looked surgical, too" |
| | ratio | 0.808 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 99 | | matches | | 0 | "To follow was to step" | | 1 | "Now makeshift stalls lined the" |
| | ratio | 0.02 | |
| 58.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 68 | | technicalSentenceCount | 8 | | matches | | 0 | "Rain hammered the pavement in relentless sheets, turning every puddle into a fractured mirror that swallowed the streetlamps whole." | | 1 | "He risked a glance over his shoulder—warm brown eyes meeting hers for half a second—and she registered the thin scar that ran along his left forearm where the s…" | | 2 | "Vendors—shapes half-hidden by hoods and shadows—moved between tables heavy with glass vials, bone fetishes, and knives that gleamed too brightly under the lante…" | | 3 | "He kept his head down, left forearm tucked across his chest as though shielding the object in his jacket pocket." | | 4 | "Entering meant entering without backup, without protocol, without any of the structures that had once kept Morris alive." | | 5 | "The sight of them tightened something in her chest, the same sensation that had come the night Morris vanished." | | 6 | "He was not lying; the steadiness in his eyes matched the steadiness of a man who had already accepted possible arrest." | | 7 | "The underground breathed around them, patient and waiting, while above the city the storm continued to wash the streets clean of everything that might be solved…" |
| |
| 53.57% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 1 | | matches | | 0 | "he said, voice quiet but carrying across the stone" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 0 | | effectiveRatio | 0 | |