From bl1nk-visual-mcp
Writing technique guide for crafting authentic, distinct character dialogue and voice. Activate when the user asks about: dialogue writing, "how does [character] speak", "character voice", "make dialogue more natural", "dialogue feels stiff", "write a conversation between X and Y", "how to show character through speech", "subtext in dialogue", "argument scene", "romantic scene dialogue", or any request to write or review a dialogue/conversation scene. Also activate when reviewing story exports and dialogue feels generic or characters sound the same. Provides voice profiling, subtext techniques, and scene-specific dialogue patterns — both in Thai and English.
npx claudepluginhub billlzzz26/visual-story-extensionThis skill is limited to using the following tools:
เทคนิคการเขียนบทสนทนาที่เป็นธรรมชาติ สำหรับ Visual Story Planner
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
เทคนิคการเขียนบทสนทนาที่เป็นธรรมชาติ สำหรับ Visual Story Planner (Dialogue writing techniques for natural, character-distinct conversation)
Before writing dialogue, define each character's voice profile:
| Field | Description | Example |
|---|---|---|
| Sentence length | Short/Medium/Long | Luke: short, punchy |
| Vocabulary | Formal / Casual / Slang | Obi-Wan: formal, archaic |
| Speech habits | Filler words, catchphrases | "You know what I mean?" |
| Avoids saying | Topics they deflect | Villain never admits fear |
| Lies via | Omission / Misdirection / Silence |
Quick test: Cover character names — can you tell who's speaking? If not, voices are too similar.
❌ On-the-nose:
"ฉันโกรธคุณนะ เพราะคุณโกหกฉัน"
✅ Subtext:
"การประชุมเมื่อคืนเป็นยังไงบ้าง?"
"ก็ดี"
"ค่ะ ฉันเชื่ออย่างนั้น"
Subtext layers:
Use em-dash (—) for interruptions:
"ฟังนะ ฉันรู้ว่าคุณ—"
"คุณไม่รู้อะไรเลยเกี่ยวกับฉัน"
When to interrupt:
Every 3–4 lines of dialogue, add a physical beat:
"มันไม่ใช่สิ่งที่ฉันต้องการ" หล่อนดันแก้วออก
เขาเดินไปมาในห้อง "งั้นคุณต้องการอะไร?"
"ฉัน—" มือของหล่อนกำขอบโต๊ะแน่น "ไม่รู้"
"คุณรักฉันไหม?"
เขาก้มลงมองรองเท้า
Silence communicates what words cannot.
| Mistake | Fix |
|---|---|
| Info-dump dialogue | Characters only say what they'd naturally say |
| All voices sound the same | Use Voice Sheet per character |
| Perfect grammar in speech | Use contractions, fragments, pauses |
| Narrating via dialogue | Use action/description for movement |
| No purpose | Every exchange must reveal character OR advance plot |
Before finalizing any dialogue scene:
For any character in the StoryGraph, generate a sample dialogue scene by:
traits, motivations, and arc.start