ink-doc
Skill0 starsChanged 7 months agoMITView on GitHub
Create and edit interactive narrative scripts using the ink scripting language. Use when creating choice-based stories, branching dialogues, interactive fiction, or when the user mentions ink, knots, stitches, weaves, or interactive narratives.
In this repository27 other files it gives its agents.
- beta-reader-passSkill
- build-distributionSkill
- chapter-reviewSkill
- continuity-checkSkill
- create-character-bibleSkill
- define-style-bibleSkill
- draft-chapterSkill
- generate-high-level-outlineSkill
- if-design-dialogueSkill
- if-design-mapSkill
- if-design-progressionSkill
- if-design-structureSkill
- if-draft-inkSkill
- if-init-projectSkill
- if-load-contextSkill
- if-plan-ink-sliceSkill
- if-playtest-reviewSkill
- if-sync-stateSkill
- init-story-projectSkill
- load-story-contextSkill
- manuscript-reviewSkill
- plan-chapterSkill
- prepare-exportSkill
- rewrite-chapterSkill
- sync-story-bibleSkill
- update-character-stateSkill
- update-timelineSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. About 0 are common, 9 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Use this skill when:
- Distinctive: line 69
Start simple and add complexity as needed:
- Very specific: line 71
For basic stories: Read only 1-1-content.md, 1-2-choices.md, and 1-3-knots.md
- Very specific: line 72
For branching narratives: Add 1-4-diverts.md and 1-5-branching-the-flow.md
- Very specific: line 73
For complex flows: Use weave syntax from 2-1-gathers.md and 2-2-nested-flow.md
- Very specific: line 74
For state tracking: Read 3-1-global-variables.md and 3-2-logic.md
- Distinctive: line 118
Read only what you need: Don't load all reference files at once.
- Distinctive: line 120
Start with examples: Look at the code examples in the reference files for the feature you need.
- Very specific: line 124
Use comments: Add // comments to explain complex logic.
- Very specific: line 136
Read: 5-1-basic-lists.md or 3-1-global-variables.md
- Very specific: line 150
Use INCLUDE to split content across multiple .ink files
- Distinctive: line 151
Keep related content in the same knot
- Distinctive: line 152
Use stitches for sub-sections within a knot
- Very specific: line 162
Choices: Use * for once-only, + for sticky (repeatable)
- Distinctive: line 202
If you need help with:
- Distinctive: line 203
Syntax errors: Check the relevant reference file for correct syntax
- Very specific: line 205
Choices not appearing: Check conditionals in 1-7-varying-choices.md
- Very specific: line 207
Complex examples: Look at 5-7-long-example-crime-scene.md
- Distinctive: line 211
Load references on demand: - only read the files you need for the current task.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ink Script Creation Skill
This skill helps you create interactive narrative scripts using the ink scripting language. Ink is designed for creating branching stories, interactive dialogues, and choice-based narratives.
When to use this skill
Use this skill when:
- Creating interactive fiction or choice-based stories
- Writing branching dialogue systems for games
- Building narrative-driven content with player choices
- Working with ink scripts (
.inkfiles) - The user mentions: knots, stitches, diverts, weaves, choices, or ink syntax
How to use this skill
1. Understanding the documentation structure
The ink documentation has been split into focused, modular files in the references/ directory. Only read the files you need for the current task to avoid filling the context.
Available reference files:
references/introduction.md- Basic overview of inkreferences/1-the-basics.md- Part 1 overviewreferences/1-1-content.md- Basic content and textreferences/1-2-choices.md- Creating player choicesreferences/1-3-knots.md- Organizing content into knotsreferences/1-4-diverts.md- Controlling story flowreferences/1-5-branching-the-flow.md- Branching techniquesreferences/1-6-includes-and-stitches.md- Sub-sections and file organizationreferences/1-7-varying-choices.md- Conditional and sticky choicesreferences/1-8-variable-text.md- Dynamic text contentreferences/1-9-game-queries-and-functions.md- Built-in queriesreferences/2-weave.md- Part 2 overview: Weave syntaxreferences/2-1-gathers.md- Gather pointsreferences/2-2-nested-flow.md- Nested choices and gathersreferences/2-3-tracking-a-weave.md- Labels and flow trackingreferences/3-variables-and-logic.md- Part 3 overviewreferences/3-1-global-variables.md- Global variablesreferences/3-2-logic.md- Mathematical and logical operationsreferences/3-3-conditional-blocks.md- If/else structuresreferences/3-4-temporary-variables.md- Temporary variablesreferences/3-5-functions.md- Creating functionsreferences/3-6-constants.md- Defining constantsreferences/3-7-advanced-game-side-logic.md- External functionsreferences/4-advanced-flow-control.md- Part 4 overviewreferences/4-1-tunnels.md- Tunnel syntax for subroutinesreferences/4-2-threads.md- Threading multiple story sectionsreferences/5-advanced-state-tracking.md- Part 5 overviewreferences/5-1-basic-lists.md- List basicsreferences/5-2-reusing-lists.md- Reusing list valuesreferences/5-3-list-values.md- List as numbersreferences/5-4-multivalued-lists.md- Lists with multiple valuesreferences/5-5-advanced-list-operations.md- Advanced list operationsreferences/5-6-multi-list-lists.md- Combining multiple listsreferences/5-7-long-example-crime-scene.md- Complete examplereferences/5-8-summary.md- Lists summaryreferences/6-international-character-support-in-identifiers.md- Unicode support
2. Progressive learning approach
Start simple and add complexity as needed:
- For basic stories: Read only
1-1-content.md,1-2-choices.md, and1-3-knots.md - For branching narratives: Add
1-4-diverts.mdand1-5-branching-the-flow.md - For complex flows: Use weave syntax from
2-1-gathers.mdand2-2-nested-flow.md - For state tracking: Read
3-1-global-variables.mdand3-2-logic.md - For advanced features: Consult Part 4 (tunnels/threads) or Part 5 (lists) as needed
3. Creating ink scripts
Basic structure
// Simple linear story
Hello, world!
This is a basic ink script.
-> ENDWith choices
You stand at a crossroads.
* [Go left] -> left_path
* [Go right] -> right_path
=== left_path ===
You head down the left path.
-> END
=== right_path ===
You take the right path.
-> ENDWith variables and logic
VAR health = 100
VAR gold = 50
=== start ===
You have {health} health and {gold} gold.
* {gold >= 30} [Buy a potion (30 gold)]
~ gold -= 30
~ health += 20
You feel stronger!
* [Continue] -> next_scene4. Best practices
- Read only what you need: Don't load all reference files at once. Check the list above and read only the relevant sections.
- Start with examples: Look at the code examples in the reference files for the feature you need.
- Test incrementally: Build your script step by step, testing each feature as you add it.
- Use comments: Add
//comments to explain complex logic. - Organize with knots: Break your story into logical sections using knots (
=== knot_name ===). - Use meaningful names: Choose descriptive names for knots, variables, and stitches.
5. Common patterns
Simple conversation
Read: 1-2-choices.md, 1-8-variable-text.md
State machine (e.g., door locked/unlocked)
Read: 5-1-basic-lists.md or 3-1-global-variables.md
Complex branching with rejoining
Read: 2-1-gathers.md, 2-2-nested-flow.md
Inventory system
Read: 5-4-multivalued-lists.md
Reusable dialogue
Read: 4-1-tunnels.md
6. File organization
For larger projects:
- Use
INCLUDEto split content across multiple.inkfiles - Keep related content in the same knot
- Use stitches for sub-sections within a knot
- Reference:
1-6-includes-and-stitches.md
Quick reference: Essential syntax
Content: Just write text
This is content that will be displayed.Choices: Use * for once-only, + for sticky (repeatable)
* [Choice text] Content after choice
+ [Repeatable choice] This can be chosen multiple timesKnots: Sections of content
=== knot_name ===
Content hereDiverts: Flow control
-> knot_name
-> ENDVariables: Track state
VAR health = 100
~ health -= 10
{health} // Display variableConditionals: Test conditions
{health > 50: You feel strong | You feel weak}
* {health > 30} [Fight] -> fightComments: Not displayed
// Single line comment
/* Multi-line
comment */Troubleshooting
If you need help with:
- Syntax errors: Check the relevant reference file for correct syntax
- Flow control: Review
1-4-diverts.mdand1-5-branching-the-flow.md - Choices not appearing: Check conditionals in
1-7-varying-choices.md - Variables not working: Review
3-1-global-variables.mdand3-2-logic.md - Complex examples: Look at
5-7-long-example-crime-scene.md
Remember
Load references on demand - only read the files you need for the current task. This keeps the context clean and focused.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

