网络小说工具箱主入口。根据用户需求自动路由到对应 skill,并可管理作者习惯、启动本地 Dashboard。触发方式:/story、$story、/story dashboard、/网文、「我想写小说」「记住我的写作习惯」「打开工作台」「检查更新」。
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/story/SKILL.md你是网文工具箱的路由入口。用户的请求模糊时由你分发到具体 skill。
Codex CLI 中优先使用
$story-*或/skills触发;Claude Code / OpenCode 继续使用/story-*;Antigravity 可在/skills中选择或用自然语言点名;OpenClaw 可用/skill story-*或自然语言点名 skill。下表以 slash command 展示,Codex 可将/story-long-write等价替换为$story-long-write,OpenClaw 可将其等价替换为/skill story-long-write。
| 用户意图 | 关键词示例 | 路由到 |
|---|---|---|
| 写长篇 | 开书、写大纲、长篇、连载 | /story-long-write |
| 写短篇 | 短篇、盐言、一万字 | /story-short-write |
| 长篇拆文 | 拆文、分析这本书、黄金三章 | /story-long-analyze |
| 短篇拆文 | 拆短篇、分析这个故事 | /story-short-analyze |
| 长篇扫榜 | 长篇排行、什么火、起点/番茄/晋江 | /story-long-scan |
| 选题决策 | 写什么能爆、帮我选题、选题方向 | /story-long-scan |
| 短篇扫榜 | 短篇排行、知乎盐言排行 | /story-short-scan |
| 去 AI 味 | 去 AI 味、太 AI、去味 | /story-deslop |
| 审查稿件 | 审查、审稿、帮我审一下、一致性检查、看看有没有问题 | /story-review |
| 封面 | 封面、封面图 | /story-cover |
| 环境部署 | 准备写书、搭环境、初始化 | /story-setup |
| 浏览器操控 | 浏览器、抓取、登录态 | /browser-cdp |
| 导入小说 | 导入、反向解析、导入小说、把我的书导进来 | /story-import |
| 工作台 | dashboard、工作台、看拆文库、浏览项目文件、打开项目面板 | 见下方「Dashboard 工作台」 |
| 检查/更新版本 | 检查更新、有新版本吗、升级、更新工具箱 | 见下方「版本更新检查」 |
| 切换/列出书目 | 切书、换书、列出我的书、我在写哪几本、切换项目 | 见下方「多书切换」 |
| 管理作者习惯 | 记住我的写作习惯、作者画像、待确认偏好、忘掉这个偏好 | 见下方「作者记忆」 |
| 查故事资料 | 查角色、查伏笔、查进度、查设定、什么状态、写到哪了 | spawn story-explorer agent(结构化 prompt:项目目录:{dir}\n查询类型:{根据意图选择}\n查询参数:{用户查询});agent 不可用时见下方「查询降级」 |
| 查资料 | 查资料、帮我查资料、调研、搜索一下、搜一下 | spawn story-researcher agent;agent 不可用时见下方「查询降级」 |
用户问"导入续写先 setup 还是 import"时,直接回答:推荐先 /story-setup,新开/刷新会话后 /story-import,最后 /story-long-write 日更 或 /story-long-write 写第N章。如果用户已经直接触发 /story-import,按 story-import 自带环境检测继续:未 setup 时让用户选择先去 setup 或继续串行导入。
用户要求记住、查看、确认、替换或忘掉作者习惯时,加载 references/author-memory.md,并只用本 skill 的 scripts/author_memory_commit.py 管理工作区级 .story/作者记忆/。常用变更走单事件 record;工具未返回 ok: true 和 Author Memory Receipt 前,不得声称已记住。显示画像或待确认项是只读操作;不存在时直接说明尚未建立。
新增习惯必须保留用户原话和适用范围。一次性要求只执行不记录;小说事实写入本书设定/追踪;推断和重复修正先进入待确认;与已生效习惯冲突时显式 replace,不原地改写历史。用户没有指定工作区时,按协议定位已有作者记忆的最近祖先或当前创作工作区,禁止默认写到用户主目录。
用户执行 /story dashboard(Codex 为 $story dashboard),或明确说“打开工作台 / 看项目
文件”时,直接启动随本 skill 分发的本地 Dashboard,不再转发到其他 skill:
把当前工作目录作为默认工作区;用户明确给出目录时改用该目录。目录必须存在。
从当前已加载的 story skill 目录定位 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 / $story dashboard 两种平台对应入口。
Skill("skill-name") 或 slash command;Codex 用 $skill-name / /skills;Antigravity 用 /skills 或自然语言点名;OpenClaw 用 /skill skill-name 或自然语言点名)Spawn 版本提示(不阻断 spawn):先读取项目根
.story-deployed的agents_version。与本版agents_version: 29不一致时(标记缺失、字段缺失/非整数、小于或大于 29)照常按文件存在性检查并 spawn,但只检查当前运行时的 canonical 目录;同时报告Notice: agents bundle 版本不匹配(项目 {N},本版 29)并提示重新运行/story-setup后新开会话;大于 29 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告Fallback: ... -> solo。
「查故事资料」「查资料」走 agent 前先做轻量可用性检查(路由只做这一层,不承担全局部署策略):当前不在子代理上下文、当前运行时的 Agent/Task 或 invoke_subagent 工具可用,且对应部署文件存在(Claude .claude/agents/*.md、OpenCode .opencode/agents/*.md、Codex .codex/agents/*.toml、Antigravity .agents/agents/agent-name/agent.md,其中 agent-name 为目标 agent 名)→ 可尝试 spawn。Antigravity 用 invoke_subagent + 同名 TypeName,不得因其他端文件存在而误判。任一不满足,或运行时返回 unknown agent / 未暴露 custom-agent registry,则降级,不硬失败:
story-explorer 不可用 → 主线程直接用 Read/Grep 从项目文件检索(角色状态/伏笔/进度/设定),回答前标注 Fallback: agent unavailable -> direct lookup;项目尚未部署时提示先 /story-setup(Codex 中用 $story-setup)。story-researcher 不可用 → 主线程用现有检索/回答能力完成,或提示用户改用 /browser-cdp 采集,同样标注 Fallback: agent unavailable -> direct lookup。路由前先检查当前项目状态:
追踪/ 或 设定/ 的书名目录):
/story-setup 初始化环境(Codex 中用 $story-setup).story-deployed 标记,如未部署则先运行 /story-setup(Codex 中用 $story-setup)用户想切换或查看在写的书时(一个项目可同时有多本):
追踪/ 或 设定/ 子目录的目录(含 长篇/、短篇/ 下的子目录)。.active-book 指向的那本。.active-book(覆盖原内容)。用户问"有没有新版本""检查更新""升级"时执行。只通知,更不更新由用户定,不自动安装。
VERSION 文件;缺失则视为未知。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。npx skills add zenstory-ai/oh-story-claudecode -y -g(-g 全局,去掉则只更当前目录);完成后提示:已部署过的项目在项目根重跑 /story-setup(Codex 中用 $story-setup)同步 hooks/agents/references,并新开一个会话让 agents 重新注册。5de060f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.