2026-09-14 02:10:05 -07:00

English | 中文

oh-story-claudecode

Project page: https://zenstory.ai/oh-story · All ZenStory AI projects: https://zenstory.ai/projects · Glossary: https://zenstory.ai/glossary

A web novel writing skill pack with built-in adapters for Claude Code, Google Antigravity, OpenCode, ZCode, OpenClaw, Codex CLI, and Reasonix. Web AI / agent environments that can read project files can use the generic skills path. Covers the full pipeline for long-form and short-form Chinese web novels: trend scanning, deconstruction, writing, AI tone removal, and cover generation.

Start with Your Writing Task

This repository is a skill pack installed in a compatible agent host. It is separate from the hosted ZenStory writing workbench: project files, settings and progress do not sync automatically between the two products. Use these guides to define the task before running it in your installed host:

What you want to do Practical guide Focus
Understand writing skills first Prompts, skill packs, plugins and MCP Choose the writing job before the host and workflow
Import an existing novel Import 1020 chapters and continue Review inferred structure; treat the manuscript as evidence
Keep a long novel consistent Separate character knowledge, promises and clues Do not turn future plans into past events
Turn an outline into a chapter Write plot specifications as visible change Advance through action, choice, cost and result
Revise formulaic prose Reduce "AI-sounding" prose with concrete edits Improve the reading experience, not a detector score
Preserve author voice in continuation Separate voice choices from book facts Use authorized samples without copying phrases

Direct answers to common questions

These documents answer the questions writers ask most, describing the mechanism as shipped in the current version:

Question Document
How do I stop an AI writing agent from breaking character over 100+ chapters? Keep an AI-written novel consistent over 100+ chapters
What can Claude Code skills do besides code? Claude Code skills that are not for coding: a fiction-writing pack as the worked example
How do I remove AI flavor from prose? 去AI味的具体做法 (Chinese)
How do I scan charts and deconstruct bestsellers? 扫榜和拆文的自动化做法 (Chinese)

Your First Request after Setup

First follow the instructions below to install and run setup in your chosen host. Choose the brief that fits your current task and replace the 〈placeholders〉. These are not installation commands or a required sequence; review the output, and do not expect automatic synchronization with the hosted ZenStory workbench.

  1. Start a new book

    I want to start a new 〈genre/premise〉 book. First separate fixed facts in my material from decisions that remain open. Plan only a bounded opening and deliver the central conflict, viewpoint/information-release limits, changes across the first three chapters and open decisions. Do not draft prose automatically; leave genre tradeoffs, character motives and the long-term direction for me to confirm.

  2. Import an existing manuscript

    Organize this manuscript as a continuable project. Chapters 1〈N〉 are complete; 〈filename〉 is a partial chapter 〈N+1〉. Preserve the source prose, do not overwrite complete chapters, and do not count the fragment as a complete chapter, and separate inferred settings for confirmation. First deliver the detected range, reconstructed facts, conflicts/ambiguities and decisions requiring my confirmation for review; do not continue the story yet.

  3. Fix an unsatisfactory passage

    This passage reads as 〈vague/repetitive/over-explained〉. First name the specific reading problem while preserving story facts, character knowledge and unrevealed information. Deliver only a proposed revision of this passage, a before/after comparison and reasons—not a book-wide rewrite. I will decide which suggestions to accept.

Core Approach

Tropes = deterministic emotional payoff

Professional authors follow a three-step method:

  1. Scan — analyze trending charts, identify genres, characters, and entry points.
  2. Deconstruct — break down pacing and plot materials, build a personal module library.
  3. Commercialize — learn and apply hooks, payoff density, expectation management.

Built around four pillars: reverse-engineering hits · plot modularization · layered state management · human-AI collaboration.

Latest release: v0.7.10 (2026-09-09). See CHANGELOG.md and Releases; rerun /story-setup and start a new session after upgrading. Antigravity deployment is covered in the usage notes below.

Pipeline Overview

