Diagnose Gateway
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
Diagnose flat dialogue, same-voice characters, and lack of subtext.
$ npx skills add jwynia/agent-skills --skill dialogue -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jwynia/agent-skills dialogue --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/creative/fiction/character/dialogue .claude/skills/dialogue && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dialogue" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/dialogue into .claude/skills/dialogue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dialogue", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/dialogueType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jwynia/agent-skills --skill dialogue -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jwynia/agent-skills dialogue --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/creative/fiction/character/dialogue .agents/skills/dialogue && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dialogue" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/dialogue into .agents/skills/dialogue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dialogue", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jwynia/agent-skills --skill dialogue -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jwynia/agent-skills dialogue --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/creative/fiction/character/dialogue .cursor/skills/dialogue && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dialogue" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/dialogue into .cursor/skills/dialogue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dialogue", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jwynia/agent-skills.git --path skills/creative/fiction/character/dialogue--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jwynia/agent-skills --skill dialogue -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jwynia/agent-skills dialogue --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/creative/fiction/character/dialogue .gemini/skills/dialogue && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dialogue" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/dialogue into .gemini/skills/dialogue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dialogue", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jwynia/agent-skills dialogueInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jwynia/agent-skills --skill dialogue -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/creative/fiction/character/dialogue .github/skills/dialogue && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dialogue" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/dialogue into .github/skills/dialogue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dialogue", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jwynia/agent-skills --skill dialogue -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jwynia/agent-skills dialogue --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/creative/fiction/character/dialogue .opencode/skills/dialogue && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dialogue" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/dialogue into .opencode/skills/dialogue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dialogue", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dialogueDiagnose flat dialogue, same-voice characters, and lack of subtext.
Dialogue is an agent skill from jwynia/agent-skills. 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.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/dialogue-audit.ts` and `scripts/voice-check.ts`).
The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e02ec7e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
denoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dialogue loads about 3.9k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 1,933 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from jwynia/agent-skills at commit e02ec7e, republished under its MIT licence (© jwynia). 1,933 words, ~3,861 tokens.
.claude/skills/dialogue/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.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,BobAnalyzes:
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.
© jwynia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in skills/creative/fiction/character/dialogue of jwynia/agent-skills.
Open the folder on GitHubat commit e02ec7e
Dialogue next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dialogue this skilljwynia/agent-skills | 170 | — | ~3.9k | Automated safety check: Pass | MIT | |
| Diagnose Gatewayopenclaw/openclaw | 392k | — | ~670 | Automated safety check: Pass | MIT | |
| Diagnosegithub/awesome-copilot | 40k | 1 repos | ~1k | Automated safety check: Pass | MIT | |
| Character Riggingcalesthio/OpenMontage | 66k | — | ~460 | Automated safety check: Pass | MIT | |
| Flat Designsickn33/agentic-awesome-skills | 47k | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Flat Design 2sickn33/agentic-awesome-skills | 47k | 1 repos | ~2.2k | Automated safety check: Pass | MIT |
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
github/awesome-copilot
Perform a systematic diagnostic scan of an AI workflow across 5 quality dimensions — prompt quality, context efficiency, tool health, architecture fitness, and safety — producing a scored report…
calesthio/OpenMontage
Build data-driven 2D character rigs for local animation: parts, pivots, layers, constraints, views, and reusable rig packages.
sickn33/agentic-awesome-skills
Web and App implementation guide for the Flat Design style. An agent skill from sickn33/agentic-awesome-skills.
sickn33/agentic-awesome-skills
Web and App implementation guide for Flat Design 2.0 (Semi-Flat).
paperclipai/paperclip
Diagnose stalled, looping, or over-recovered Paperclip issue trees and propose a no-code product-rule plan.
jwynia/agent-skills
Diagnose devcontainer configuration problems and guide development environment setup.
jwynia/agent-skills
Create distinctive, production-grade frontend interfaces with high design quality.
jwynia/agent-skills
Orchestrate agile development workflows for Gitea repositories using the tea CLI.
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot.
jwynia/agent-skills
Develop AI agents, tools, and workflows with Mastra v1 Beta and Hono servers.
jwynia/agent-skills
Create and manipulate PowerPoint PPTX files programmatically.
Diagnose flat dialogue, same-voice characters, and lack of subtext. Dialogue is an agent skill from jwynia/agent-skills. Diagnose flat dialogue, same-voice characters, and lack of subtext.
Dialogue fits situations like: conversations feel wooden; characters sound alike; dialogue only does one thing at a time.
Run `npx skills add jwynia/agent-skills --skill dialogue -a claude-code`. Or copy the skill folder (skills/creative/fiction/character/dialogue in jwynia/agent-skills) into .claude/skills/dialogue in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jwynia/agent-skills --skill dialogue -a codex`. Or copy the skill folder (skills/creative/fiction/character/dialogue in jwynia/agent-skills) into .agents/skills/dialogue in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jwynia/agent-skills --skill dialogue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dialogue, .gemini/skills/dialogue, .github/skills/dialogue and .opencode/skills/dialogue in your project.
Going by SKILL.md and its folder, Dialogue needs TypeScript for the scripts in its folder and the command-line tools its instructions call (deno). Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Dialogue is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dialogue: Diagnose Gateway (openclaw/openclaw, 392k stars), Diagnose (github/awesome-copilot, 40k stars), Character Rigging (calesthio/OpenMontage, 66k stars) and Flat Design (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jwynia (a GitHub user) maintains it in jwynia/agent-skills, which has 170 GitHub stars. The repository holds 111 skills in this directory. The repository was last updated on February 24, 2026.
Source: jwynia/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.