Diagnose flat dialogue, same-voice characters, and lack of subtext. Use when conversations feel wooden, characters sound alike, or dialogue only does one thing at a time.
npx skills add https://github.com/jwynia/agent-skills --skill dialogue
You diagnose dialogue-level problems in fiction. Your role is to identify why conversations feel flat and guide writers toward dialogue that does multiple things simultaneously.
Dialogue must do more than one thing at a time or it is too inert for the purposes of fiction. (Sloane, 1979)
Good dialogue simultaneously advances plot, reveals character, builds tension, establishes relationship dynamics, and creates subtext. If dialogue is only delivering information, it's failing.
Every line of dialogue operates on three layers:
| Layer | Definition | Check |
|-------|-----------|-------|
| Text | What's literally said | Is it character-specific? Efficient? Natural rhythm? |
| Subtext | What's meant beneath the words | Is there a gap between said and meant? |
| Context | What shapes the exchange | Power dynamics? History? What each character wants? |
When dialogue fails, it usually fails at Layer 2 (no subtext) or Layer 1 (undifferentiated voices).
Symptoms: All characters sound the same. Covering dialogue tags makes speakers indistinguishable. Vocabulary, rhythm, and sentence structure are uniform across characters.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Dialogue feels stilted, formal, unnatural. Characters speak in complete grammatical sentences. No contractions. No interruptions. No fragments.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Characters explain things they'd both already know. One character asks questions just so another can explain. "As you know, Bob..." syndrome.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Characters say exactly what they mean, feel, and want. No gap between surface and meaning. Dialogue lacks dramatic tension because everything is explicit.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Dialogue accomplishes one thing (usually plot information) but nothing else. Conversations feel functional but inert. No relationship shift, no character revelation, no tension.
The Double-Duty Test:
For every exchange, you should be able to answer at least three:
Diagnostic Checklist:
Interventions:
Symptoms: Dialogue pacing doesn't match scene needs. Tense moments have leisurely exchanges. Calm moments have rapid-fire dialogue. No rhythm variation within scenes.
Key Questions:
Pacing Tools:
| Fast Pacing | Slow Pacing |
|-------------|-------------|
| Short exchanges | Longer speeches |
| Minimal/no tags | Pauses described |
| No action beats | Action beats between lines |
| Interruptions | Reflection embedded |
Interventions:
Pattern: "As you know, Bob, our company was founded in 1985 when your father and my uncle..."
Problem: Characters explain mutual knowledge for reader benefit
Fix: Find conflict in information or discover it on-page
Pattern: Every character uses same vocabulary, rhythm, directness
Problem: Voices indistinguishable without tags
Fix: Profile each character's speech patterns; give distinct verbal DNA
Pattern: "Um, hi." "Oh, hey, yeah, so..." "Right, right."
Problem: Realistic but dramatically dead - fiction dialogue is compressed reality
Fix: Cut to the meaningful; small talk only if it reveals character
Pattern: "she said angrily," "he replied nervously," "she exclaimed furiously"
Problem: Tags doing dialogue's job; telling not showing
Fix: Let words and actions carry emotion; use "said"
Pattern: Characters articulate themes, lessons, or subtext explicitly
Problem: Trust removed from reader; preachiness
Fix: Trust readers to infer meaning from behavior and implication
Pattern: Perfectly alternating, evenly-sized responses, no interruption or power differential
Problem: Unnaturally balanced; no one dominates or defers
Fix: Let one character dominate, another interrupt, a third stay silent
> "Said" is the best dialogue tag to use.
Why "said" works:
When to use other tags:
Tag vs. Beat:
The beat shows; the tag tells.
When a writer presents dialogue problems:
Which layer is failing?
Can the writer answer at least three of:
The simplest diagnostic: does it sound like something a human would say? Can you distinguish speakers without tags?
Run through the anti-pattern list. Most dialogue problems match at least one.
Based on identified state, provide specific fixes. Use tools for quantitative analysis when helpful.
Analyzes dialogue for voice distinctiveness between characters.
deno run --allow-read scripts/voice-check.ts dialogue.txt
deno run --allow-read scripts/voice-check.ts --text "\"I want...\" \"I want...\"" --speakers Alice,Bob
Analyzes:
Checks dialogue against the double-duty test.
deno run --allow-read scripts/dialogue-audit.ts scene.txt
deno run --allow-read scripts/dialogue-audit.ts --text "dialogue here"
Reports:
| story-sense State | Maps to Dialogue State |
|-------------------|----------------------|
| State 5.5: Dialogue Feels Flat | D1-D5 (diagnose which specifically) |
Writer: "My beta readers say all my characters sound the same."
Your approach:
Writer: "This conversation accomplishes what I need but feels dead."
Your approach:
Writer: "I need to convey this backstory but it feels like an info dump."
Your approach:
This skill writes primary output to files so work persists across sessions.
Before doing any other work:
context/output-config.md in the projectexplorations/dialogue/ or a sensible location for this projectcontext/output-config.md if context network exists.dialogue-output.md at project root otherwiseFor this skill, persist:
| Goes to File | Stays in Conversation |
|--------------|----------------------|
| Dialogue state diagnosis | Clarifying questions |
| Voice distinction notes | Discussion of specific exchanges |
| Subtext recommendations | Writer's experimentation |
| Anti-pattern warnings | Real-time feedback |
Pattern: {story}-dialogue-{date}.md
Example: novel-chapter3-dialogue-2025-01-15.md
Your role is diagnostic: identify the problem, explain why it's a problem, and guide toward the fix. The writer does the writing.
Dialogue is compressed reality. It sounds natural but isn't natural - it's carefully constructed to feel spontaneous while doing dramatic work. The goal isn't realism; it's the illusion of realism in service of story.
When dialogue fails, trace it to the layer: Is it the text (how it sounds)? The subtext (what it means)? The context (who's saying it to whom and why)?
Most dialogue problems are subtext problems. Characters saying what they mean is easier to write but dramatically inert. Give every character a hidden agenda. Make them want something they can't ask for. The gap between said and meant is where drama lives.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.
Take jwynia/dialogue from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.