flowchart LR
    classDef entry fill:#f0f0f0,color:#333,stroke:#999,stroke-width:1px
    classDef phase fill:#e8f4fd,color:#1a1a2e,stroke:#4a9be8,stroke-width:1px
    classDef final fill:#fce4ec,color:#333,stroke:#e57373,stroke-width:1px

    entry_l{{"Long-form Author"}}:::entry
    entry_s{{"Short-form Author"}}:::entry
    entry_r{{"Has an Idea"}}:::entry
    entry_i{{"Existing Novel"}}:::entry

    subgraph S0 ["  Setup"]
        setup["/story-setup"]:::phase
    end

    subgraph S1 ["  Trend Scanning"]
        direction TB
        scan_l["Long-form Scan"]:::phase
        scan_s["Short-form Scan"]:::phase
    end

    subgraph S2 ["  Deconstruction"]
        direction TB
        analyze_l["Long-form Deconstruction"]:::phase
        analyze_s["Short-form Deconstruction"]:::phase
        import_l["Existing Novel Import"]:::phase
    end

    subgraph S3 ["  Writing"]
        direction TB
        write_l["Long-form Write"]:::phase
        write_s["Short-form Write"]:::phase
    end

    subgraph S4 ["  Polish"]
        deslop["De-AI-ify"]:::final
    end

    entry_l --> setup
    entry_s --> setup
    setup --> scan_l
    setup --> scan_s
    scan_l --> analyze_l
    scan_s --> analyze_s
    analyze_l --> write_l
    analyze_s --> write_s
    entry_r -.->|Skip Prep| write_l
    entry_r -.->|Skip Prep| write_s
    entry_i -.->|Setup Recommended| setup
    setup -.->|Reverse Import| import_l
    import_l -.->|Continue Writing| write_l
    write_l --> deslop
    write_s --> deslop

Installation

Option 1 Tell Claude Code / Antigravity / OpenCode / ZCode / OpenClaw / Codex / Reasonix, or another Web AI / agent platform that can import a GitHub repo or skill:

Install this skill https://github.com/zenstory-ai/oh-story-claudecode

To upgrade, repeat the same instruction.

Option 2 Command line:

npx skills add zenstory-ai/oh-story-claudecode -y -g

-g installs globally (available in every directory); drop -g to install only into the current directory. Re-run the same command to update.

This standalone npx skills installation path does not use the Claude Code or ZCode marketplace, so the plugin identity change below does not affect it.

On Windows you may occasionally see an ENOENT ... mkdir error while the run still ends with Done!. That means a skill was only partially installed. If a whole subdirectory of story-setup's reference bundle is missing, /story-setup reports an incomplete reference bundle; other forms of partial install may go unreported. Either way, re-run the same install command to fix it.

To diagnose an installed environment, ask your agent to use story-setup to check your writing environment, or invoke the skill with the check argument. It checks the target CLI's deployment checklist and reports next steps without changing the project. Repairs use the existing setup workflow.

Claude Code / Antigravity / Codex / ZCode / OpenCode / OpenClaw / Reasonix / Web AI usage notes

Claude Code users: The marketplace remains named oh-story-skills, but now contains one oh-story bundle. Claude Code discovers all 13 root Skills from that bundle:

claude plugin marketplace add https://github.com/zenstory-ai/oh-story-claudecode
claude plugin install oh-story@oh-story-skills

After installation, use /oh-story:story-setup or /oh-story:story dashboard. Existing plugin users should follow the migration guide. This identity migration began with a same-version fix in v0.7.9; users still on the old plugin identities should refresh the marketplace and reinstall explicitly. See the Claude Code plugin reference for commands.

Antigravity users: Run story-setup from /skills or by natural language and select target_cli=antigravity. Inside the current writing project it updates only 13 known .agents/skills/ directories, 7 known .agents/agents/agent-name/agent.md definitions (agent-name stands for the actual name), .agents/rules/oh-story.md, two .agents/hooks/ runtime files, and the managed oh-story group in .agents/hooks.json. Other user Skills, Agents, Rules, Hooks, and hook groups are preserved; the deployer itself never writes ~/.gemini/. Skills are real project-local directories. If .agents/skills is already a symlink, setup explains the git-diff impact and requires explicit migration approval; without approval it never writes through the link. Hooks require node on PATH. Open a fresh conversation after deployment, then smoke-test both the IDE and interactive agy. agy 1.1.22 -p is currently outside the supported surface: each headless process may scan the workspace before silent authentication finishes, then fail to reload custom agents and hooks. The result can be a skill fallback, subagent not found, or ordinary model output under ~/.gemini/antigravity-cli/scratch/. For CLI writing, start interactive agy from the project and confirm /skills, /agents, and /hooks have discovered oh-story before sending the task; check the scratch directory for accidental story output after testing.

