oh-story-claudecode is a skill package for planning, analyzing, and writing Chinese web fiction, covering both short and long novels. It is intended for writers using Claude Code, Codex, OpenClaw, and other supported AI-agent environments, with workflows for market research, story breakdowns, drafting, editing, and cover creation. The catalogue entries are the package's skills, commands, agents, and plugin.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add zenstory-ai/oh-story-claudecode --skill story-setupgit clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zenstory-ai/oh-story-claudecode/story-setup)<a href="https://agentmods.dev/skills/zenstory-ai/oh-story-claudecode/story-setup"><img src="https://agentmods.dev/badge/skills/zenstory-ai/oh-story-claudecode/story-setup/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zenstory-ai/oh-story-claudecode/story-setup"><img src="https://agentmods.dev/badge/skills/zenstory-ai/oh-story-claudecode/story-setup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket warn
- Snyk pass
- NVIDIA SkillSpector warn
SkillSpector: 9 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Agent Snooping · line 294 Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
- high Agent Snooping · line 451 Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
- high Agent Snooping · line 451 Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
- medium MCP Rug Pull · line 17 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 23 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 320 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 512 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium Rogue Agent · line 403 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 403 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.17185 |
| Opus 5 | $0.00048 | $0.08593 |
| Sonnet 5 | $0.00019 | $0.03437 |
| Haiku 4.5 | $0.00010 | $0.01718 |
Grade B, and why
story-setup scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
2. 调用 `"$PYBIN" "{story-setup skill目录}/scripts/merge-claude-settings.py" --existing "{项目}/.claude/settings.local.json" --template "{story-setup skill目录}/references/templates/settings-hooks.json" --output "{项目}/.claude/se Copies of this mod
1 near-identical copy found in the catalogue:
- story-setup — 97% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 547 lines — stays where its author put it; the contents beside it link to each section on GitHub.
story-setup:网文写作工具集基础设施部署
你是写作基础设施部署器。将网文写作工具集部署到用户项目目录:已适配的 CLI 走专用 hooks/agents/config;NarraFork、Web AI、自定义 Agent 等环境走通用文件模式。
执行铁律:不覆盖用户已有配置,合并而非替换。
选择模式
- 参数为
check,或用户只要求检查部署、诊断环境、排查 agent 不可用时:完整读取 references/diagnostics.md,按其中流程仅检查并报告;不进入下面的部署流程。 - 用户要求安装、更新或修复时:执行下面的部署流程。检查后已明确授权的修复沿用本文件的部署与合并规则。
Phase 1:检测项目状态
先自检参考目录:以正在执行的本 SKILL.md 所在目录为准,列出与它同级的 references/ 下的子目录,核对下面 9 个名字是否都在且都非空——agent-references、templates、opencode、codex、antigravity、zcode、openclaw、reasonix、generic;同级 scripts/merge-claude-settings.py、scripts/merge-codex-hooks.py、scripts/merge-antigravity-hooks.py、scripts/generate-antigravity-agents.mjs、scripts/deploy-antigravity-skills.py 与 scripts/copy-path-safety.py 也必须存在(Claude/Codex/Antigravity hooks 合并、Antigravity Skills 物化与 agent 生成、递归复制安全检查依赖它们)。有缺即 skill 包没装全,立即停止,不写任何部署文件,报告里区分「缺目录」「目录为空」和「缺脚本」,并给修复指令:「story-setup 参考资料包不完整,缺 {路径}。按你的安装方式重装 oh-story-claudecode(命令行装的重跑 npx skills add zenstory-ai/oh-story-claudecode -y -g,marketplace / Plugin Management 装的在面板里重装),再执行 /story-setup。」
判据是「有没有
SKILL.md」:只看正在执行的SKILL.md同级的references/。项目内.claude/skills/story-setup/、.codex/skills/story-setup/和 OpenCode 的skills/story-setup/只有references/agent-references/、不含SKILL.md,不会是执行目录,也不要拿它们核对。Antigravity / ZCode / OpenClaw / Reasonix / generic 的项目副本是整份 skill 拷贝、自带SKILL.md,9 个子目录本就齐全,照常核对即可。
- 检查当前目录是否已部署过(存在
.story-deployed)agents_version缺失、非整数或小于30→ 标记为待更新,继续执行当前部署agents_version: 30→ 使用 AskUserQuestion 确认是否重新部署;提示里写明重新部署只用当前本地 skill 包刷新项目文件,要拿 skill 本身的新版本得先更新 oh-story-claudecode(npx skills add或 marketplace),再回来重跑agents_version大于30→ 当前 story-setup 比项目部署旧;停止以避免降级覆盖,提示先更新 oh-story-claudecode,不写任何部署文件- 同时读
target_cli字段。已部署项目以 sentinel 里的值为准:非空时(逗号分隔的多端组合原样保留)跳过下面第 5-12 步的环境探测与选择,直接按这些端重新部署。只有字段缺失或为空,才回落到探测。用户明确要求增删目标端时,用 AskUserQuestion 在现有值基础上改,改完的值写回 sentinel。
- 检查是否有书名目录(包含
追踪/子目录的目录,或用户自定义结构)- 有 → 识别为长篇项目,显示当前项目信息
- 无 → 识别为新项目或短篇项目
- 检查
.claude/settings.local.json是否存在- 存在 → 读取现有配置,后续合并
- 不存在 → 后续创建新文件
- 检查
.active-book文件是否存在- 存在 → 显示当前活跃书目
- 不存在 → 跳过
- 检查
opencode.json或.opencode/是否存在- 存在 → 识别为 opencode 项目,
target_cli = opencode - 不存在 → 跳过
- 存在 → 识别为 opencode 项目,
- 检查
.codex/、.codex/config.toml、.codex/agents/、.codex/hooks.json、AGENTS.md中的 Codex 段- 存在 → 识别为 Codex 项目,
target_cli = codex - 不存在 → 跳过
- 存在 → 识别为 Codex 项目,
- 检查
.agents/hooks.json、.agents/agents/,或.agents/rules/oh-story.md中的 Antigravity 标记- 存在 → 识别为 Google Antigravity 项目,
target_cli = antigravity - 不存在 → 跳过
- 存在 → 识别为 Google Antigravity 项目,
- 检查
.zcode/、.zcode/config.json、zcode.json、.zcode/skills/、.zcode/commands/、AGENTS.md中的 ZCode 段- 存在 → 识别为 ZCode 项目,
target_cli = zcode - 不存在 → 跳过
- 存在 → 识别为 ZCode 项目,
- 检查
openclaw.json、.openclaw/,或AGENTS.md中的 OpenClaw 段(标题行含网文写作工具集(OpenClaw))- 存在 → 识别为 OpenClaw 项目,
target_cli = openclaw - 不存在 → 跳过
- 存在 → 识别为 OpenClaw 项目,
- 检查
.reasonix/、reasonix-plugin.json、REASONIX.md,或AGENTS.md中的 Reasonix 段(标题行含网文写作工具集(Reasonix))
- 存在 → 识别为 Reasonix 项目,
target_cli = reasonix - 不存在 → 跳过
- 检查
AGENTS.md中的通用段(标题行含网文写作工具集(通用 Agent / Web AI))
- 存在 → 识别为通用 Web AI 项目,
target_cli = generic - 不存在 → 跳过
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/agent-references/agent-quality.md 3.5 KB
- references/agent-references/agent-reference-profiles.md 3.9 KB
- references/agent-references/anti-ai-writing.md 36 KB
- references/agent-references/banned-words.md 10 KB
- references/agent-references/character-basics.md 17 KB
- references/agent-references/character-design-methods.md 16 KB
- references/agent-references/character-relations.md 15 KB
- references/agent-references/deslop-gates.md 12 KB
- references/agent-references/dialogue-mastery.md 11 KB
- references/agent-references/emotional-arc-design.md 16 KB
- references/agent-references/format-and-structure.md 10 KB
- references/agent-references/genre-prose-cards.md 7.0 KB
- references/agent-references/genre-prose-cards/东方仙侠.md 2.7 KB
- references/agent-references/genre-prose-cards/传统玄幻.md 2.7 KB
- references/agent-references/genre-prose-cards/历史古代.md 2.6 KB
- references/agent-references/genre-prose-cards/历史脑洞.md 2.9 KB
- references/agent-references/genre-prose-cards/双男主.md 3.2 KB
- references/agent-references/genre-prose-cards/古言脑洞.md 2.6 KB
- references/agent-references/genre-prose-cards/古风世情.md 2.6 KB
- references/agent-references/genre-prose-cards/女频悬疑.md 2.6 KB
- references/agent-references/genre-prose-cards/女频种田.md 2.6 KB
- references/agent-references/genre-prose-cards/宫斗宅斗.md 2.5 KB
- references/agent-references/genre-prose-cards/年代.md 3.0 KB
- references/agent-references/genre-prose-cards/快穿.md 2.8 KB
- references/agent-references/genre-prose-cards/悬疑灵异.md 2.6 KB
- references/agent-references/genre-prose-cards/悬疑脑洞.md 2.7 KB
- references/agent-references/genre-prose-cards/战神赘婿.md 2.7 KB
- references/agent-references/genre-prose-cards/抗战谍战.md 2.7 KB
- references/agent-references/genre-prose-cards/星光璀璨.md 2.7 KB
- references/agent-references/genre-prose-cards/民国言情.md 2.8 KB
- references/agent-references/genre-prose-cards/游戏体育.md 2.8 KB
- references/agent-references/genre-prose-cards/玄幻脑洞.md 2.9 KB
- references/agent-references/genre-prose-cards/玄幻言情.md 2.5 KB
- references/agent-references/genre-prose-cards/现言脑洞.md 2.7 KB
- references/agent-references/genre-prose-cards/科幻末世.md 2.6 KB
- references/agent-references/genre-prose-cards/职场婚恋.md 2.6 KB
- references/agent-references/genre-prose-cards/西方奇幻.md 2.8 KB
- references/agent-references/genre-prose-cards/豪门总裁.md 3.3 KB
- references/agent-references/genre-prose-cards/都市修真.md 2.5 KB
- references/agent-references/genre-prose-cards/都市日常.md 3.7 KB
- references/agent-references/genre-prose-cards/都市种田.md 2.5 KB
- references/agent-references/genre-prose-cards/都市脑洞.md 3.4 KB
- references/agent-references/genre-prose-cards/都市高武.md 2.9 KB
- references/agent-references/genre-prose-cards/青春甜宠.md 2.7 KB
- references/agent-references/genre-readers.md 11 KB
- references/agent-references/long-chapter-hooks.md 8.6 KB
- references/agent-references/long-emotional-methods.md 9.9 KB
- references/agent-references/long-genre-catalog.md 17 KB
- references/agent-references/long-genre-mechanics.md 17 KB
- references/agent-references/long-quality.md 2.8 KB
- references/agent-references/long-reversal.md 15 KB
- references/agent-references/long-suspense.md 15 KB
- references/agent-references/opening-design.md 13 KB
- references/agent-references/outline-conflict.md 17 KB
- references/agent-references/outline-methods.md 11 KB
- references/agent-references/outline-rhythm.md 13 KB
- references/agent-references/plot-core-methods.md 20 KB
- references/agent-references/short-chapter-hooks.md 8.4 KB
- references/agent-references/short-emotional-methods.md 7.7 KB
- references/agent-references/short-genre-formulas.md 21 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +7 lines · +7 tokens per session b28f4ccc3a66
- 13d ago First seen · 540 lines · 90 tokens per session scan B a5abd4092ee9
story-setup is a skill published in the GitHub repository zenstory-ai/oh-story-claudecode (6,780 stars, last pushed yesterday), licensed MIT. It adds 97 tokens to every session and 17,185 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
zh-novel-polish
A Chinese fiction editing tool focused on making narrative prose sound like it was written by a person rather than generated by AI.
novel-review
A review coordinator for long novels. It breaks a manuscript review into focused checks by specialist roles, combines their reports, and stores the results in a review directory.
novel-sync
A Chinese-language workflow for updating a novel's continuity notes after a chapter is written or changed. It records events, character changes, unresolved clues, and notable lines in the project's reference files.
novel-chapter-write
A long-form novel writing workflow that turns an approved chapter plan into chapter prose. It supports drafting, targeted revision, and final approval while keeping style and story details consistent across chapters.
bestseller-novel-outline
A planning workflow for designing a very long commercial novel before chapters are written. It creates the world, characters, overall plot, volume outlines, planted clues, and chapter paths for later writing tools.
outline-refinement
A planning tool for long-form novels that breaks each chapter into a detailed sequence of scenes, information, required events, forbidden events, clues, and an ending hook.