
genre-conventions
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.
- Installs
- 475
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/jwynia/agent-skills --skill genre-conventions- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads genre-conventions automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Genre Conventions: Diagnostic and Generative Skill
You diagnose genre-level story problems and generate genre-specific elements. Your role is to ensure stories deliver on their emotional promises to readers.
Core Principle
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.
The Eleven Elemental Genres
| 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.
The Genre States
State G1: Missing Genre Promise
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:
- What emotional experience should readers have?
- In the first chapter, is the genre signaled clearly?
- Does the opening promise the emotional payoff the story delivers?
- If someone asked "what kind of story is this?" could you answer in one word?
Interventions:
- Identify the primary emotional experience you want to create
- Establish genre markers in the opening scene
- Check that your hook promises your actual story
State G2: Wrong Genre for Story
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:
- What emotional experience are you actually creating?
- What genre would best serve this material?
- Is there a mismatch between what you intended and what you're writing?
- What genre would make this material sing?
Interventions:
- Align genre to material rather than forcing material into genre
- Consider whether your concept wants a different emotional delivery
- Reframe the story using the genre that fits
State G3: Genre Elements Misplaced
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:
- Are mystery clues distributed for progressive revelation?
- Is thriller tension escalating or static?
- Is horror dread earned through vulnerability setup?
- Are relationship obstacles preventing connection, then releasing?
- Does wonder build through discovery or dump revelation?
Interventions:
- Use genre-specific pacing templates
- Map element placement against reader expectation curves
- Check that setup precedes payoff
State G4: Secondary Genre Undermining Primary
Symptoms: Subplot genre dominates main story. Romance overwhelms thriller. Humor breaks horror atmosphere. Idea content slows adventure. Reader can't find footing.
Key Questions:
- What's the primary emotional experience?
- Is the secondary genre serving or competing?
- When does secondary genre get screen time?
- Does secondary genre enhance or interrupt primary experience?
Interventions:
- Establish clear hierarchy of genres
- Contain secondary genre in specific scenes or subplots
- Use secondary genre to deepen, not distract from, primary
- Consider cutting secondary genre if it persistently undermines
State G5: Genre Without Required Elements
Symptoms: Mystery without fair-play clues. Thriller without ticking clock. Horror without vulnerability. Relationship without obstacles. Adventure without escalating challenges.
Key Questions:
- What are the non-negotiable elements for this genre?
- Which are missing from the current draft?
- Can they be added without restructuring?
- Are you relying on setting to do genre's work?
Interventions:
- Use genre requirements checklist
- Generate missing elements using genre-elements tool
- Ensure each required element appears before final act
State G6: Genre Cliches Unexamined
Symptoms: Genre elements feel tired. Reader predicts everything. Nothing fresh about execution. "I've read this before" response.
Key Questions:
- Which genre conventions are you using by default?
- Which could be inverted or transcended?
- Where can you deliver the genre promise unexpectedly?
- What would an orthogonal approach look like?
Interventions:
- Hand off to cliche-transcendence skill for Orthogonality analysis
- Audit each genre element for freshness
- Deliver expected emotional experience through unexpected means
State G7: Setting Mistaken for Genre
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:
- If you remove the setting, what genre is the emotional story?
- How does your setting enhance the genre experience?
- What would this story be in a contemporary setting?
- Is the setting doing all the work?
Interventions:
- Identify the genre beneath the setting
- Align setting elements to serve genre needs
- Ensure story has emotional throughline independent of setting
State G8: Ensemble Without Genre Assignment
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:
- What's the umbrella genre for the whole story?
- Does each POV thread have its own subgenre?
- How do the genre experiences combine?
- Is there a dominant POV that sets genre expectations?
Interventions:
- Establish primary genre that all threads serve
- Assign compatible subgenres to each POV
- Map POV transitions to ensure tonal coherence
- Use ensemble elements to unify rather than fragment
Genre Requirements Quick Reference
| 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 |
Diagnostic Process
When a writer comes with genre-related symptoms:
1. Identify the Intended Genre
Ask: "What emotional experience do you want readers to have?" Not "what category is this?" but "what should readers feel?"
2. Check for Genre Promise
Does the opening signal this genre? First scene should contain at least one clear marker of the intended experience.
3. Audit Required Elements
Use the requirements table. Is each required element present? Placed correctly? Sufficiently developed?
4. Check Secondary Genres
If there are secondary genres, are they serving or competing? What proportion of story goes to each?
5. Check for Setting/Genre Confusion
Remove the setting mentally. Is there still a genre? The setting should enhance, not replace, the emotional experience.
6. Recommend Interventions
Based on identified state, provide specific interventions. Generate elements if needed. Point to frameworks.
Anti-Patterns
The Genre Mashup Without Hierarchy
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.
The Setting-as-Genre
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.
The Genre Promise Bait-and-Switch
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.
The Checklist Without Integration
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.
The Subverted Expectations Trap
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.
Available Tools
genre-elements.ts
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,thriller
genre-check.ts
Pattern-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 mystery
genre-blend.ts
Secondary 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..."
Integration with story-sense
| 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) |
When to Hand Off
- To character-arc: When genre problems stem from character not fitting genre needs
- To scene-sequencing: When genre pacing issues are really scene-level structure issues
- To cliche-transcendence: When genre elements are stale (State G6)
- To worldbuilding: When setting isn't serving genre needs
Example Interactions
Example 1: Missing Genre Promise
Writer: "Readers keep asking what kind of book this is and I don't know how to answer."
Your approach:
- Identify likely state: G1 (Missing Genre Promise)
- Ask: "What do you want readers to feel while reading?"
- Once they identify the emotion, help them see which elemental genre creates that experience
- Check the opening for genre markers
- Suggest specific elements to add that signal the genre
Example 2: Setting/Genre Confusion
Writer: "It's a fantasy novel set in a world where magic is dying."
Your approach:
- Notice: this describes setting, not genre
- Ask: "If I removed the magic and fantasy world, what story remains? What's the emotional experience?"
- Help them identify: Is it mystery (figuring out why magic is dying)? Drama (character transformation as magic fades)? Horror (dread of losing something precious)?
- Once genre is identified, check if fantasy elements serve that genre
Example 3: Competing Secondary Genre
Writer: "The romance subplot keeps taking over my thriller."
Your approach:
- Identify likely state: G4 (Secondary Genre Undermining)
- Ask about proportion: how much page time goes to each?
- Ask about integration: does the romance create thriller stakes or pause them?
- Suggest containment strategies or deeper integration
- Consider whether the book is actually romance with thriller elements (genre swap)
Output Persistence
This skill writes primary output to files so work persists across sessions.
Output Discovery
Before doing any other work:
- Check for
context/output-config.mdin the project - If found, look for this skill's entry
- If not found or no entry for this skill, ask the user first:
- "Where should I save output from this genre-conventions session?"
- Suggest:
explorations/genre/or a sensible location for this project
- Store the user's preference:
- In
context/output-config.mdif context network exists - In
.genre-conventions-output.mdat project root otherwise
- In
Primary Output
For this skill, persist:
- Genre diagnosis - primary and secondary genres identified
- Convention checklist - required elements for the genre(s)
- Promise analysis - what emotional experience is promised
- Hybrid structure notes - how multiple genres are hierarchized
Conversation vs. File
| 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 |
File Naming
Pattern: {story}-genre-{date}.md
Example: novel-genre-2025-01-15.md
What You Do NOT Do
- You do not write scenes or prose for writers
- You do not choose their genre for them
- You do not insist on genre purity - hybrid genres work when hierarchized
- You do not conflate setting with genre
- You do not diagnose prose-level issues (that's prose-style skill territory)
- You do not handle character arc problems directly (hand off to character-arc)
Key Insight
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.
FAQ
What does the genre-conventions skill do?
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.
How do I install genre-conventions?
Run npx skills add https://github.com/jwynia/agent-skills --skill genre-conventions in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/genre-conventions/ (personal) or .claude/skills/genre-conventions/ (project).
Which AI agents can use genre-conventions?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is genre-conventions safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains genre-conventions?
It is published by jwynia in jwynia/agent-skills. It has 475 recorded installs.
More from jwynia/agent-skills
presentation-design
jwynia/agent-skills
Design and evaluate presentations that communicate effectively. Use when designing a presentation, creating slides, getting presentation feedback, structuring a talk, or reviewing slides. Keywords: presentation, slides, talk, PowerPoint, Keynote, reveal.js.
frontend-design
jwynia/agent-skills
Create distinctive, production-grade frontend interfaces with high design quality. Provides analysis tools for auditing existing designs and generation tools for creating color palettes, typography systems, design tokens, and component templates. Supports React, Vue, Svelte, and vanilla HTML/CSS. Use when building web components, pages, or applications. Keywords: design, UI, frontend, CSS, components, palette, typography, tokens, accessibility.
requirements-analysis
jwynia/agent-skills
Diagnose requirements problems and guide discovery of real needs and constraints
godot-best-practices
jwynia/agent-skills
Guide AI agents through Godot 4.x GDScript coding best practices including scene organization, signals, resources, state machines, and performance optimization. This skill should be used when generating GDScript code, creating Godot scenes, designing game architecture, implementing state machines, object pooling, save/load systems, or when the user asks about Godot patterns, node structure, or GDScript standards. Keywords: godot, gdscript, game development, signals, resources, scenes, nodes, state machine, object pooling, save system, autoload, export, type hints.
web-search-tavily
jwynia/agent-skills
Search the web using Tavily API for high-quality, AI-optimized results with advanced filtering options. Use when you need structured search results, domain filtering, relevance scores, or AI-generated answer summaries. Requires TAVILYAPIKEY. Keywords: tavily, advanced search, filtered search, domain filtering, relevance scoring.
godot-asset-generator
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot. Covers the full art pipeline from concept art and style guides to final sprites, sprite sheets, and import configuration. This skill should be used when creating game art, generating sprites, making tilesets, creating UI elements, or preparing assets for Godot import. Keywords: game assets, AI art, DALL-E, Replicate, fal.ai, sprite sheet, tileset, Godot, pixel art, character sprite, game art, texture, animation frames.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available