# Oh Story: 13 Claude Code Skills for Writing Chinese Web Novels

> Oh Story packages the full Chinese web novel workflow (trend scanning, breakdown analysis, drafting, AI-tone removal, cover art) into 13 agent skills you install into Claude Code, Codex, OpenCode and other coding agents. The interesting part is not the prompts; it is the file-based continuity tracking that keeps a several-hundred-chapter book from losing its foreshadowing.

**zenstory-ai/oh-story-claudecode** — Claude Code / Codex / OpenCode agent skills for writing Chinese web novels (网文): 扫榜、拆文、写作、去AI味、封面全流程，长篇短篇都支持 | 13 skills for novel writing and long-form fiction with file-based continuity tracking. MIT.

- Repository: https://github.com/zenstory-ai/oh-story-claudecode
- Website: https://zenstory.ai/oh-story
- Stars: 7,156 · Forks: 1,012
- Language: Python
- License: MIT
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/zenstory-ai-oh-story-claudecode

## The continuity problem Oh Story is built around

Long Chinese web novels run to hundreds of chapters. The failure mode is not bad prose; it is a foreshadowing thread planted in chapter 7 that nobody collects, or a character who knows something they were never told on the page. Chat-based writing assistants degrade here because the story lives in the conversation window, and the window gets compressed.

Oh Story's answer is to stop treating the conversation as memory. Settings, outlines, manuscript and tracking are maintained as separate files in the project directory. The README states the intent plainly: a several-hundred-chapter book does not lean on dialogue memory, and context compression does not lose foreshadowing. The audience is Chinese web novel authors targeting platforms such as Qidian, Fanqie, Jinjiang, Qimao and Zhihu Yanyan, plus anyone writing long serial fiction who already works inside a coding agent.

The target user is narrower than the description suggests. The skills drive an agent you already have installed, so the model doing the writing is that agent's model. There is no GPU requirement and no separate model configuration, which also means the prose quality ceiling is whatever your agent's model produces.

## How the skills, hooks and tracking files fit together

The pack ships 13 skills, 7 specialized agents, 8 automation hooks and more than 100 methodology documents loaded on demand. The workflow is a chain: scan the rankings for material, break down a hit into plot modules, build an outline, write the prose, strip AI tone, generate a cover.

The mechanism that matters is the tracking layer. Before writing chapter 21, the long-form skill reads a single file, 追踪/上下文.md, rather than the conversation history. That file has a fixed seven-column structure and a hard 12KB cap, and it is not injected into the prose prompt. It carries the current position, long-term constraints, active foreshadowing, the promise made to the next chapter, and continuity risks.

The design separates what the author knows from what the reader knows. The README calls this out as the main source of characters knowing answers early and foreshadowing going off the rails. In the demo, a character's unpublicized military arrangement is filed as author truth and explicitly not treated as reader-known before it appears in the text. A separate 时间线/作者真相.md holds unrevealed truth candidates, while 读者已知.md holds only what has been shown.

Tracking state is rendered from _tracking-state.json. The README states that derived files regenerated by tracking_commit.py check are byte-identical, and that hand-editing a derived file will be rejected by check. That is a real constraint, not a convenience.

## Installing Oh Story and running the first chapter

The README gives a single install command. The -g flag installs globally so every directory can use the skills; dropping it installs only into the current directory.

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

Updating uses the same command again. On platforms that support importing a GitHub repository or skill, the README also allows telling the agent directly, with the repository URL as the instruction payload.

After installation, run the setup skill from the root of your writing project. Codex uses the dollar-prefixed form instead of the slash form.

```bash
/story-setup
```