Codex users: Use it in-place: Codex scans $REPO_ROOT/.agents/skills (a symlink to skills/) and discovers all 13 skills; invoke via $story, $story-setup, or /skills. On Windows, enable git core.symlinks=true or the symlink breaks — then use the $story-setup deployment below.

After $story-setup deploys into a writing project, it creates .codex/agents/*.toml, .codex/hooks.json, .codex/hooks/{story_codex_hook.py,run-story-hook.sh,run-story-hook.cmd}, and .codex/skills/story-setup/references/agent-references/. Trust the project .codex/ layer, review/trust hooks in /hooks, and open a fresh Codex session so custom agents load.

ZCode users: Add this repository in Plugin Management and install oh-story to access all 13 Skills/Commands. The marketplace may appear as oh-story-zcode (root catalog) or oh-story-skills (Claude catalog); choose one, since both contain the same bundle. For older installs with multiple entries, follow the migration guide. With target_cli=zcode, $story-setup deploys .zcode/skills/, .zcode/commands/, and .zcode/hooks/story_zcode_hook.js, then safely merges .zcode/config.json and the root AGENTS.md. Hooks require node on PATH. ZCode 3.3.4 does not execute project/plugin custom agents and has no PreCompact or SessionEnd; affected workflows report a solo/direct fallback, while SessionStart restores context after compaction. See the official ZCode plugin documentation.

OpenCode users: After global install, opencode auto-discovers skills from ~/.claude/skills/; trigger story-setup with natural language on first use (e.g., "use story-setup to deploy the web novel environment"), then exit and re-enter with opencode -c for slash commands to work. Some hook behaviors differ from Claude Code (session-start / session-end / compact, etc.) — see the OpenCode section in CONTRIBUTING.md.

OpenClaw users: Current support is skills-only. OpenClaw can discover the 13 story skills from workspace skills/, .agents/skills, ~/.agents/skills, ~/.openclaw/skills, or configured extra skill roots. SKILL.md files use OpenClaw-compatible single-line name / description plus single-line JSON metadata.openclaw. When story-setup targets OpenClaw, it copies the skills into project skills/ and writes an OpenClaw AGENTS.md; agents/hooks are intentionally deferred, so outline-before-prose guards are soft skill checks rather than runtime enforcement. If new skills do not appear immediately, open a fresh OpenClaw session or wait for the skills watcher to refresh.

Reasonix users: Current support is Skills + a native plugin manifest. Reasonix natively scans project skill roots (.agents/skills etc., a symlink to skills/) and discovers all 13 skills — verify with reasonix doctor capabilities; you can also reasonix plugin install via the root reasonix-plugin.json. When story-setup targets target_cli=reasonix, it copies the skills into project skills/ and writes a Reasonix AGENTS.md; hooks/custom agents are intentionally deferred, so skills needing specialist agents fall back to solo/direct. If Windows symlinks are disabled, use the native plugin instead.

Generic Web AI / agent users: If your platform can read a GitHub repo or project files, have the agent read skills/*/SKILL.md plus the relevant references/. For local project copies, run story-setup with target_cli=generic; it only writes a generic AGENTS.md and skills/. Without this project's hooks/custom agents, checks run as skill-level soft constraints or solo/direct fallbacks.

OpenClaw / Reasonix / generic paths need manual cleanup of nested directories: these three keep their skill copy inside the project's skills/, so re-running /story-setup executes that project-local copy and the automatic cleanup never reaches them. If the project contains skills/story-setup/references/agent-references/agent-references/ (possibly nested several levels deep) or skills/story-setup/skills/, delete them by hand. To update the skill text itself, reinstall this project and overwrite the 13 skill directories under the project's skills/ from the new package.

After updating, if a project has already run /story-setup, re-run /story-setup from the project root to sync hooks / agents / references. Per-version changes are in CHANGELOG.md and Releases.

