
story
网络小说工具箱主入口。根据用户需求自动路由到对应 skill,并可启动本地 Dashboard。触发方式:/story、$story、/story dashboard、/网文、「我想写小说」「记住我的写作习惯」「打开工作台」「检查更新」。
- Installs
- 16.4K
- Last 24h
- +99
- Trending rank
- #2004
- Security
- Pass
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/zenstory-ai/oh-story-claudecode --skill story- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads story automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
story:网文工具箱路由
识别用户的写作需求,并路由到对应 skill。
路由表
各宿主的调用写法:Claude Code、OpenCode 用 /story-*(Claude 插件安装时为 /oh-story:story-*),也可 Skill("story-*");Codex、ZCode 用 $story-*(Codex 也可 /skills);OpenClaw 用 /skill story-*;Antigravity、Reasonix 在 skill 入口选择或用自然语言点名。下表按 /story-* 写,其他宿主照此替换,本文件其余地方同理。
| 用户意图 | 关键词示例 | 路由到 |
|---|---|---|
| 长篇规划/写作 | 讨论长篇结构、规划剧情、开书、写大纲、补细纲、长篇、连载 | /story-long-write |
| 写短篇 | 短篇、盐言、一万字 | /story-short-write |
| 长篇拆文 | 拆文、分析这本书、黄金三章、灵感库、跨书灵感聚合 | /story-long-analyze |
| 短篇拆文 | 拆短篇、分析这个故事 | /story-short-analyze |
| 长篇扫榜 | 长篇排行、什么火、新书在冒什么、起点/番茄/晋江/七猫长篇 | /story-long-scan |
| 短篇扫榜 | 短篇排行、知乎盐言排行 | /story-short-scan |
| 选题决策 | 写什么能爆、帮我选题、选题方向 | 长篇 /story-long-scan,短篇 /story-short-scan;没说篇幅先问一句 |
| 去 AI 味 | 去 AI 味、太 AI、去味 | /story-deslop |
| 审查稿件 | 审查、审稿、帮我审一下、一致性检查、看看有没有问题 | /story-review |
| 封面 | 封面、封面图 | /story-cover |
| 环境部署 | 准备写书、搭环境、初始化 | /story-setup |
| 浏览器操控 | 浏览器、抓取、登录态 | /browser-cdp |
| 导入小说 | 导入、反向解析、导入小说、把我的书导进来 | /story-import |
| 工作台 | dashboard、工作台、看拆文库、浏览项目文件、打开项目面板 | 见下方「Dashboard 工作台」 |
| 检查/更新版本 | 检查更新、有新版本吗、升级、更新工具箱 | 见下方「版本更新检查」 |
| 切换/列出书目 | 切书、换书、列出我的书、我在写哪几本、切换项目 | 见下方「多书切换」 |
| 管理作者习惯 | 记住我的写作习惯、作者画像、待确认偏好、忘掉这个偏好 | 见下方「作者习惯管理」 |
| 查故事资料 | 查角色、查伏笔、查进度、查设定、什么状态、写到哪了 | 见下方「查询」 |
| 查资料 | 查资料、帮我查资料、调研、搜索一下、搜一下 | 见下方「查询」 |
能明确匹配就直接调用对应 skill;匹配不上时只问缺的那一项。用户说"我想写小说"但没说长篇还是短篇,先问篇幅再路由。
裸调用与新手
只说 /story、看不出意图时,不贴路由表,给四个白话选项:「开一本长篇或接着写」→ /story-long-write;「写一篇短篇」→ /story-short-write;「把一章改得不那么 AI」→ /story-deslop;「更多(拆书、扫榜、导入旧稿、审稿、封面)」→ 再列进阶项。还没部署过(项目根没有 .story-deployed)时先建议 /story-setup,并说明部署完要新开一个会话再开始,写作助手才会生效。
导入续写顺序
用户问"导入续写先 setup 还是 import"时,直接回答:推荐先 /story-setup,新开会话后 /story-import;导完长篇说 /story-long-write 写第N章(N 是导入后的下一章),短篇用 /story-short-write 先补完构思。如果用户已经直接触发 /story-import,按 story-import 自带环境检测继续:未 setup 时让用户选择先去 setup 或继续串行导入。
书目录判定
本文件的"书目录""当前书"均按此查找:
- 项目根有
.active-book且指向项目内一个存在的目录 → 就是它。 - 否则在项目根往下最多 4 层找,跳过以
.开头的目录、node_modules、拆文库/、对标/:- 含
追踪/、正文/子目录或正文.md文件的目录(与写作 hook 同一口径); - 刚定完方向、还没有正文的长篇:含
设定/题材定位.md的目录; - 构思中、还没有正文的短篇:同时有
设定.md与小节大纲.md的目录。 找到多本又没有.active-book时,需要"当前书"就问作者是哪本(做法同「多书切换」)。
- 含
- 篇幅:有
正文/或设定/子目录的是长篇,有正文.md或设定.md文件的是短篇。
没找到任何书目录:创建写作项目时先运行 /story-setup;只讨论结构、选题,或要扫榜、拆文时直接路由。找到了:按目标 skill 自己的环境检查继续,需要初始化或补部署时运行 /story-setup。
作者习惯管理
按用户明确指定的长篇/短篇选写作 skill;没指定时按当前书的篇幅。没有当前书的通用习惯交 /story-long-write 管理;只针对某本书却定位不到时问是哪本,不要求先建书。路由层只转交,不读写作者记忆文件。
查询
交给哪个助手、传什么
「查故事资料」交 story-explorer,prompt 三行:
项目目录:{书目录的绝对路径}
查询类型:{按下表选}
查询参数:{用户问到的角色名、伏笔、设定关键词或章节范围}
| 用户在问 | 查询类型 |
|---|---|
| 某角色现在什么状态 | character_status |
| 某角色在哪几章出场 | character_appearances |
| 某条伏笔的情况 | foreshadow_status |
| 还有哪些伏笔、哪些没收 | foreshadow_list |
| 某个设定怎么定的 | setting_detail |
| 某个设定在哪些章出现过 | setting_appearances |
| 第 X 到 Y 章发生了什么 | timeline(查询参数默认带 perspective: reader;作者明确问幕后真相时用 author) |
| 写到哪了 | progress |
| 两个角色现在什么关系 | relationship |
一句话含多类查询时,分次调用或只选最主要的一类;问的是创作建议而不是查已有内容时,不交给它,主会话直接答。
「查资料」交 story-researcher,prompt 按下面写,没有的可选项整行省略:
query:{要查的主题}
type:{可选:历史考证、地理/环境、职业知识、文化习俗、器物/服饰、描写参考、命名参考、体系构建、诗词典故、视觉参考、真实案例、读者偏好}
context:{可选:为什么要查,如正在写哪一段}
project_dir:{书目录的绝对路径;没有书目录时用项目根}
cdp_port:{可选:Chrome 调试端口不是 9222 时写}
能不能用助手
Spawn 版本提示(不阻断 spawn):先读取项目根
.story-deployed的agents_version。与本版agents_version: 37不一致时(标记缺失、字段缺失/非整数、小于或大于 37)照常按当前宿主角色来源检查并 spawn;同时用一句白话提示作者「查资料助手是旧版,运行 /story-setup(ZCode 先更新插件)后新开会话」,Notice: agents bundle 版本不匹配(项目 {N},本版 37)原文写进回答最末一行「技术备注:」;大于 37 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有当前宿主角色缺失或不暴露调用能力时才降级 solo/direct,Fallback: ... -> solo同样只进技术备注行。
走助手前只做本端可用性检查:当前不在子代理内、有本端调用工具,且对应角色可用(Claude .claude/agents/*.md、OpenCode .opencode/agents/*.md、Codex .codex/agents/*.toml、Antigravity .agents/agents/agent-name/agent.md;ZCode 查插件注册的同名角色,不要求 .zcode/agents)→ 可尝试 spawn。Antigravity 用 invoke_subagent + 同名 TypeName,ZCode 用 Agent 按实际 schema 派发,不跨端误判。任一不满足或返回 unknown agent,则降级处理:
story-explorer不可用 → 主会话直接用 Read/Grep 从书目录检索(角色状态、伏笔、进度、设定),回答前说一句「查资料助手没启用,这次我直接翻项目文件」;项目尚未部署时提示先/story-setup。story-researcher不可用 → 主会话用当前可用的搜索能力回答,回答前说一句「查资料助手没启用,这次我直接搜」;搜不到就如实说明。
怎么回答作者
讲故事里的事(谁、在哪章、发生了什么);文件字段名、伏笔/事件编号不单独出现,编号必须跟着故事描述。助手返回的英文字段和缺口说明由主会话翻成白话再说。
多书切换
用户想切换或查看在写的书时(一个项目可同时有多本):
- 按「书目录判定」第 2 条列出所有书目录,标出当前
.active-book指向的那本。 - 让用户选择,把所选书的相对路径写入项目根
.active-book(覆盖原内容)。 - 只发现一本时直接确认为活跃书,无需询问。
Dashboard 工作台
用户执行 /story dashboard,或明确要求打开工作台、查看项目文件时,启动本 skill 的本地 Dashboard:
-
把当前工作目录作为默认工作区;用户明确给出目录时改用该目录。目录必须存在。
-
从当前已加载的
storyskill 目录定位scripts/dashboard-server.mjs,不要硬编码仓库路径、 全局 skill 路径或用户主目录。 -
检查
node可用后,以长运行进程执行:node "<story-skill-dir>/scripts/dashboard-server.mjs" --root "<workspace>" --open -
等待输出出现“本机地址”,把完整 URL 回给用户。工具支持后台进程/PTY 时让服务保持运行; 无法自动拉起浏览器不算失败,仍返回可点击 URL。
-
Dashboard 默认只监听
127.0.0.1。不要主动增加--allow-network,不要把工作区暴露到 局域网或公网。
工作台按自己的规则识别目录,与上方「书目录判定」不同:识别标准 拆文库/{书名}/,兼容存量 拆文库-{书名}/;写作项目识别同时支持:
- 长篇目录结构:目录内含
正文/、大纲/、设定/或追踪/任一普通子目录。 - 短篇单文件结构:目录内含普通文件
正文.md,并同时含小节大纲.md或设定.md。
符号链接不作为项目标记,只有单个 正文.md 的资料目录不识别为写作项目。浏览器可编辑 .md、.txt、.json、.yaml、.yml、.toml;保存或确认删除时核对文件内容版本,避免覆盖外部修改。
停止服务时终止对应的 Node 长运行进程即可。若用户只问用法,不要替他启动;告诉用户用 /story dashboard(按上方宿主写法替换)。
版本更新检查
用户问“有没有新版本”“检查更新”“升级”时执行。先报告版本,是否安装由用户决定。
-
当前版本:读本 skill 同目录的
VERSION文件;缺失则视为未知。本 skill 在写作项目里(如项目下的skills/、.agents/skills/、.zcode/skills/)时,读到的是项目副本的版本。 -
最新版本:优先
gh release view --json tagName,name,url -R zenstory-ai/oh-story-claudecode取tagName;无 gh 用curl -fsS --max-time 5 https://api.github.com/repos/zenstory-ai/oh-story-claudecode/releases/latest取.tag_name(jq 或 grep)。查不到 → 告知"暂时拉不到最新版本,可手动看 Releases",不报错。 -
比较:当前版本已知时,去掉
v前缀按语义版本比较(major.minor.patch);未知时只展示最新稳定版,不判定是否已最新。gh release默认取 latest 稳定版,不含 pre-release。 -
告知:
-
更新(用户同意后):按本 skill 目录的位置判断安装方式。
- 在插件目录里(路径含
plugins/):Claude Code 跑claude plugin marketplace update oh-story-skills再跑claude plugin update oh-story@oh-story-skills,重启后生效;ZCode 在 Plugin Management 里刷新市场后更新oh-story。 - 用
npx skills装在全局或当前目录:重跑npx skills add zenstory-ai/oh-story-claudecode -y -g(原来装在当前目录的去掉-g)。 - 其他安装方式(如 ClawHub):按原来的方式重装最新版。
- 本 skill 在写作项目里:先用上面对应的方式更新安装包,再用新装的包在项目根运行
/story-setup,项目里的副本才会换成新版;OpenClaw、Reasonix 和通用文件模式下项目里跑的就是这份旧副本,要用新包手动覆盖项目skills/下的 13 个 skill 目录。
更新完提示:已部署过的项目在项目根重跑
/story-setup同步 hooks、agents 和参考资料,然后新开一个会话,写作助手才会重新加载。 - 在插件目录里(路径含
FAQ
What does the story skill do?
网络小说工具箱主入口。根据用户需求自动路由到对应 skill,并可启动本地 Dashboard。触发方式:/story、$story、/story dashboard、/网文、「我想写小说」「记住我的写作习惯」「打开工作台」「检查更新」。
How do I install story?
Run npx skills add https://github.com/zenstory-ai/oh-story-claudecode --skill story in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/story/ (personal) or .claude/skills/story/ (project).
Which AI agents can use story?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is story safe to install?
Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk passed. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains story?
It is published by zenstory-ai in zenstory-ai/oh-story-claudecode. It has 16,387 recorded installs.
More from zenstory-ai/oh-story-claudecode
story-long-write
zenstory-ai/oh-story-claudecode
长篇网文规划与写作。支持只讨论结构、只写大纲或指定细纲,明确要求正文后再写章节。触发方式:/story-long-write、/写长篇、「帮我开书」「定设定」「出卷纲」「规划剧情」「写大纲」「补细纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。
story-deslop
zenstory-ai/oh-story-claudecode
网文去AI味。从表达、叙事用笔、故事因果三层诊断并修复文本,保留作者文风与已定剧情。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。
story-long-analyze
zenstory-ai/oh-story-claudecode
长篇网文拆文。保留黄金三章、逐章摘要、剧情、情绪、节奏、角色、设定和文风接口,以连续章节块完成因果、双时间线、关系与三维节奏分析;兼容旧成果直接使用、按需增强和断点续跑。含可选三层灵感库管道(灵感库、跨书灵感聚合、更新灵感库)。触发方式:/story-long-analyze、/长篇拆文、「帮我拆这本书」「拆这本书」「分析黄金三章」「深度拆解」「完整拆解」或提供小说文本文件路径。
story-short-write
zenstory-ai/oh-story-claudecode
短篇网文写作。辅助短篇小说创作,从构思到成稿,聚焦情绪拉扯与节奏把控。触发方式:/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。
story-long-scan
zenstory-ai/oh-story-claudecode
长篇网文扫榜。分析起点、番茄、晋江、七猫等平台排行榜与新书数据,提炼市场趋势与热门题材。触发方式:/story-long-scan、/长篇扫榜、「长篇什么火」「起点排行」「扫七猫新书」。
story-short-analyze
zenstory-ai/oh-story-claudecode
短篇网文拆文。拆解爆款短篇小说(番茄短篇 / 故事会 / 知乎盐言 / 追妻 / 世情 / 重生 / 虐渣等通俗题材)的故事核、结构、情感线、反转设计、写作手法、共鸣层次。单一全量拆解管道:跑完 Stage 2-6 产出完整拆文报告,落盘到 拆文库/{书名}/,下游 story-short-write 同时读拆文报告 + 情节节点 + 写作手法 + 原文 + meta.json 写下一篇。触发方式:/story-short-analyze、/短篇拆文、「拆短篇」「拆这篇短文」「短篇拆文」「精细拆解短篇」「8000 字短篇拆解」「番茄短篇拆文」「故事会拆解」「盐言故事拆解」「分析这篇短篇」——均进入同一管道。
Popular data & databases skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-client-api
prisma/skills
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
prisma-database-setup
prisma/skills
Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.
prisma-cli
prisma/skills
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.
prisma-postgres
prisma/skills
Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.
prisma-driver-adapter-implementation
prisma/skills
Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.