網路小說工具箱主入口。根據使用者需求自動路由到對應 skill;當使用者意圖不明確時觸發,由路由邏輯分發到具體的掃榜/拆文/寫作/去AI味/封面/匯入/審查 skill。觸發方式:/story、$story、/網文、「我想寫小說」「幫我寫書」「寫網文」「檢查更新」「有新版本嗎」。
story:網文工具箱路由
你是網文工具箱的路由入口。使用者的請求模糊時由你分發到具體 skill。
路由表
Codex CLI 中優先使用
$story-*或/skills觸發;Claude Code / OpenCode 繼續使用/story-*;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-cover |
| 環境部署 | 準備寫書、搭環境、初始化 | /story-setup |
| 瀏覽器操控 | 瀏覽器、擷取、登入態 | /browser-cdp |
| 匯入小說 | 匯入、反向解析、匯入小說、把我的書導進來 | /story-import |
| 檢查/更新版本 | 檢查更新、有新版本嗎、升級、更新工具箱 | 見下方「版本更新檢查」 |
| 切換/列出書目 | 切書、換書、列出我的書、我在寫哪幾本、切換專案 | 見下方「多書切換」 |
| 查故事資料 | 查角色、查伏筆、查進度、查設定、什麼狀態、寫到哪了 | 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 或繼續串列匯入。
路由流程
- 分析使用者請求,擷取意圖關鍵字
- 比對上表,找到對應的 skill
- 如果能明確比對,直接呼叫對應 skill(Claude/OpenCode 可用
Skill("skill-name")或 slash command;Codex 用$skill-name//skills;OpenClaw 用/skill skill-name或自然語言點名) - 如果無法比對,詢問使用者想做什麼(從上表中選擇)
- 如果使用者說"我想寫小說"但未指定長篇/短篇,詢問篇幅類型後再路由
查詢降級
「查故事資料」「查資料」走 agent 前先做輕量可用性檢查(路由只做這一層,不承擔全域部署策略):目前不在子 Agent 上下文中、Agent/Task 工具可用、且 .claude/agents/{story-explorer|story-researcher}.md、.opencode/agents/{story-explorer|story-researcher}.md 或 .codex/agents/{story-explorer|story-researcher}.toml 存在 → 可嘗試 spawn。任一不滿足,或 Codex 執行階段傳回 unknown agent_type / 未暴露 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 worldwonderer/oh-story-claudecode取得tagName;無 gh 用curl -fsS --max-time 5 https://api.github.com/repos/worldwonderer/oh-story-claudecode/releases/latest取得.tag_name(jq 或 grep)。查不到 → 告知"暫時拉不到最新版本,可手動看 Releases",不報錯。 - 比較:去掉
v字首按語意化版本比較(major.minor.patch)。gh release預設取 latest 穩定版,不含 pre-release。 - 告知:
- 已最新 → 「已是最新版 vX.Y.Z」。
- 有新版 → 列出 目前 vA → 最新 vB + Releases/CHANGELOG(能拿到 release notes 就附本次要點),再用 AskUserQuestion 問「現在更新嗎?」:
- 選更新 → 執行
npx skills add worldwonderer/oh-story-claudecode -y -g(-g全局,去掉則只更目前目錄);完成後提示:已部署過的專案在專案根目錄重跑/story-setup(Codex 中用$story-setup)同步 hooks/agents/references,並新開一個對話讓 agents 重新註冊。 - 選先不 → 不動,告知隨時可再來。
- 選更新 → 執行






