StoryForge ships 16 genre definitions and allows free mixing. A book can combine one to three genres, and new-book offers one to three selections accordingly. Each genre is a README with guardrails for conventions, tropes, structures and anti-patterns. The skills load the README of each of the book's genres to align concept, plot and chapters with it.
Real books almost always sit between genres. The mixing system is built for exactly that.
For memoir books, genres are thematic tags (for example memoir of an illness or a place) and not plot conventions.
Standalone genres that work on their own. The length figures come from each README and are rules of thumb:
| Genre | Typical length (words) |
|---|---|
horror |
70,000 to 100,000 |
fantasy |
90,000 to 150,000 |
sci-fi |
80,000 to 120,000 |
thriller |
70,000 to 100,000 |
mystery |
70,000 to 100,000 |
romance |
70,000 to 110,000 |
drama |
80,000 to 120,000 |
literary-fiction |
80,000 to 100,000 |
historical |
90,000 to 130,000 |
contemporary |
70,000 to 100,000 |
supernatural |
80,000 to 110,000 |
kinderbuch |
400 to 1,500 (read-aloud story), 8,000 to 30,000 (chapter book, ages 6-10) |
maerchen |
400 to 3,000, Kunstmärchen may run longer |
lgbtq is not a standalone genre but a modifier that brings LGBTQ+ characters, relationships and themes into any base genre. Length and structure follow the base genre. The README stresses fully realized characters, diversity within the community, research or sensitivity consultation when writing outside your own experience, found family and the societal context of the era.
Predefined combinations with their own conventions:
dark-fantasy: a fantasy world with the moral ambiguity and atmosphere of horror. Typical length 100,000 to 150,000 words. Conventions include: morality is not binary, consequences are permanent, the world is hostile, magic has a price, violence is not glamorous, redemption is possible but not guaranteed.paranormal-romance: romance with a paranormal partner. Typical length 80,000 to 120,000 words. The romance must earn its happy ending (HEA or HFN), the paranormal nature creates meaningful obstacles, both partners act, and the rules of the paranormal world affect the relationship. Subgenres include vampire, werewolf and shifter romance, ghost romance, paranormal fantasy romance and dark paranormal romance.Each built-in genre lives as README.md under {plugin_root}/genres/{genre}/, custom genres under ~/.storyforge/genres/{genre}/. All 16 files follow the same template:
# Fantasy
## Overview
## Characteristics (table: Tone, Pacing, POV, Typical Length, Chapter Length, Structure)
## Key Conventions
## Common Tropes (Use Wisely)
## Anti-Patterns (Avoid)
## Recommended Story Structures
## Subgenres
## Example Authors & Works
## Genre-Mixing Notes
## study-author: Positive Markers
The section ## study-author: Positive Markers lists positive style patterns that study-author looks for when analyzing a text of this genre, see Author Profiles. The section ## Genre-Mixing Notes describes how the genre interacts with others.
With list_genres you see all genres, with get_genre(name) you read a README.
A book combines up to three genres in the genres field of the book frontmatter. Typical combinations:
| Combination | Example |
|---|---|
| horror + supernatural | classic ghost novel |
| fantasy + romance | high-fantasy romance |
| mystery + contemporary + literary-fiction | literary crime novel set in the present |
| sci-fi + thriller | techno-thriller |
| historical + romance + lgbtq | queer historical romance |
| dark-fantasy + lgbtq | queer dark fantasy |
If the conventions of two genres conflict, for example on length or pacing, there is no fixed ranking in the code. The skills load the README of each genre, and chapter-writer treats the conventions as the contract with the reader: deviations should be deliberate. The Genre-Mixing Notes sections in the READMEs give hints.
More than three genres are rarely useful. Each further genre brings conventions that can contradict the others, so none is served properly. If a concept is undecided, it helps to start with one genre and re-evaluate after the first chapters with /storyforge:book-conceptualizer.
Besides the genre READMEs, nine craft guides live under reference/genre/:
| Genre | File |
|---|---|
| horror | horror-craft.md |
| fantasy | fantasy-craft.md |
| mystery | mystery-craft.md |
| thriller | thriller-craft.md |
| romance | romance-craft.md |
| sci-fi | scifi-craft.md |
| literary-fiction | literary-craft.md |
| supernatural | supernatural-craft.md |
| lgbtq | lgbtq-craft.md |
There is no dedicated guide for historical, drama, contemporary, kinderbuch, maerchen and the two mixes. You fetch the guides with get_craft_reference(name), which searches reference/genre/ after the general documents under reference/craft/. list_craft_references lists both folders. book-conceptualizer, chapter-writer and plot-architect additionally call get_craft_reference("{genre}-craft") for each of the book's genres when they load the genre READMEs; if the guide is missing, that is silently skipped. The sensitivity-reader uses lgbtq-craft to evaluate the portrayal of LGBTQ+ characters.
Style principles in the author profile can be bound to genres. The entry then carries a genres list. chapter-writer and chapter-reviewer skip entries whose genres overlap with none of the book's genres.
genres: applies to every book.genres: applies only if the book has at least one of those genres.universal: always applies, regardless of genres.The tags are set by write_author_discovery (parameters genres and universal). study-author asks for the source genres of the analyzed text and checks each genre with get_genre. If a genre does not exist, the tag only starts filtering once you create it with genre-creator. /storyforge:migrate-source-genres adds missing tags to older entries. More: Author Profiles.
/storyforge:genre-creator <name> creates a new genre. The flow:
list_genres. If the name exists, it overwrites nothing and asks instead. For mixes it checks with get_genre that both parent genres exist.The README is created under ~/.storyforge/genres/{name}/README.md. This directory survives plugin updates. list_genres and get_genre read both directories and prefer your own genre over the built-in one when the slug matches. The skill itself does not create a genre whose name already exists, it asks first. A custom genre with the slug of a built-in one therefore only arises when you create the directory by hand. The skill's template does not contain the study-author: Positive Markers section, you can add it by hand.
| Name | Base genres | Characteristic |
|---|---|---|
cozy-mystery |
mystery + contemporary | warm, small town, murder off the page |
grimdark |
fantasy + drama + literary-fiction | moral ambiguity, poetic prose |
folk-horror |
horror + historical | rural, pre-industrial |
nordic-noir |
mystery + thriller + literary-fiction | cold atmosphere, slow pace |
The answers usually lead to one to three genres.
lgbtq: can come on top as a cross-cutting genre.Every genre README has an Anti-Patterns (Avoid) section. In the fantasy README these include, for example, exposition dumps as worldbuilding, magic as a cure-all, arbitrary power jumps and an incoherent magic system. chapter-writer loads the genre READMEs before writing, and deviations from the conventions should be deliberate.