This deploys hooks, agents and references. The README says to open a new session afterward, and to re-run /story-setup after an upgrade. Deployment differences per agent, known limitations and install troubleshooting (a Windows ENOENT case, Antigravity's agy -p, leftover directories) are documented in docs/hosts.md rather than in the README itself.

For an existing published book, the import skill reconstructs a writable project. The demo shows the author's own long novel rebuilt from its first 20 published chapters via /story-import. Writing then goes through /story-long-write with a chapter argument, for example 写第21章. A chapter-level check runs the deterministic scripts and reports word count against target; the demo output shows 字数 2068 / 目标 2300 with internal_pass, plus zero hits from check-ai-patterns.js, check-degeneration.js and normalize-punctuation.

## The outline gate is the feature most likely to annoy you

The README is explicit that a chapter without a detailed outline is blocked before prose is written; guard-outline-before-prose.sh enforces it. After the outline passes structural acceptance, the narrative-writer agent drafts the prose in two batches, a consistency-checker agent verifies facts and foreshadowing, a de-tone pass adjusts readability, and deterministic finishing scripts plus chapter check close the loop.

This is a genuine trade-off. If you write by discovery, or you want to draft a scene first and retrofit the outline, the gate stops you at the door. The README frames it as determinism: the outline, the emotional target, the chapter's price and the closed-loop status are settled before a single sentence of prose exists.

There is a second friction point in the tracking model. Because derived views are regenerated from state and check rejects manual edits, you cannot quietly fix a foreshadowing record by opening 伏笔.md in an editor. The correct path is the commit step, and retired risks are logged in a per-chapter retirement registry so state does not silently disappear. That is good discipline and bad ergonomics for anyone used to editing markdown directly.

A third limitation is language. The methodology, the de-AI-tone lint patterns and the platform scoring rubrics are built for Chinese web fiction. The lint matches known Chinese sentence templates, including em-dash usage and negation parades. Pointed at English prose, the de-tone skill has nothing meaningful to match.

## Breakdown analysis: scoring with reasons attached

The analyze skills are where the pack differs from a prompt library. /story-long-analyze breaks down an opening arc and scores it on dimensions such as opening hook, protagonist construction and payoff design, with a written reason for each score. In the demo, the first 23 chapters of a classic Qidian novel are scored against Fanqie male-oriented progression-fantasy reader taste, and the opening hook gets a 2 with the note that the first 500 characters are pure geographic positioning and a morning-exercise crowd scene with no suspense, conflict or contrast.

The short-form counterpart, /story-short-analyze, produces anchored plot nodes with emotion type and intensity on a −9 to +9 scale, plus a separate writing-techniques file. In the demo, an 8,500-word short story yields 54 plot nodes and 11 techniques. The techniques file also names the cost of the original's choices, observing that the male lead's turn lacks process and that the interior monologue tells more than it shows, which the report attributes to a common weakness of first-person 追妻 fiction.

That willingness to record a defect is the useful part. A scoring rubric that only praises the sample teaches nothing transferable. The downstream short-form writing skill reads these technique files directly when drafting a new piece in the same genre.

## Licence, maintenance and the cost of upgrading

Oh Story is MIT licensed. The practical implication is that you can read, modify and redistribute the skills, hooks and scripts, including inside a commercial writing pipeline, provided you keep the licence notice. This is not legal advice; check the LICENSE file and your own obligations.

Maintenance is active by the only measure available here: the repository is not archived, and the last push was on 2026-09-18. Releases are frequent and small. v0.7.10 (写作流程与文风修复) landed on 2026-09-09, v0.7.9 (短篇按场景功能校准) on 2026-08-30, and v0.7.8 (参考拆分与门禁) on 2026-08-28. The changelog and releases pages carry the details.

That release cadence is the upgrade cost. The README says to re-run /story-setup after an upgrade, and to open a new session. Because hooks and agents are deployed into your project, a version bump can change the files on disk under your writing project, not just the skill definitions. The repository layout includes .claude-plugin/, .zcode-plugin/ and reasonix-plugin.json alongside a marketplace.json, so multi-host packaging is part of what moves between versions. Budget a re-setup and a smoke chapter after each upgrade rather than assuming the previous deployment still matches.

## Conclusion

Adopt Oh Story if you are drafting a long Chinese web novel and have already felt continuity break under context compression; the tracking layer and the outline gate are the parts that justify the install. Skip it if you write in English, if you want a prose generator that runs without an existing coding agent, or if you refuse to let a script reject your hand-edited tracking files. Before committing a book to it, run /story-setup in a throwaway project, confirm the hooks and agents actually deployed, and write two chapters to see whether the guard-outline-before-prose.sh gate blocks you at a moment you consider reasonable.

## FAQ

### Is AI writing its own code?

Oh Story is not a code generator; it is a set of writing skills that installs into a coding agent such as Claude Code, Codex or OpenCode. The agent's model writes the novel prose, while Python and Node scripts in the pack handle deterministic checks such as word count, AI-pattern lint and tracking-state commits.

### How do I install Oh Story?

The README gives npx skills add zenstory-ai/oh-story-claudecode -y -g; the -g flag installs globally and omitting it installs only into the current directory. After that, run /story-setup in the writing project root and open a new session, re-running setup after any upgrade.

### Which coding agents does Oh Story support?

The README lists Claude Code, Codex CLI, Google Antigravity, OpenCode, ZCode, OpenClaw and Reasonix, plus general web AI or agent environments that can read project files. Per-agent deployment differences and known limitations are documented in docs/hosts.md.

### Can I edit the tracking files by hand?

Derived tracking views such as 上下文.md and 伏笔.md are regenerated from _tracking-state.json, and the README states that hand-editing a derived file will be rejected by check. Changes go through the commit step, and retired risks are recorded in a per-chapter retirement registry.

### Does Oh Story work for novels written in English?

The material describes it as a Chinese web novel workflow, with methodology, platform scoring and de-AI-tone lint patterns built around Chinese sentence templates and platforms such as Qidian, Fanqie and Jinjiang. Nothing in the README claims support for English prose.

## Sources

- [License: MIT](https://github.com/zenstory-ai/oh-story-claudecode/blob/main/LICENSE)
- [Project website](https://zenstory.ai/oh-story)
- [README](https://github.com/zenstory-ai/oh-story-claudecode/blob/main/README.md)
- [Releases](https://github.com/zenstory-ai/oh-story-claudecode/releases)
- [zenstory-ai/oh-story-claudecode on GitHub](https://github.com/zenstory-ai/oh-story-claudecode)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/zenstory-ai-oh-story-claudecode
