大模型应用
网文写作请求模糊时,用 story 工具箱路由到具体…
当用户提出网文创作、拆文、扫榜、审稿、封面、导入、切书、查资料或工具箱管理请求时,自动分发到对应 story skill 并处理配套操作。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
网文写作请求模糊时,用 story 工具特定
解决思路
- 按平台选择触发方式: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/作者记忆/`。
- 全局、题材、流程条目在工作区(AP),本书条目在书目录(BP,传 `--book-root`)。
- 常用变更走单事件 `record`。
- 工具未返回 `ok: true` 和 `Author Memory Receipt` 前,不得声称已记住。
- 显示画像或待确认项是只读操作;不存在时直接说明尚未建立。
- 新增习惯必须保留用户原话和适用范围。
- 一次性要求只执行不记录。
- 小说事实写入本书设定/追踪。
- 不从反复修改或成稿推断偏好,只记作者明确说的;原话范围含糊才进待确认。
- 与已生效习惯冲突时显式 `replace`,不原地改写历史。
- 项目级画像里还有「本书:」条目时,建议对该书运行 `migrate --book-root`。
- 用户没有指定工作区时,按协议定位已有作者记忆的最近祖先或当前创作工作区,禁止默认写到用户主目录。
- 用户执行 `/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(Claude/OpenCode 可用 `Skill("skill-name")` 或 slash command;Codex 用 `$skill-name` / `/skills`;Antigravity 用 `/skills` 或自然语言点名;OpenClaw 用 `/skill skill-name` 或自然语言点名)。
- 如果无法匹配,询问用户想做什么(从路由表中选择)。
- 如果用户说「我想写小说」但未指定长篇/短篇,询问篇幅类型后再路由。
- Spawn 前读取项目根 `.story-deployed` 的 `agents_version`;与本版 `agents_version: 30` 不一致时(标记缺失、字段缺失/非整数、小于或大于 30)照常按文件存在性检查并 spawn,但只检查当前运行时的 canonical 目录。
- 版本不一致时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 30)`,并提示重新运行 `/story-setup` 后新开会话;大于 30 时额外提示先更新 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`(覆盖原内容)。
- 只发现一本时直接确认为活跃书,无需询问。
- 用户问「有没有新版本」「检查更新」「升级」时执行;只通知,更不更新由用户定,不自动安装。
- 当前版本:读本 skill 同目录的 `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](https://github.com/zenstory-ai/oh-story-claudecode/releases)」,不报错。
- 比较版本:去掉 `v` 前缀按语义版本比(major.minor.patch);`gh release` 默认取 latest 稳定版,不含 pre-release。
- 已最新时告知「已是最新版 vX.Y.Z」。
- 有新版时列出 当前 vA → 最新 vB + [Releases](https://github.com/zenstory-ai/oh-story-claudecode/releases)/[CHANGELOG](https://github.com/zenstory-ai/oh-story-claudecode/blob/main/CHANGELOG.md)(能拿到 release notes 就附本次要点),再用 `AskUserQuestion` 问「现在更新吗?」。
- 用户选更新时,跑 `npx skills add zenstory-ai/oh-story-claudecode -y -g`(`-g` 全局,去掉则只更当前目录);完成后提示:已部署过的项目在项目根重跑 `/story-setup`(Codex 中用 `$story-setup`)同步 hooks/agents/references,并新开一个会话让 agents 重新注册。
- 用户选先不时,不动,告知随时可再来。
适用边界 · 注意事项
- 未安装或未部署 oh-story-claudecode、story-* skill/agents 的项目,不应硬按本流程 spawn agent;需先 `/story-setup` 或按查询降级处理。
- 用户只询问 Dashboard 用法时,不要替他启动本地服务;只返回对应平台入口。
- 用户未明确要求或确认更新时,不要自动安装/升级工具箱,只做版本通知。