Diagnose Gateway
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
Diagnose genre problems and generate genre-specific elements.
$ npx skills add jwynia/agent-skills --skill genre-conventions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jwynia/agent-skills genre-conventions --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/craft/genre-conventions .claude/skills/genre-conventions && 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 "genre-conventions" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/craft/genre-conventions into .claude/skills/genre-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genre-conventions", 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/craft/genre-conventionsType 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 genre-conventions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jwynia/agent-skills genre-conventions --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/craft/genre-conventions .agents/skills/genre-conventions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "genre-conventions" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/craft/genre-conventions into .agents/skills/genre-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genre-conventions", 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 genre-conventions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jwynia/agent-skills genre-conventions --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/craft/genre-conventions .cursor/skills/genre-conventions && 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 "genre-conventions" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/craft/genre-conventions into .cursor/skills/genre-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genre-conventions", 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/craft/genre-conventions--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 genre-conventions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jwynia/agent-skills genre-conventions --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/craft/genre-conventions .gemini/skills/genre-conventions && 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 "genre-conventions" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/craft/genre-conventions into .gemini/skills/genre-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genre-conventions", 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 genre-conventionsInstalls 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 genre-conventions -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/craft/genre-conventions .github/skills/genre-conventions && 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 "genre-conventions" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/craft/genre-conventions into .github/skills/genre-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genre-conventions", 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 genre-conventions -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 genre-conventions --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/craft/genre-conventions .opencode/skills/genre-conventions && 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 "genre-conventions" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/craft/genre-conventions into .opencode/skills/genre-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "genre-conventions", 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.
genre-conventionsDiagnose genre problems and generate genre-specific elements.
Genre Conventions is an agent skill from jwynia/agent-skills. Diagnose genre problems and generate genre-specific elements. Use when genre promise is unclear, when elements feel misplaced, when secondary genres compete with primary, or when you need genre-specific entropy. Covers all 11 elemental genres from the Writing Excuses framework.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts (for example `data/genre-elements.json`, `scripts/genre-blend.ts` and `scripts/genre-check.ts`).
The licence is MIT.
6 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 3 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.
Genre Conventions loads about 4.4k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 2,095 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). 2,095 words, ~4,446 tokens.
.claude/skills/genre-conventions/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.You diagnose genre-level story problems and generate genre-specific elements. Your role is to ensure stories deliver on their emotional promises to readers.
Genre is a promise. The story must deliver on that promise or readers feel betrayed.
Elemental genres are about emotional experience, not bookshelf categories. A story set on a spaceship can be any genre. The setting is not the genre. The emotional experience is the genre.
| Genre | Core Promise | What Reader Wants to Feel |
|---|---|---|
| Wonder | Awe and fascination | "I had no idea that was possible" |
| Idea | Intellectual stimulation | "I never thought about it that way" |
| Adventure | Excitement through challenges | "What happens next?" (external) |
| Horror | Dread and confrontation with threat | "I'm afraid to look but can't stop" |
| Mystery | Curiosity about unknown facts | "I want to figure it out" |
| Thriller | Tension through danger | "Will they make it in time?" |
| Humor | Amusement and entertainment | "That was unexpected and delightful" |
| Relationship | Investment in connections | "I want them to work it out" |
| Drama | Internal conflict and transformation | "What happens next?" (internal) |
| Issue | Exploration of complex questions | "I see this differently now" |
| Ensemble | Group dynamics and combined effort | "How will they come together?" |
Note: Science fiction, fantasy, historical, contemporary are settings, not genres. A fantasy story can be mystery, romance, or thriller. The setting is where the genre lives.
Symptoms: Story lacks clear emotional contract with reader. Unclear what experience is being offered. Opening doesn't signal what kind of story this is. Readers don't know what to expect.
Key Questions:
Interventions:
Symptoms: Story elements don't match the emotional experience being attempted. Thriller pacing with relationship content. Mystery structure with adventure payoff. Material fights against chosen genre.
Key Questions:
Interventions:
Symptoms: Right elements but wrong timing. Mystery clues all dumped at once. Thriller tension before stakes established. Horror dread without vulnerability setup first. Romance obstacle introduced too late.
Key Questions:
Interventions:
Symptoms: Subplot genre dominates main story. Romance overwhelms thriller. Humor breaks horror atmosphere. Idea content slows adventure. Reader can't find footing.
Key Questions:
Interventions:
Symptoms: Mystery without fair-play clues. Thriller without ticking clock. Horror without vulnerability. Relationship without obstacles. Adventure without escalating challenges.
Key Questions:
Interventions:
Symptoms: Genre elements feel tired. Reader predicts everything. Nothing fresh about execution. "I've read this before" response.
Key Questions:
Interventions:
Symptoms: "It's sci-fi" when asked about genre. Worldbuilding without emotional core. Setting elements don't serve genre needs. Story would have no genre if setting were removed.
Key Questions:
Interventions:
Symptoms: Multiple POV characters with no coherent genre experience. Tonal whiplash between POVs. Reader doesn't know what to feel. Each thread works alone but they don't combine.
Key Questions:
Interventions:
| Genre | Setting Needs | Character Needs | Plot Needs |
|---|---|---|---|
| Wonder | Vast scales, unprecedented phenomena | Capacity for awe, can recognize significance | Discovery, revelation, perspective shift |
| Idea | Societies built around concepts | Intellectually curious, varied perspectives | Concept exploration, hypothesis testing |
| Adventure | Varied environments, physical obstacles | Relevant skills, tested beyond experience | Progressive challenges, geographic movement |
| Horror | Isolation, restricted movement, breakdown of normal | Vulnerabilities matching threats, something to lose | Escalating threat, diminishing safety |
| Mystery | Controlled environments, layered information | Investigators with skills, witnesses, suspects | Information gathering, progressive revelation |
| Thriller | Time-sensitive, high-stakes environments | Crucial responsibilities, matched antagonists | Deadline pressure, escalating threats |
| Humor | Unusual rules, potential for misunderstanding | Blind spots, contrasting norms | Miscommunication, subverted expectations |
| Relationship | Forced proximity, shared challenges | Complementary traits, meaningful obstacles | Connection progression, relationship tests |
| Drama | Environments that challenge values | Strong values facing tests | Difficult choices, internal conflict |
| Issue | Societies manifesting the issue | Diverse perspectives on central issue | Direct experience with different facets |
| Ensemble | Challenges requiring diverse skills | Complementary abilities, contrasting views | Team formation, cooperation challenges |
When a writer comes with genre-related symptoms:
Ask: "What emotional experience do you want readers to have?" Not "what category is this?" but "what should readers feel?"
Does the opening signal this genre? First scene should contain at least one clear marker of the intended experience.
Use the requirements table. Is each required element present? Placed correctly? Sufficiently developed?
If there are secondary genres, are they serving or competing? What proportion of story goes to each?
Remove the setting mentally. Is there still a genre? The setting should enhance, not replace, the emotional experience.
Based on identified state, provide specific interventions. Generate elements if needed. Point to frameworks.
Problem: Story tries to be equally mystery, thriller, and romance. Reader doesn't know what experience to expect. No clear emotional throughline.
Fix: Establish clear primary genre. Secondary genres serve the primary experience. One genre must dominate.
Problem: "It's sci-fi" answers the genre question. Story has worldbuilding but no emotional core. If you removed the setting, there's no story left.
Fix: Identify the emotional genre beneath the setting. "It's a mystery set in a sci-fi world" has a genre. "It's sci-fi" does not.
Problem: Opens as thriller, becomes relationship drama. Reader expecting tension gets feelings. Reader expecting feelings gets tension. Neither is satisfied.
Fix: Signal true genre early. If hybrid, show both elements in opening. Don't promise what you won't deliver.
Problem: Story has clues (mystery), time pressure (thriller), and dread (horror), but they don't serve a unified experience. Elements are present but inert.
Fix: Genre elements must reinforce primary emotional experience. Each element should intensify, not just exist.
Problem: Every genre expectation is subverted. Reader has no stable ground. Surprise has replaced satisfaction.
Fix: Deliver on core promise. Subvert execution, not contract. Reader should feel satisfied in the expected way via unexpected path.
Random element generator for each genre.
# Random element from a genre
deno run --allow-read scripts/genre-elements.ts mystery
# Specific category within genre
deno run --allow-read scripts/genre-elements.ts thriller --category ticking_clocks
# Multiple elements
deno run --allow-read scripts/genre-elements.ts horror --count 3
# List all available genres and categories
deno run --allow-read scripts/genre-elements.ts --list
# Combo from multiple genres
deno run --allow-read scripts/genre-elements.ts --combo mystery,thrillerPattern-matching diagnostic for text samples.
# Check text against specific genre
deno run --allow-read scripts/genre-check.ts --genre mystery scene.txt
# Auto-detect likely genre
deno run --allow-read scripts/genre-check.ts --analyze "Synopsis text here..."
# Inline text check
deno run --allow-read scripts/genre-check.ts --text "The detective arrived at dawn..." --genre mysterySecondary genre integration helper.
# Integration strategies for two genres
deno run --allow-read scripts/genre-blend.ts mystery relationship
# Multiple secondary genres
deno run --allow-read scripts/genre-blend.ts thriller --secondary humor,wonder
# Analyze text for genre blend
deno run --allow-read scripts/genre-blend.ts --analyze "A detective who falls in love while investigating..."| story-sense State | May Lead to Genre State |
|---|---|
| State 0: No Story | G1 (need to establish genre promise) |
| State 1: Concept Without Foundation | G2 (wrong genre for material), G7 (setting vs. genre confusion) |
| State 4.5: Plot Without Pacing | G3 (genre elements misplaced), G5 (missing required elements) |
| State 5: Plot Without Purpose | G4 (secondary genre undermining), G2 (genre mismatch) |
| State 7: Ready for Evaluation | G6 (genre cliches unexamined) |
Writer: "Readers keep asking what kind of book this is and I don't know how to answer."
Your approach:
Writer: "It's a fantasy novel set in a world where magic is dying."
Your approach:
Writer: "The romance subplot keeps taking over my thriller."
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/genre/ or a sensible location for this projectcontext/output-config.md if context network exists.genre-conventions-output.md at project root otherwiseFor this skill, persist:
| Goes to File | Stays in Conversation |
|---|---|
| Genre identification | Clarifying questions |
| Convention requirements | Discussion of specific scenes |
| Promise inventory | Writer's genre decisions |
| Hierarchy recommendations | Real-time feedback |
Pattern: {story}-genre-{date}.md
Example: novel-genre-2025-01-15.md
Genre is not a label applied after writing. Genre is a contract made at the start. The opening promises an emotional experience. The middle develops that experience. The ending delivers on the promise. Every element should serve the contract.
When genre problems appear, they often mask deeper issues: unclear purpose (story-sense), weak character arc (character-arc), pacing problems (scene-sequencing), or stale execution (cliche-transcendence). Diagnose genre first, then trace to root cause.
© 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 4 other files (scripts) in skills/creative/fiction/craft/genre-conventions of jwynia/agent-skills.
Open the folder on GitHubat commit e02ec7e
Genre Conventions 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 |
|---|---|---|---|---|---|---|
| Genre Conventions this skilljwynia/agent-skills | 170 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Diagnose Gatewayopenclaw/openclaw | 392k | — | ~670 | Automated safety check: Pass | MIT | |
| Ecc Conventionsaffaan-m/ECC | 276k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Diagnosegithub/awesome-copilot | 40k | 1 repos | ~1k | Automated safety check: Pass | MIT | |
| Is This A Problemanthropics/claude-for-legal | 9.6k | 2 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Conventional Commit Reviewaffaan-m/ECC | 276k | — | ~1.2k | Automated safety check: Pass | MIT |
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
affaan-m/ECC
Development conventions and patterns for ECC. An agent skill from affaan-m/ECC.
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…
anthropics/claude-for-legal
Fast "is this a problem?" answer for the quick Slack question — pattern-matches against your calibration.
affaan-m/ECC
Reviews staged changes and drafts a Conventional Commits-compliant commit message with the right type, scope, and length.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Use consistent CSS naming conventions.
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 genre problems and generate genre-specific elements. Genre Conventions is an agent skill from jwynia/agent-skills. Diagnose genre problems and generate genre-specific elements.
Genre Conventions fits situations like: genre promise is unclear; elements feel misplaced; secondary genres compete with primary; you need genre-specific entropy.
Run `npx skills add jwynia/agent-skills --skill genre-conventions -a claude-code`. Or copy the skill folder (skills/creative/fiction/craft/genre-conventions in jwynia/agent-skills) into .claude/skills/genre-conventions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jwynia/agent-skills --skill genre-conventions -a codex`. Or copy the skill folder (skills/creative/fiction/craft/genre-conventions in jwynia/agent-skills) into .agents/skills/genre-conventions 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 genre-conventions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/genre-conventions, .gemini/skills/genre-conventions, .github/skills/genre-conventions and .opencode/skills/genre-conventions in your project.
Going by SKILL.md and its folder, Genre Conventions 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.
Genre Conventions is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k 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 Genre Conventions: Diagnose Gateway (openclaw/openclaw, 392k stars), Ecc Conventions (affaan-m/ECC, 276k stars), Diagnose (github/awesome-copilot, 40k stars) and Is This A Problem (anthropics/claude-for-legal, 9.6k 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.