Multi-agent collaboration needs setup + a fresh session: the 7 specialist agents (story-architect, narrative-writer, consistency-checker, etc.) are written into .claude/agents/ by /story-setup, .codex/agents/*.toml by $story-setup, or generated into .agents/agents/agent-name/agent.md (agent-name stands for the actual name) by Antigravity story-setup. Antigravity calls them with invoke_subagent and the matching TypeName; if custom subagents are unavailable, each skill reports a solo/direct fallback. Run /story-review in the fresh session — Effective Mode: full/lean means agents registered, while Fallback: ... -> solo means they are unavailable.

Import and continuation order: run /story-setup from the writing-project root first to deploy hooks, agents, and AGENTS.md; start or refresh the session, then run /story-import for the existing novel and continue with /story-long-write 日更 or /story-long-write 写第N章. You can also run /story-import directly; if setup is missing, it offers to run setup first or continue with a serial import.

Author preferences persist across sessions: tell /story to remember a writing habit; the write counts as successful only when it returns an Author Memory Receipt. Normal writing queries only relevant confirmed items with a hard 2 KB output cap, rather than injecting the full profile, candidates, and history into the prose prompt. This memory stays separate from per-book continuity tracking, and current instructions, book settings, and hard gates always take priority.

Skills

Skill Trigger Description
story-setup /story-setup / $story-setup Environment setup — Claude/Antigravity/OpenCode/Codex/ZCode/OpenClaw/Reasonix plus generic (safe merge)
story /story / $story / /story dashboard Toolbox router, author-preference management, and local deconstruction/project dashboard
story-long-write /story-long-write Long-form writing — outline building, character design, prose output
story-long-analyze /story-long-analyze Long-form deconstruction — Golden First 3 Chapters, payoff design, pacing analysis
story-long-scan /story-long-scan Long-form trend scan — Qidian/Fanqie/Jinjiang market trends
story-short-write /story-short-write Short-form writing — emotion design, twist crafting, polish & delivery
story-short-analyze /story-short-analyze Short-form deconstruction — story core, structure, emotional arc, reversal design, writing techniques, resonance analysis
story-short-scan /story-short-scan Short-form trend scan — Zhihu Yanyan/Fanqie short-form trending data
story-deslop /story-deslop De-AI-ify — detect and remove AI writing traces
story-import /story-import Reverse import — parse existing novels into standard project structure
story-review /story-review Multi-perspective review — 4-agent adversarial review + Fanqie/Qidian/Zhihu scoring rubrics
story-cover /story-cover Cover generation — title/genre analysis + GPT-Image-2 via Codex included usage or API fallback
browser-cdp /browser-cdp Browser control — CDP protocol for scraping with reusable login sessions

story-deslop uses local prose linting: blocking applies only to deterministic style/punctuation issues, while other findings require read-through judgment; external detectors such as Zhuque are self-check references, not replacements for human review.

Natural language also triggers: 帮我开书 ("help me start writing") → story-long-write, 这篇太AI了 ("this is too AI-ish") → story-deslop, 把我的书导进来 ("import my book") → story-import, 打开工作台 ("open the dashboard") → story dashboard, 记住我的写作习惯 ("remember my writing habits") → story author memory, 沈栀现在什么状态 ("what's Shen Zhi's current status") → story-explorer.

Story Dashboard

Run /story dashboard ($story dashboard in Codex) to open the local writing desk. Browse deconstruction libraries and long/short project trees, then search, preview Markdown, edit text, save with conflict protection, or confirm a file deletion. It listens only on 127.0.0.1 and never uploads story content.

OH STORY local writing desk

Cover generation example

Cover example — Sword Dao Supreme

Deconstruction demo — Coiling Dragon

Full output from /story-long-analyze deep mode on the first 23 chapters of Coiling Dragon:

demo/拆文库/盘龙/
├── 概要.md              # Novel overview + chapter index
├── 拆文报告.md           # 5-dimension scoring + pacing analysis + takeaways
├── 文风.md              # Benchmark voice: sentence rhythm, punctuation, dialogue subtext, emotion pacing
├── 章节/
│   ├── 第1章_深度拆解.md … 第3章_深度拆解.md  # One deep analysis per Golden-3 chapter
│   └── 第1章_摘要.md … 第23章_摘要.md          # One summary file per chapter
├── 角色/
│   ├── 林雷.md           # Protagonist full profile
│   ├── 霍格.md           # Core supporting
│   ├── 希尔曼.md         # Core supporting
│   ├── 希里.md           # Functional character
│   ├── 德林柯沃特.md      # Core supporting
│   ├── 沃顿.md           # Functional character
│   └── 角色关系.md        # Relationship network
├── 剧情/
│   ├── 故事线.md          # Framework + 4 plotlines + 2 storylines
│   ├── 强者过境与魔法启蒙.md etc.  # Five scene-level plot units
│   ├── 节奏.md            # Pacing + key-info progression + emotional trigger eruption rhythm
│   └── 情绪模块.md        # Reader needs + emotional engine + reusable writing modules
└── 设定/
    ├── 世界观/
    │   ├── 背景设定.md    # Core rules + special settings
    │   ├── 力量体系.md    # Battle qi + magic + ranks
    │   ├── 地理.md        # Andaluxia + Yulan Continent
    │   └── 金手指.md      # Panlong Ring + Delin Cowort
    └── 势力/
        └── 巴鲁克家族.md  # Baluk family (dragon-blood lineage)

Long-form deconstruction also produces 文风.md, plus 剧情/节奏.md (pacing, key-info progression, emotional trigger eruption rhythm) and 剧情/情绪模块.md (reader needs, emotional engine, reusable writing modules); daily writing consumes these through 对标/{书名}/剧情/ to keep voice, pacing, and emotion modules close to the benchmark.

Deconstruction demo — Once I Hid My Love (曾将爱意私藏, short-form)

/story-short-analyze deconstructing the short story 《曾将爱意私藏》 (~8,500 chars, win-back / "faked-death" genre):

demo/拆文库/曾将爱意私藏/
├── 原文/原文.txt        # Source backup
├── 拆文报告.md          # Story core + 5-dim scores + 6-facet payoff + cognitive reversal + 9-layer resonance
├── 情节节点.md          # 54 plot points (source quotes + emotion markers 9~+9)
├── 写作手法.md          # POV / dialogue / info-gap / object-hook — 11 techniques
└── _meta.json           # structure_counts (Phase 7 gate basis)

Short-form deconstruction outputs 拆文报告 / 情节节点 / 写作手法; downstream /story-short-write writes a new same-genre story from them.

Import demo — 让你管账号,你高燃混剪炸全网 (long-form continuation project)

Run /story-setup first, then use /story-import to reverse-build the author's already-published first 20 chapters (~37k Chinese chars) into a continuation-ready writing project. Continue with /story-long-write 日更 or /story-long-write 写第21章:

demo/长篇/让你管账号,你高燃混剪炸全网/
├── 正文/        Chapters 001020 (published source text)
├── 大纲/        大纲.md · 卷纲_第1卷.md · 细纲_第001020章.md (one file per chapter)
├── 设定/        角色/ (6 character files) · 世界观/{background · cheat-system}
│                关系.md · 题材定位.md · 文风.md
└── 追踪/        _tracking-state.json · 上下文.md · 伏笔.md · 逐章记录/
                 角色状态/{角色名}.md · 时间线/{作者真相.md · 读者已知.md}

Per-chapter extraction (events / characters / settings / foreshadowing / timeline) is reverse-engineered into a continuation bible, so the author seamlessly continues from chapter 21.

Agent System

Writing skills internally coordinate 7 specialized agents:

Agent Model Role
story-architect Opus Story architecture — genre positioning, outline structure, hook/twist design, emotion arcs
character-designer Sonnet Character design — profiles, voice, motivation chains, dialogue writing
narrative-writer Sonnet Narrative writer — prose writing, de-AI-ify, format compliance
consistency-checker Haiku Consistency check — fact conflict scanning, foreshadowing tracking, S1-S4 grading reports
story-researcher Sonnet Research — CDP search + full-text extraction, multi-source cross-verification, structured reference files
story-explorer Haiku Story query — read-only character/foreshadowing/setting/progress lookup, quick context loading
chapter-extractor Haiku Chapter extraction — summaries, plot points, character mentions, parallel deconstruction unit

Agents load writing theory from references/ on demand (character design, dialogue techniques, twist toolbox, etc. — 100+ methodology files), without reserving context window space.

Automation Hooks

/story-setup deploys 8 automation hooks for Claude Code:

Hook Trigger Function
session-start.sh Session start Display branch, progress snapshot, deconstruction status
session-end.sh Session end Log session to 追踪/session-log.txt
detect-story-gaps.sh Session start Detect setting gaps, missing outlines, foreshadowing breaks
pre-compact.sh Before context compaction Save progress snapshot path and line-count summary
post-compact.sh After context compaction Prompt to read progress snapshot for context recovery
validate-story-commit.sh git commit Check hardcoded attributes, setting required fields (warning only, non-blocking)
guard-outline-before-prose.sh Before writing prose (Write/Edit) Blocks first creation of a chapter/story body when its 细纲/小节大纲 is missing (blocking) — enforces outline-first
check-prose-after-write.sh After writing prose (Write/Edit) Lightly scan for truncation, leaked workflow terms, deterministic toxic phrasing, and word-count debt (advisory)

Project File Structure

A long-form novel can easily reach hundreds of thousands of words across hundreds of chapters. Setting conflicts, broken foreshadowing, timeline inconsistencies — relying on memory alone is a recipe for disaster.

The file system separates settings, outlines, prose, and tracking into independent dimensions. The conversation handles creation; the file system handles memory.

Workspace-level author memory stays separate from any one book:

.story/作者记忆/
├── _author-memory-state.json  # Single structured authority
├── 作者画像.md               # Confirmed preferences used in creation
├── 待确认.md                 # Inferences, repeated corrections, conflict candidates
└── 变更记录.md               # Auditable replacement and withdrawal history

Long-form:

{Book Title}/
├── Settings/
│   ├── World/              # Background, power systems, etc. — one file per topic
│   ├── Characters/         # One file per character (Shen_Zhi.md, Lu_Yanzhi.md)
│   ├── Factions/           # One file per faction/organization (Tianji_Pavilion.md)
│   ├── Relationships.md    # Character relationship map
│   └── Genre_Positioning.md # Core trope + benchmark analysis
├── Outline/
│   ├── Outline.md          # Full-book volume-level structure
│   ├── Volume_1.md         # One per volume: payoff pacing + emotion arc + character arc + foreshadowing + twists
│   ├── Chapter_001.md      # One per chapter: summary + multi-line plot + relationships/order + hooks
│   └── ...
├── Prose/
│   ├── Chapter_001_Title.md
│   └── ...
├── Benchmark/                # Benchmark reference (structured subdirs synced from deconstruction)
│   └── {Benchmark Book}/
│       ├── Source/              # Benchmark book original chapters
│       ├── Characters/         # Structured character profiles (synced from analyze)
│       ├── Plotlines/          # Structured plot lines/pacing/emotion modules (synced from analyze)
│       ├── Settings/           # Structured world settings (synced from analyze)
│       ├── 文风.md              # Benchmark voice used before daily writing
│       └── Report.md            # Analyze skill output
├── Tracking/                # File-first continuity state
│   ├── _tracking-state.json # Single structured authority (not loaded into prose prompts)
│   ├── Context.md           # Derived hot context (7 fixed sections, ≤12 KB)
│   ├── Chapter_Records/     # Compact continuity record / revision overlay (≤3072 bytes)
│   ├── Character_Status/    # Derived snapshot per core character
│   ├── Foreshadowing.md     # Derived current foreshadowing view
│   └── Timeline/            # Derived author-truth and reader-known views
├── References/              # story-researcher output
│   └── {topic}.md           # Split by research topic

Short-form file structure:

短篇/{Title}/
├── 正文.md                  # Final draft
├── 小节大纲.md              # 8-section structure + emotion curve
└── 拆文库/                  # If a reference novel exists (analyze output)
    └── {Book}/
        ├── 拆文报告.md
        ├── 情节节点.md
        └── 写作手法.md

Deconstruction Library: Deconstruction skills save structured outputs (characters, plotlines, settings, chapters) under 拆文库/{Book Title}/ at project root; long-form plot output includes 节奏.md and 情绪模块.md. Writing skills consume these assets through 对标/{书名}/剧情/ and related benchmark subdirectories, or automatically fall back to reading from the deconstruction library.

.active-book: a text file at project root containing the active book's relative path (for example, 长篇/My Novel). Hooks and writing skills use it to locate the current project.

Knowledge Base

Each skill includes a references/ knowledge base loaded on demand to keep context lean.

Expand the per-skill knowledge-base topic list
Topic Contents Skill
Outline Layout Five-step outline method · Story structure levels · Node design · Progression design long-write
Opening Design Opening patterns · First 500 words · Golden First 3 Chapters long-write / short-write
Character Design Character profiles · Character extraction · Relationship mapping · Motivation chains · Ensemble casts long-write / short-write / short-analyze
Hook Techniques 13 chapter-end hooks · 7 chapter-start hooks · Paragraph-level hooks · Suspense orchestration long-write / short-write / short-analyze
Emotion Design 6 arc templates · Expectation management · Genre track strategies long-write / short-write
Genre Frameworks Long-form 8-node · Short-form compressed 3-act · 8 genre opening templates long-write / short-write / short-analyze
Dialogue Techniques Rhythm · Subtext · Information control · Dialogue pattern database long-write / short-write
Twist Toolbox Types · Timing · Misdirection base paths long-write / short-write
Style Modules Dialogue · Combat · Mind games · Cinematic writing · Face-slapping · Plain description long-write
Advanced Techniques 4-step micro-outline · Climax reverse-engineering · Dual-thread structure · AB interweaving long-write
De-AI-ify Prevention · 3-pass de-AI method · Rewrite examples · Banned word list deslop / long-write / short-write
Quality Checks General · Long-form specific · Short-form specific · Toxic trope detection long-write / short-write / short-analyze
Writing Formulas 21 genre formulas · Three-flip-four-shock (escalating reversal) · Romance four-stage short-write / short-analyze
Female-oriented Writing Female reader preferences · Emotional description · Romance patterns · Benchmark analysis short-write
Deconstruction Methods Golden First 3 Chapters · Emotion curves · Structure breakdown · Zhihu style analysis long-analyze / short-analyze
Short-form Methodology Story core · Plot nodes · Explosive point analysis · Writing techniques · Rhythm analysis · Resonance analysis · Character classification · Platform fit short-analyze
Deconstruction Examples Full case breakdowns · Template output short-analyze
Reader Profiles 9-dimension profiles · Target reader analysis long-scan
Market Data Genre trends · Platform characteristics · Collection formats · Submission guides long-scan / short-scan
Cover Styles 10 genre visual styles · Color composition · Prompt templates story-cover
Adversarial Review Multi-perspective review · Scoring rubrics · Toxic trope detection story-review

Supported Platforms

Long-form Qidian (起点中文网) · Fanqie Novels (番茄小说) · Jinjiang (晋江文学城) · Qimao (七猫小说) · Ciweimao (刺猬猫)

Short-form Zhihu Yanyan (知乎盐言故事) · Fanqie Short-form (番茄短篇) · Qimao Short-form (七猫短篇)

Real output samples are in demo/: short-form deconstruction 《曾将爱意私藏》 · long-form deconstruction 《盘龙》 · long-form continuation project 《让你管账号,你高燃混剪炸全网》 · cover sample 《剑道独尊》.

I built this skill pack to help me through a job-hunting transition 😂, and I hope it can help others too.

FAQ

Does it work in Codex, Google Antigravity or OpenCode, or only in Claude Code?

oh-story-claudecode ships adapters for Claude Code, Google Antigravity, OpenCode, ZCode, OpenClaw, Codex CLI and Reasonix. Codex discovers the 13 skills by scanning .agents/skills in the repo and invokes them with $story-setup; in Antigravity run story-setup via /skills or natural language and choose target_cli=antigravity. Any Web AI or agent environment that can read project files can use the generic skills path.

Do I need a GPU or to host a model?

No. oh-story-claudecode is a set of skills that runs inside the coding agent you already use, so the writing model is that agent's model; only deterministic check scripts (Node / Python) run locally. The one exception is story-cover, which calls GPT-Image-2 (Codex built-in quota or an API fallback).

Chapter lengths are inconsistent or the word count is off. What do I do?

Since v0.7.7 long-form prose uses a single machine-counted length metric: every chapter blueprint must state a valid word target, and a missing target stops the run instead of falling back to 3,000; under-length chapters are not padded with new plot, and over-length chapters get at most one compression pass. check-prose-after-write.sh flags length debt after each write. Rerun /story-setup and start a new session after upgrading an older project.

After de-AI editing, detectors such as Zhuque still flag the text as AI. Why?

story-deslop (/去AI味) is a writing lint: it deterministically detects and removes known AI sentence patterns, punctuation habits and degeneration artifacts. Its target is how the prose reads, not evading detectors. External detectors are a self-check reference only, and oh-story-claudecode makes no promise of passing any AI detector. This concrete revision guide separates vague emotion, repeated syntax, unearned commentary and over-explaining while preserving the scene's job and the author's facts.

I already have part of a novel written. Can I import it and continue?

Yes. Run /story-setup in the project root, start or refresh a session, run /story-import to reverse-parse the existing novel into the standard project layout, review its inferences, then continue with /story-long-write 日更 or /story-long-write 写第N章. The import-and-continue guide explains why manuscript evidence should take priority over model guesses.

How do I reduce forgotten clues or characters knowing answers too early in a long continuation?

Before continuing, separate objective story facts, character knowledge and what readers have seen; carry only the relevant current state and unfinished commitments into the chapter. The long-novel continuity guide gives a three-chapter example. Structured records can help organize the handoff, but do not promise error-free writing over hundreds of chapters.

My chapter outline is complete. Why does the prose still summarize the setup?

Treat the outline as a specification for what must change, then turn its goal, obstacle, evidence, choice and cost into actions and results the viewpoint character can perceive. The outline-to-chapter guide is an editorial example, not a recorded tool run or model-quality claim.

How do I keep my voice without carrying plot facts over from another book?

Describe the dimensions of a short sample you wrote or may use, separately from the current book's facts; sample inference does not automatically establish an enduring preference. The author-voice guide explains how to resolve the current request, book style and author preferences; it does not promise automatic style matching or encourage copied phrases.

On Windows the install prints ENOENT ... mkdir but ends with Done. Is that normal?

It means some skills were not fully installed. Rerun the same install command, with or without the error, and it repairs itself; if a reference-material directory is missing, /story-setup reports the reference pack as incomplete. Codex users on Windows also need core.symlinks enabled in git.

What do I do after upgrading?

Rerun /story-setup and start a new session. The seven agents (story-architect, narrative-writer, consistency-checker and others) are written into the project by /story-setup; multi-agent collaboration only takes effect after deploying and opening a fresh session.

What is the difference between the short-form and long-form entry points?

Long-form: /story-long-scan (chart scanning) → /story-long-analyze (deconstruction) → /story-long-write (outline, volume outline, chapter blueprints, prose). Short-form: /story-short-scan/story-short-analyze/story-short-write. Both share /story-setup, /story-deslop, /story-review and /story-cover.

Contributing

Contributions are welcome — new skills, knowledge base additions, market data updates. See CONTRIBUTING.md (Chinese only).

Community

Acknowledgments

Part of ZenStory AI

Oh Story is part of ZenStory AI — open-source, agent-native tools for creating, adapting and producing stories (GitHub org: zenstory-ai). Sibling projects:

Project What it does
oh-story-claudecode Web-fiction writing skill pack (this repo)
drama-skills AI short-drama / motion-comic suite: scripts, assets, storyboards, image & video prompts, independent review
novel-to-game Agent skills for source-grounded novel adaptation, target-runtime builds, and evidence-based QA
video-recap-skills Create Chinese-narration recaps from supported video files, with optional editable JianYing/CapCut draft export
oh-story-dsh Community DeepSeek Harness plugin with novel, short-drama, game and video-recap workbenches
zenstory Chat-to-create AI novel-writing workbench (app.zenstory.ai)
S
Description
story-long-write: 长篇网文写作。从大纲到正文,辅助长篇网络小说的创作,包括世界观、人物、情节线管理。触发方式:/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。; story-deslop: 网文去AI味。检测并清除文本中的AI写作痕迹,让文字回归自然、非模板化。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。; story-long-analyze: 长篇网文拆文。深度拆解爆款长篇小说的黄金三章、人设架构、爽点设计、节奏控制。单一深度拆解管道:跑完黄金三章(Stage 1)后产出快速预览报告并询问是否继续全量拆解,确认后从 Stage 2 续跑逐章摘要、聚合分析、设定关系、汇总报告,全程产物落盘…; story-short-write: 短篇网文写作。辅助短篇小说创作,从构思到成稿,聚焦情绪拉扯与节奏把控。触发方式:/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。; story-long-scan:…
Readme MIT 13 MiB
Languages
JavaScript 43.3%
Python 37.4%
Shell 17.6%
CSS 1%
HTML 0.4%
Other 0.3%