Vibe Authoring Toolkit
Vibe Authoring Toolkit
Prompt templates for AI-assisted interactive fiction
Vibe authorship is writing by directing an AI — you describe the shape, tone, and constraints, and the AI generates the Ink code. You then play-test, iterate, and refine. This toolkit gives you copy-paste prompts for every story shape. The key skill is learning to describe structure precisely enough that the AI gives you something useful on the first try.
Every effective prompt for generating Ink code has five components. Miss one and the AI will fill in the gap with guesses — usually bad ones.
- 1 Shape — Which structural pattern: diamond, gauntlet, QBN, hub-and-spoke, etc. This is the skeleton the AI builds on.
- 2 Content — Setting, characters, tone, genre. The flesh on the skeleton. Be specific: "a rain-soaked space station" beats "a sci-fi setting."
- 3 State — What variables or lists to track, what persists between knots. If you don't specify state, the AI won't track anything.
- 4 Constraints — Word count per passage, number of choices, which Ink features to use or avoid. Guardrails that keep output manageable.
- 5 Connection Points — Where this piece plugs into the rest of your story: entry knot name, exit divert target, variables it reads or writes.
Labeled Example
Ten templates, one per shape. Copy the template, fill in the placeholders, and paste it into your AI assistant. Each template is designed to produce a single, testable chunk of Ink.
1. Diamond
Choices fan out then converge at a single gather point.
- One knot with exactly 3 top-level choices
- A VAR declaration at the top
- A gather ( - ) where all branches meet
- A single
-> next_knotdivert at the end - No nested choices, no additional knots
2. Weave
A hub the player revisits, investigating once-only options until all are seen.
- One knot with N once-only choices (using
*) - Each choice sets a boolean VAR and diverts back to the hub:
~ saw_X = truethen-> knot_name - A conditional gate:
{saw_a and saw_b and saw_c: -> next} - Choices disappear after being selected (once-only
*handles this)
3. Gauntlet
A linear sequence of stations, each with a clean path and a costly path.
- N sequential knots, each with exactly 2 choices
- One choice gated by a conditional:
{has_rope: ...} - One choice always visible, incrementing a penalty variable
- Linear flow: station 1 -> station 2 -> station 3 -> exit
- A VAR declaration for the penalty counter
4. Quality-Based Narrative (QBN)
Content appears and disappears based on tracked qualities/states.
- A LIST declaration with ordered values
- Conditional blocks checking current list value
- Choices that advance the list:
~ reputation += trusted(add to set) or~ reputation = trusted(single rank) - Meaningfully different text per quality level
- At least N distinct branches
Two LIST paradigms: "Flag-bag" (+= item, multiple items active, test with ?) vs "Ordered rank" (= item, single value, test with ==). The catalog example uses flag-bag; this template works with either. Tell the AI which you want.
5. Hub-and-Spoke
A central hub with optional branches that gate a finale.
- A hub knot with N choices, each gated by conditionals
- N spoke knots, each with their own internal structure
- Boolean VAR flags:
VAR spoke1_done = false - Each spoke sets its flag and diverts back to the hub
- Hub checks all flags and diverts to finale when all true
6. Time Cave
Pure branching — every choice leads deeper, no paths converge.
- 1 + 2 + 4 + 8 = 15 total knots (or nested weave structure)
- Exactly 2 choices at every non-leaf node
- 8 endings, each with
-> END - No gathers, no convergence, no shared knots
- Each ending tonally distinct
7. Branch-and-Bottleneck
Branches fan out within an act, then converge at a bottleneck before the next act.
- Three clear act sections with labeled knots
- N choices per act that modify a tracked variable
- Bottleneck knots between acts with conditional text
- Variable referenced in bottleneck:
{courage > 2: ...} - Clean linear act flow: act1 -> bottleneck1 -> act2 -> bottleneck2 -> act3
8. Foldback
Multiple paths that all fold back to a single pivotal scene.
- An initial choice knot with N options
- N separate path knots, each setting the tracking variable to a different integer
- All paths divert to the convergence knot
- Convergence knot uses conditionals:
{escape_route == 1: You came through the engine room...} - Single exit divert at the end
9. Parallel Paths
Two storylines the player can switch between at bridge points.
- Two sets of sequential knots (path A and path B)
- A tracking variable:
VAR time_on_a = 0 - Bridge knots offering "Switch to [other path]?" choices
- Both paths reachable from bridge points
- Convergence knot with conditional text based on time tracking
10. Loop-and-Grow
The player revisits a location that changes each time.
- A single knot that diverts to itself:
-> knot_name - Visit counter:
VAR visits = 0incremented each loop - Sticky choices (
+) with conditional text per visit - Description text that changes based on visit count
- An escape condition that breaks the loop
You generated something. Now make it better. These prompts help you refine, expand, debug, and reshape AI output without starting over.
Expand a Branch
Add State Tracking
Merge Two Sections
Debug My Ink
Change the Tone
The loop. Every piece of AI-generated Ink goes through this cycle at least once. Most go through it three or four times.
Pro Tips
- Start with the shape, not the content. Structure first, prose second.
- Generate small pieces and connect them. Don't ask for a whole story at once.
- Always specify your variables and connection points. The AI can't guess your story's state.
- Play-test after every generation. Ink bugs compound fast.
- The AI is your writing partner, not your ghostwriter. Edit its output — add your voice.
Pause & Reflect
What changes when the AI writes your story? You just learned to generate Ink code with prompts. That means you could build a story in 20 minutes that used to take 2 hours. What do you do with the time you saved? Do you polish more? Explore more branches? Or do you notice something subtle — that the story feels different when you didn’t write every word? What’s the difference? Does it matter?
Where is the line between “vibe authoring” and “not writing at all”? There’s no trick answer here. Some people think directing an AI is creative work. Others think it’s delegation. You’re going to have to decide for yourself where the line is. What’s the minimum amount of your own words, your own choices, your own judgment that a story needs before it counts as yours?
Prompts are choices too. Look at the templates above. Each one asks you to fill in [PLACEHOLDERS]. Those placeholders are your creative decisions — the setting, the characters, the tracked variables, the tone. The AI fills in the middle, but you define the shape and the meaning. Is that enough? Is that more or less creative than writing every word yourself? What would you tell someone who says AI-generated fiction isn’t “real” writing?