Story Multi-Perspective Review
zenstory-ai/oh-story-claudecode
Reviews Chinese web-novel text with several reviewer agents in parallel, falling back to a single-agent pass, and reports structure, character, prose and setting problems with fixes.
Diagnose branching narrative problems. An agent skill from jwynia/agent-skills.
$ npx skills add jwynia/agent-skills --skill interactive-fiction -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jwynia/agent-skills interactive-fiction --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/creative/fiction/application/interactive-fiction .claude/skills/interactive-fiction && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "interactive-fiction" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/application/interactive-fiction into .claude/skills/interactive-fiction/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interactive-fiction", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/application/interactive-fictionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jwynia/agent-skills --skill interactive-fiction -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jwynia/agent-skills interactive-fiction --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/creative/fiction/application/interactive-fiction .agents/skills/interactive-fiction && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "interactive-fiction" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/application/interactive-fiction into .agents/skills/interactive-fiction/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interactive-fiction", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jwynia/agent-skills --skill interactive-fiction -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jwynia/agent-skills interactive-fiction --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/creative/fiction/application/interactive-fiction .cursor/skills/interactive-fiction && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "interactive-fiction" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/application/interactive-fiction into .cursor/skills/interactive-fiction/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interactive-fiction", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jwynia/agent-skills.git --path skills/creative/fiction/application/interactive-fiction--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jwynia/agent-skills --skill interactive-fiction -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jwynia/agent-skills interactive-fiction --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/creative/fiction/application/interactive-fiction .gemini/skills/interactive-fiction && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "interactive-fiction" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/application/interactive-fiction into .gemini/skills/interactive-fiction/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interactive-fiction", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jwynia/agent-skills interactive-fictionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jwynia/agent-skills --skill interactive-fiction -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/creative/fiction/application/interactive-fiction .github/skills/interactive-fiction && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "interactive-fiction" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/application/interactive-fiction into .github/skills/interactive-fiction/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interactive-fiction", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jwynia/agent-skills --skill interactive-fiction -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jwynia/agent-skills interactive-fiction --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/creative/fiction/application/interactive-fiction .opencode/skills/interactive-fiction && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "interactive-fiction" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/application/interactive-fiction into .opencode/skills/interactive-fiction/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interactive-fiction", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
interactive-fictionDiagnose branching narrative problems. An agent skill from jwynia/agent-skills.
Interactive Fiction is an agent skill from jwynia/agent-skills. Diagnose branching narrative problems. Use when choices feel meaningless, when branching is unmanageable, when player agency conflicts with authored story, or when interactive elements break narrative flow.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Writing & Content, covering Creative writing and fiction. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e02ec7e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Interactive Fiction loads about 4k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 1,949 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jwynia/agent-skills at commit e02ec7e, republished under its MIT licence (© jwynia). 1,949 words, ~4,050 tokens.
.claude/skills/interactive-fiction/SKILL.md (or your agent's skills folder).You diagnose problems in branching narratives and player-driven stories. Your role is to help writers balance meaningful player agency with coherent narrative.
Agency and authorship coexist.
The tension between player freedom and narrative coherence is a false dilemma. The best interactive fiction provides meaningful choices, authored emotional payoff, and constrained agency within a designed possibility space.
| Type | Interaction | Strengths | Weaknesses |
|---|---|---|---|
| Parser-based | Natural language commands | High freedom, puzzle-oriented | "Guess the verb" friction |
| Choice-based | Select from options | Constrained, easier to author | Risk of false choices |
| Hybrid (VN, RPG) | Multiple modes | Rich, persistent state | High authoring burden |
| Tabletop scenario | GM interprets | Dynamic, improvisational | Requires facilitator |
Symptoms: Choices don't matter. All paths converge immediately. Players stop caring about decisions. "It doesn't matter what I pick" feeling.
The Meaningful Choice Test:
Key Questions:
Interventions:
Symptoms: Exponential content requirements. Too many paths to write. Can't maintain quality across branches. Story structure collapsing under branch weight.
The Math Problem:
Key Questions:
Branching Solutions:
| Technique | Description | Trade-off |
|---|---|---|
| Foldback | Branches reconverge at key beats | May feel railroaded if obvious |
| Delayed consequences | Flags alter later content, not path | Same structure, different texture |
| Quality-based | Storylets unlock by accumulated state | Harder to ensure dramatic arc |
| Bottleneck | Multiple paths through fixed story beats | Preserves authored climaxes |
Interventions:
Symptoms: Players realize choices don't matter. Trust is broken. Marketed agency wasn't delivered. "I tried both options and got the same thing."
Key Questions:
When False Choices Are Acceptable:
When False Choices Are Problematic:
Interventions:
Symptoms: Full player freedom creates incoherent stories. Or: fixed story makes "interactive" feel pointless. Writer can't reconcile openness with craft.
The Tension:
Key Questions:
Resolution: Constrained Agency The author designs the possibility space. The player navigates within it.
Constraint Techniques:
Interventions:
Symptoms: Reading experience is mechanical. Choices interrupt rather than emerge from story. Pacing destroyed by decision points. More menu than narrative.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Each ending feels hollow. "Bad endings" punish rather than satisfy. One "true ending" invalidates others. Endings don't feel earned.
Key Questions:
Ending Types:
| Type | Description | Risk |
|---|---|---|
| Branch endings | Different conclusions by path | Unequal effort to achieve |
| Quality endings | Same ending, quality varies | Can feel like high score |
| Hidden endings | Secret conclusions | Completionist frustration |
The "True Ending" Problem: If one ending is canonical, others feel invalidated. Player optimizes rather than roleplays.
Interventions:
Symptoms: Can't track what player has done. Contradictions appear. Variables proliferate. Scene logic becomes unmaintainable.
Key Questions:
What State Should Produce:
State Types:
| Type | Purpose | Example |
|---|---|---|
| Plot flags | What happened | Met the mentor? |
| Relationship values | Character dynamics | Trust level |
| Resources | Economic/survival | Money, health |
| Qualities | Character development | Courage stat |
| Inventory | Objects/abilities | Key items |
Interventions:
Mostly linear, occasional choice moments. Choices affect scenes but not arc.
─────[choice]───────[choice]───────[choice]─────
│ │ │
variation variation variationBest for: Character-focused stories, expression over outcome.
Multiple paths but key beats are fixed:
┌─A─┐ ┌─D─┐
Start───┼─────Midpoint───┼─────Climax─────End
└─B─┘ └─E─┘Best for: Balancing agency with authored climaxes.
Early branches create different experiences, converge for endings:
┌──────Route A──────┐
Start ───┤ ├─── Endings (3-4)
└──────Route B──────┘Best for: Replayability with manageable scope.
Same events, player knowledge persists, choices informed by attempts.
Best for: Puzzle-stories, tragedy where ending is fixed but understanding deepens.
| Type | Description | Quality |
|---|---|---|
| Binary moral | Right vs. wrong | Too simple—avoid |
| Dilemma | Two goods in conflict | Best—no clear answer |
| Expression | Same outcome, different character | Valid if authentic |
| Strategic | Risk/reward calculation | Good for game-like IF |
| Discovery | Which path to explore | Acceptable for pacing |
Avoid clear right/wrong. Create dilemmas where reasonable people disagree. Make players choose between values, not optimize.
Choices are navigation puzzles with correct/incorrect paths. Fix: Make all paths valid experiences. Remove "wrong" answers.
Extensive apparent choice, no actual consequence. Fix: If you can't make it matter, don't pretend it does.
One ending is clearly best; player ignores roleplay to maximize. Fix: Make endings differently satisfying, not ranked.
Content locked behind specific paths creates exhausting replay. Fix: Make each playthrough satisfying. Unlockables enhance, not complete.
"Tell me about X / Y / Z" as menu system, not story. Fix: Integrate information into motivated scenes.
Player knows what to do but can't express it. Fix: Robust synonyms, clear feedback, gentle guidance.
When a writer presents IF problems:
Parser, choice-based, hybrid, or tabletop? Each has different solutions.
For key choices:
Based on identified state. Point to structure patterns, choice design principles.
| story-sense State | Maps to IF State |
|---|---|
| State 4.5: Plot Without Pacing | IF5 (Flowchart Feel) |
| State 5.75: Ending Doesn't Land | IF6 (Ending Problems) |
Writer: "Players keep saying my choices don't matter."
Your approach:
Writer: "I have 50 possible endings and can't write them all."
Your approach:
Writer: "I have a 'good' ending and several 'bad' endings."
Your approach:
This skill writes primary output to files so work persists across sessions.
Before doing any other work:
context/output-config.md in the projectexplorations/interactive/ or a sensible location for this projectcontext/output-config.md if context network exists.interactive-fiction-output.md at project root otherwiseFor this skill, persist:
| Goes to File | Stays in Conversation |
|---|---|
| IF state diagnosis | Clarifying questions |
| Branch structure notes | Discussion of specific choices |
| Choice quality assessment | Writer's design decisions |
| Complexity recommendations | Real-time feedback |
Pattern: {project}-if-{date}.md
Example: adventure-game-if-2025-01-15.md
Your role is diagnostic: identify the problem, explain why it's a problem, and guide toward solutions. The writer designs the experience.
Interactive fiction is not "a story with choices added." It's a designed possibility space where author and player collaborate to create narrative. The author controls the space; the player navigates it.
The most common IF failure is treating choices as interruptions to story rather than expressions of it. The fix is integration: choices should emerge from dramatic moments, not pause them. Each path should be worth experiencing, not a wrong turn to be avoided.
When IF works, players feel both that their choices mattered and that they experienced a crafted narrative. This isn't a contradiction—it's the art form.
© jwynia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/creative/fiction/application/interactive-fiction of jwynia/agent-skills.
Open the folder on GitHubat commit e02ec7e
Interactive Fiction next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Interactive Fiction this skilljwynia/agent-skills | 170 | — | ~4k | Automated safety check: Pass | MIT | |
| Story Multi-Perspective Reviewzenstory-ai/oh-story-claudecode | 7.4k | 3 repos | ~3k | Automated safety check: Pass | MIT | |
| Short Web Fiction Trend Scanzenstory-ai/oh-story-claudecode | 7.4k | 2 repos | ~1.2k | Automated safety check: Pass | MIT | |
| InkOS Creative HarnessNarcooo/inkos | 10k | 1 repos | ~1.1k | Automated safety check: Pass | AGPL-3.0 | |
| Novel Arteternityspring/shuohao-skills | 4.3k | — | ~1.1k | Automated safety check: Notes | Apache-2.0 | |
| SepiaNanako0129/sepia | 3.1k | — | ~3.6k | Automated safety check: Pass | MIT |
zenstory-ai/oh-story-claudecode
Reviews Chinese web-novel text with several reviewer agents in parallel, falling back to a single-agent pass, and reports structure, character, prose and setting problems with fixes.
zenstory-ai/oh-story-claudecode
Scans popular short web-fiction rankings on Chinese platforms such as Dianzhong and Heiyan to surface trending emotional hooks, themes and topic candidates with an expiry warning.
Narcooo/inkos
Drives long-form fiction, scripts, storyboards, interactive films and long-document translation through InkOS, with every change made by a typed action.
eternityspring/shuohao-skills
给 AI 短剧出美术设定集(场景 + 叙事道具):场景的设计意图、一致性锚点、光照时段变体、 空景提示词;道具的戏剧功能、状态变体、尺度参照、白底无手提示词。
Nanako0129/sepia
Make AI-generated writing read as human-written, in fiction and in professional prose.
zenstory-ai/oh-story-claudecode
Routes a Chinese web-novel writing request to the matching tool in a 13-skill toolbox, covers author habit memory, and can launch a local dashboard for browsing a project.
jwynia/agent-skills
Diagnose devcontainer configuration problems and guide development environment setup.
jwynia/agent-skills
Create distinctive, production-grade frontend interfaces with high design quality.
jwynia/agent-skills
Orchestrate agile development workflows for Gitea repositories using the tea CLI.
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot.
jwynia/agent-skills
Develop AI agents, tools, and workflows with Mastra v1 Beta and Hono servers.
jwynia/agent-skills
Create and manipulate PowerPoint PPTX files programmatically.
Categories
Diagnose branching narrative problems. An agent skill from jwynia/agent-skills. Interactive Fiction is an agent skill from jwynia/agent-skills. Diagnose branching narrative problems.
Interactive Fiction fits situations like: choices feel meaningless; branching is unmanageable; player agency conflicts with authored story; interactive elements break narrative flow.
Run `npx skills add jwynia/agent-skills --skill interactive-fiction -a claude-code`. Or copy the skill folder (skills/creative/fiction/application/interactive-fiction in jwynia/agent-skills) into .claude/skills/interactive-fiction in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jwynia/agent-skills --skill interactive-fiction -a codex`. Or copy the skill folder (skills/creative/fiction/application/interactive-fiction in jwynia/agent-skills) into .agents/skills/interactive-fiction in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jwynia/agent-skills --skill interactive-fiction -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/interactive-fiction, .gemini/skills/interactive-fiction, .github/skills/interactive-fiction and .opencode/skills/interactive-fiction in your project.
SKILL.md names no scripts, command-line tools or credentials: Interactive Fiction is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Interactive Fiction is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Interactive Fiction: Story Multi-Perspective Review (zenstory-ai/oh-story-claudecode, 7.4k stars), Short Web Fiction Trend Scan (zenstory-ai/oh-story-claudecode, 7.4k stars), InkOS Creative Harness (Narcooo/inkos, 10k stars) and Novel Art (eternityspring/shuohao-skills, 4.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jwynia (a GitHub user) maintains it in jwynia/agent-skills, which has 170 GitHub stars. The repository holds 111 skills in this directory. The repository was last updated on February 24, 2026.
Source: jwynia/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.