Fiction Kit is a repo template for draft-driven fiction writing with AI assistants.
It borrows the discipline of "spec-driven" workflows (separate intent, planning, execution, and QA) and applies it to creative writing: your draft work is represented as durable artifacts that keep your story consistent and your AI assistant on track.
This repository is not accepting pull requests or contributions at this time.
Feel free to fork for your own use.
- Repeatable draft workflow: idea → clarify → plan → tasks → implement, with optional analyze/QA/feedback gates
- Story bible structure (
elements/) as your single source of truth for characters, setting, plot, and continuity - Configurable voice layer (
voice/) so the workflow adapts to any genre or style - Prompt files (
.github/prompts/) designed for AI assistants or manual use - Review agents (
.github/agents/) for craft-focused feedback - Optional Agent Skills (
.github/skills/) for on-demand workflow guidance - Timeline + character index templates (
elements/timeline.md,elements/characters.md) for faster, safer context loading
git clone https://github.com/YOUR-USERNAME/fiction-kit.git my-story
cd my-storyEdit these files to define your story:
| File | Purpose |
|---|---|
elements/project.md |
Title, format, output conventions |
elements/pov.md |
POV style and rules |
elements/tone.md |
Emotional register and atmosphere |
voice/style.md |
Prose style guidelines |
voice/format.md |
File structure and formatting |
Fill in the element templates:
| File | Purpose |
|---|---|
elements/pitch.md |
Logline and concept |
elements/plot.md |
Plot structure and major beats |
elements/arc.md |
Character transformation |
elements/conflict.md |
Central tensions |
elements/setting.md |
World and locations |
elements/theme.md |
Thematic concerns |
elements/outline.md |
Episode/chapter breakdown |
elements/checklist.md |
Quality standards (customize!) |
elements/notes.md |
Continuity tracking |
Copy elements/characters/_template.md for each character:
elements/characters/
_template.md
protagonist-name.md
antagonist-name.md
supporting-character.md
Use the draft workflow (see below) or write directly in content/.
If you’re writing episodically, you can compile an episode into export-friendly markdown (and optionally EPUB/PDF if you have pandoc installed):
- Windows:
compile-episode.cmd <episode-number> - PowerShell:
./compile-episode.ps1 <episode-number>
Fiction Kit uses a staged workflow to keep creative work organized:
Create a new draft cycle to capture intent:
Use: .github/prompts/idea.prompt.md
Creates: drafts/001-your-draft-name/idea.md
Ask clarifying questions before planning:
Use: .github/prompts/clarify.prompt.md
Updates: idea.md + clarify.md
Create a structural blueprint:
Use: .github/prompts/plan.prompt.md
Creates: plan.md
Break the plan into actionable items:
Use: .github/prompts/tasks.prompt.md
Creates: tasks.md
Execute tasks and write/edit content:
Use: .github/prompts/implement.prompt.md
Edits: elements/** and content/**
Run quality checks:
Use: .github/prompts/analyze.prompt.md (coverage check)
Use: .github/prompts/qa.prompt.md (checklist verification)
Use: .github/prompts/feedback.prompt.md (structured notes)
fiction-kit/
├── .github/
│ ├── copilot-instructions.md # Project constitution
│ ├── prompts/ # Workflow prompts
│ │ ├── idea.prompt.md
│ │ ├── clarify.prompt.md
│ │ ├── plan.prompt.md
│ │ ├── tasks.prompt.md
│ │ ├── implement.prompt.md
│ │ ├── addscene.prompt.md
│ │ ├── editscene.prompt.md
│ │ ├── rewrite.prompt.md
│ │ ├── analyze.prompt.md
│ │ ├── qa.prompt.md
│ │ ├── feedback.prompt.md
│ │ ├── editor.prompt.md
│ │ ├── agent.prompt.md
│ │ ├── sample.prompt.md
│ │ └── compile.prompt.md
│ └── agents/ # Review agents
│ ├── craft-rewrite.agent.md
│ ├── dialogue-forward.agent.md
│ └── dramatic-structure.agent.md
├── drafts/
│ ├── _template/ # Template for new drafts
│ └── README.md
├── elements/ # Story bible (canon)
│ ├── project.md
│ ├── checklist.md
│ ├── pov.md
│ ├── tone.md
│ ├── setting.md
│ ├── theme.md
│ ├── conflict.md
│ ├── plot.md
│ ├── arc.md
│ ├── outline.md
│ ├── pitch.md
│ ├── notes.md
│ ├── characters/
│ │ └── _template.md
│ ├── events/
│ │ └── _template.md
│ └── outlines/
│ └── _template.md
├── voice/ # Style configuration
│ ├── style.md
│ └── format.md
├── content/ # Your prose
│ └── episodes/
│ └── episode-01-example/
├── output/ # Compiled files
├── samples/ # Test/exploration scenes
└── README.md
The prompts work as slash commands or can be referenced in chat.
Copy prompt contents into your AI assistant's context, along with relevant element files.
Always provide context from elements/ when asking for help with scenes. This keeps the AI grounded in your canon.
- Artifacts are contracts — downstream stages don't silently rewrite upstream intent
- Canon lives in
elements/— don't invent facts mid-scene; update canon deliberately - Continuity is a feature — track what characters know and when
- Voice is configurable — swap
voice/files for different styles, not the workflow - Small changes — prefer tight edits over broad rewrites
- Start small: Fill in
project.md,pov.md, and one character before writing - Use the checklist: Customize
elements/checklist.mdfor your project's needs - Track continuity: Update
elements/notes.mdas you establish details - Review often: Use the agents for feedback at natural breakpoints
- Compile to read: Use the compile prompt to see your work as a reader would
MIT — use freely, attribution appreciated.