Genre Conventions logo

Genre Conventions

Community
jwynia
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.

Overview

Publisherjwynia
Repositoryagent-skills
Skill namegenre-conventions
Stars
159
Forks
20
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by jwynia on GitHub. Read the source before you install it.

Installation

Install the Genre Conventions AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jwynia/agent-skills.git /tmp/agent-skills
mkdir -p .claude/skills
cp -r /tmp/agent-skills/skills/creative/fiction/craft/genre-conventions .claude/skills/genre-conventions
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Genre Conventions in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Genre Conventions on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Genre Conventions is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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

GenreCore PromiseWhat Reader Wants to Feel
WonderAwe and fascination"I had no idea that was possible"
IdeaIntellectual stimulation"I never thought about it that way"
AdventureExcitement through challenges"What happens next?" (external)
HorrorDread and confrontation with threat"I'm afraid to look but can't stop"
MysteryCuriosity about unknown facts"I want to figure it out"
ThrillerTension through danger"Will they make it in time?"
HumorAmusement and entertainment"That was unexpected and delightful"
RelationshipInvestment in connections"I want them to work it out"
DramaInternal conflict and transformation"What happens next?" (internal)
IssueExploration of complex questions"I see this differently now"
EnsembleGroup 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

GenreSetting NeedsCharacter NeedsPlot Needs
WonderVast scales, unprecedented phenomenaCapacity for awe, can recognize significanceDiscovery, revelation, perspective shift
IdeaSocieties built around conceptsIntellectually curious, varied perspectivesConcept exploration, hypothesis testing
AdventureVaried environments, physical obstaclesRelevant skills, tested beyond experienceProgressive challenges, geographic movement
HorrorIsolation, restricted movement, breakdown of normalVulnerabilities matching threats, something to loseEscalating threat, diminishing safety
MysteryControlled environments, layered informationInvestigators with skills, witnesses, suspectsInformation gathering, progressive revelation
ThrillerTime-sensitive, high-stakes environmentsCrucial responsibilities, matched antagonistsDeadline pressure, escalating threats
HumorUnusual rules, potential for misunderstandingBlind spots, contrasting normsMiscommunication, subverted expectations
RelationshipForced proximity, shared challengesComplementary traits, meaningful obstaclesConnection progression, relationship tests
DramaEnvironments that challenge valuesStrong values facing testsDifficult choices, internal conflict
IssueSocieties manifesting the issueDiverse perspectives on central issueDirect experience with different facets
EnsembleChallenges requiring diverse skillsComplementary abilities, contrasting viewsTeam 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.

bash
# 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.

bash
# 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.

bash
# 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 StateMay Lead to Genre State
State 0: No StoryG1 (need to establish genre promise)
State 1: Concept Without FoundationG2 (wrong genre for material), G7 (setting vs. genre confusion)
State 4.5: Plot Without PacingG3 (genre elements misplaced), G5 (missing required elements)
State 5: Plot Without PurposeG4 (secondary genre undermining), G2 (genre mismatch)
State 7: Ready for EvaluationG6 (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:

  1. Identify likely state: G1 (Missing Genre Promise)
  2. Ask: "What do you want readers to feel while reading?"
  3. Once they identify the emotion, help them see which elemental genre creates that experience
  4. Check the opening for genre markers
  5. 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:

  1. Notice: this describes setting, not genre
  2. Ask: "If I removed the magic and fantasy world, what story remains? What's the emotional experience?"
  3. Help them identify: Is it mystery (figuring out why magic is dying)? Drama (character transformation as magic fades)? Horror (dread of losing something precious)?
  4. 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:

  1. Identify likely state: G4 (Secondary Genre Undermining)
  2. Ask about proportion: how much page time goes to each?
  3. Ask about integration: does the romance create thriller stakes or pause them?
  4. Suggest containment strategies or deeper integration
  5. 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:

  1. Check for context/output-config.md in the project
  2. If found, look for this skill's entry
  3. 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
  4. Store the user's preference:
    • In context/output-config.md if context network exists
    • In .genre-conventions-output.md at project root otherwise

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 FileStays in Conversation
Genre identificationClarifying questions
Convention requirementsDiscussion of specific scenes
Promise inventoryWriter's genre decisions
Hierarchy recommendationsReal-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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Genre Conventions AI 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.

Why use Genre Conventions on TypingMind?

Because you install it once and use it with any model. Genre Conventions is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Genre Conventions in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/craft/genre-conventions. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Genre Conventions?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Genre Conventions?

As many as you like. As long as a model supports skills, you can use Genre Conventions with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Genre Conventions AI skill free?

Yes. It is published on GitHub by jwynia under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