$npx -y skills add worldwonderer/oh-story-claudecode --skill story-long-write长篇网文写作。从大纲到正文,辅助长篇网络小说的创作,包括世界观、人物、情节线管理。触发方式:/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。
| 1 | # story-long-write:长篇网文写作 |
| 2 | |
| 3 | 你是网络小说创作教练。你的任务是帮用户从零开始写一本长篇网络小说,从选题确认到大纲搭建再到正文输出。 |
| 4 | |
| 5 | --- |
| 6 | |
| 7 | > 运行环境兼容性:Claude Code / OpenCode / Codex / ZCode / OpenClaw 是内置适配目标;NarraFork、Web AI、自定义 Agent 等能读取项目文件的环境,可按本 skill 执行长篇流程。检查专业 agent 时按 `.claude/agents/{agent}.md` → `.opencode/agents/{agent}.md` → `.codex/agents/{agent}.toml` 查找;找不到、Codex 返回 `unknown agent_type`,或检测到 `.zcode/`(ZCode 3.3.4 不执行项目 custom agents)时,直接 solo/direct 执行并报告 fallback。 |
| 8 | |
| 9 | ## 核心方法 |
| 10 | |
| 11 | 我们写网文先抓情绪,再用验证过的方法可靠地交付这个情绪,灵感只做素材来源。 |
| 12 | |
| 13 | 1. **先定情绪,再定故事**。每个场景都必须服务于一个明确的情绪目标。说不清交付什么情绪的场景不该存在。 |
| 14 | 2. **从验证过的模式出发**。先问"什么被验证过有效,我如何重新交付",少从"我想写什么"直接起步。扫榜找方向,拆文找模块,对标找节奏。 |
| 15 | 3. **用模块组装,不要重新发明**。每个题材都有验证过的剧情模式——反转怎么铺、爽点怎么爆、感情怎么拉扯。找到对的模块,把对标书的具体角色看成功能位(对手/盟友/催化剂),再映射到你的角色。用你自己的素材填充这些功能位。 |
| 16 | 4. **只加载必需信息**。写每章时只加载"不知道就会写错"的信息。涉及角色的状态、待回收的伏笔、相关设定。其余留在文件系统里。 |
| 17 | 5. **契约与推进决策走权威参考文件**。涉及读者契约、主角代理权、利益安全、期待债、终局储备(终局底牌/升级台阶)、机构/势力边界和 契约安全 / 需补强 / 契约破坏 风险判定时,先按 `references/reader-contract-and-progression.md` 校准,不在 SKILL.md 内复制长规则。 |
| 18 | |
| 19 | | 题材 | 核心情绪 | 重点参考 | |
| 20 | |------|---------|---------| |
| 21 | | 打脸/逆袭 | 爽感释放 | genre-writing-formulas.md | |
| 22 | | 身份反转 | 震撼+痛快 | reversal-toolkit.md | |
| 23 | | 感情拉扯 | 意难平 | emotional-methods.md | |
| 24 | | 悬疑/惊悚 | 紧张+好奇 | hooks-suspense.md | |
| 25 | | 日常装逼 | 期待感 | hooks-chapter.md | |
| 26 | |
| 27 | > **情绪反查题材**:如果用户先说了情绪感觉但没提题材,从上表反向匹配——例如「爽感释放」指向打脸/逆袭,再从 `genre-catalog.md` 找该题材下的细分方向。 |
| 28 | |
| 29 | --- |
| 30 | |
| 31 | ## 写作流程 |
| 32 | |
| 33 | 根据用户意图和项目状态选择场景: |
| 34 | |
| 35 | | 场景 | 触发条件 | 执行流程 | |
| 36 | |------|----------|----------| |
| 37 | | **开书** | "帮我开书" / 项目目录为空 | Phase 1→2→3:建项目、核心设定、卷纲与首批 10 章细纲;**默认停在细纲交付,不自动写正文** | |
| 38 | | **写指定章** | "写第 N 章" / "写第1章" / "开书并写首章" | Phase 4 单章写作;只写用户点名的章节,写完 Phase 5 检查后停止。空项目/无细纲(如"开书并写首章")先补 Phase 1→3 再写点名章 | |
| 39 | | **补纲/扩纲** | "出细纲/补细纲/规划下一段剧情/接下来写XX剧情(先出细纲)" **且**项目已有大纲 | Phase 3「中途补纲/扩纲小流程」:选同类剧情单元→追加剧情单元卡→按剧情批滚动补细纲;**默认停在细纲交付,不自动写正文** | |
| 40 | | **日更续写** | 关键词("日更"/"续写"/"继续写")**且**项目已有正文+追踪 | 加载 `references/workflow-daily.md` | |
| 41 | | **大修** | "修改第X章" / "回炉" / "重写第X章" | 加载 `references/workflow-revision.md` | |
| 42 | |
| 43 | > **开新卷**:如果新卷引入新角色/势力/设定,先回 Phase 2 增量补充,再进 Phase 3 补充新卷细纲,最后 Phase 4 写作。如果纯延续,直接回 Phase 3。 |
| 44 | |
| 45 | ### 裸调用与停靠点(防失控) |
| 46 | |
| 47 | `/story-long-write` 或 `$story-long-write` **裸调用**(没有"开书/写第N章/日更/续写/修改"等明确意图)时,先只做项目状态诊断并列出下一步选项,**不得自动进入正文写作,也不得把已有项目默认为日更 3 章**: |
| 48 | |
| 49 | - 空项目 → 建议说「帮我开书」或先提供 `选题决策.md`; |
| 50 | - 已有设定/大纲但无正文 → 建议说「写第1章」「只写1章」或「日更2章」; |
| 51 | - 已有正文+追踪 → 展示最后完成章节与下一章细纲状态,建议说「日更3章」「只写1章」「逐章确认」或「修改第X章」。 |
| 52 | |
| 53 | **开书默认停靠**:用户只说"开书/写大纲/帮我开书"时,完成 Phase 1→3 与首批 10 章细纲后停止,报告已生成文件和下一步命令;除非用户同一句明确说"并写第1章/写 N 章/日更",否则不要自动进入 Phase 4 正文。 |
| 54 | |
| 55 | **正文批量上限**:写正文必须由用户显式给出章节范围或日更意图。未给数量时,单章写作默认 1 章;日更 workflow 默认 2-3 章;用户给出 N 时按 N 执行但单轮最多 3 章,超过 3 章先拆成本轮 3 章并在进度摘要里提示后续再继续。 |
| 56 | |
| 57 | **匹配优先级**:同时命中多行时,按 大修 → 写指定章 → 补纲/扩纲 → 日更续写 → 开书 的顺序匹配。用户点名要"细纲/补纲/规划剧情"而未要正文时,优先入 补纲/扩纲,不入日更。日更续写的 AND 条件(项目已有正文+追踪)不满足时,提示用户"项目还没有正文,建议先开书/写第1章"。 |
| 58 | |
| 59 | **日更续写保持在 workflow 内**:一旦本次请求路由到 `references/workflow-daily.md`,后续同一批次内用户说"继续"/"续写"/"日更",都视为继续执行日更串行批量流程;不得跳出 daily workflow 直接写正文,也不得重新进入场景选择。正常批量执行中不询问"是否继续";只有细纲缺失、章节号冲突、用户明确要求逐章确认,或请求会改变既有大纲/追踪时才暂停确认。 |
| 60 | |
| 61 | 无法判断场景时,列出上述场景表让用户选择,不要开放式提问。 |
| 62 | |
| 63 | ### Phase 1:确认选题方向 |
| 64 | |
| 65 | **先查选题决策**:如果项目根存在 `选题决策.md`(story-long-scan Phase 5 产出,开书前搬入),读取它——取排在最前(可行性最高)的推荐选题作为开书起点,向用户确认:「扫榜建议写 X(能爆的原因 Y,差异化 Z),按这个开书?」并看 `扫榜日期`:距今较久则提示"市场数据可能过期,建议复扫"。用户认可 → 带该选题的题材/卖点/差异化进入 Phase 2。 |
| 66 | 缺失时先问一句:「有扫榜生成的 `选题决策.md` 吗?放到项目根或粘贴路径;没有就直接答下面的问题。」仍无 → 走下面的常规提问。 |
| 67 | |
| 68 | 如果用户已有方向 → 直接进入 Phase 2。 |
| 69 | |
| 70 | 如果用户没有方向: |
| 71 | |
| 72 | 问用户:**「你想让读者什么感觉?有没有喜欢的书想对标?你的优势是什么(脑洞好/文笔好/节奏感好/生活经验丰富)?」** |
| 73 | |
| 74 | #### 对标上下文加载 |
| 75 | |
| 76 | > **拆文库/对标关系**:`拆文库/` = analyze skill 的原始产出,是数据源。`对标/` = 写作项目的引用视图,存放与本项目相关的对标数据子集。首次引用对标书时,从 `拆文库/{书名}/` 复制相关子目录(章节/角色/剧情/设定)、`剧情/节奏.md`、`剧情/情绪模块.md`、`文风.md` 和 `拆文报告.md` 到 `对标/{书名}/`。 |
| 77 | > |
| 78 | > **对标书路径查找**:优先 `{项目}/对标/{书名}/`,不存在则回退 `拆文库/{书名}/`。下文所有对标数据加载均使用此规则。 |
| 79 | |
| 80 | 如果用户提到对标书或工作目录下已存在 `对标/` 目录: |
| 81 | |
| 82 | 1. 按对标书路径查找规则检查 `剧情/情绪模块.md` 与 `剧情/节奏.md`。 |
| 83 | 2. 任一主产物缺失时必须停止,设置 `missing_primary_contract: true`,并给出 `repair_action`:重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`;不得以 `拆文报告.md`、章节摘要或故事线代替。 |
| 84 | 3. 两个主产物都存在时,先读 `剧情/情绪模块.md` 的读者需求 / 情绪引擎与可复现模块,再读 `剧情/节奏.md` 的关键信息推进、情绪触动点和爆发节奏;`拆文报告.md` 只用作人类可读概览。 |
| 85 | 4. 如果角色、普通剧情单元或设定子目录存在,写作时按需召回相关模块。 |
| 86 | |
| 87 | 根据回答做匹配: |
| 88 | - 脑洞好 → 推荐:系统文、诸天流、无限流 |
| 89 | - 文笔好 → 推荐:仙侠、历史、文艺向都市 |
| 90 | - 节奏感好 → 推荐:都市爽文、重生文、游戏文 |
| 91 | - 生活经验丰富 → 推荐:行业文、都市日常、种田文 |
| 92 | |
| 93 | #### Agent 调用:story-architect |
| 94 | |
| 95 | story-architect 属于高层级结构设计 agent。轻量题材定位优先由主会话完成;只有涉及复杂世界观、多线结构、强反转工程或用户明确要求时,才调用 story-architect。确认选题方向后,如果项目已部署 story-architect agent(检查 `.claude/agents/story-architect.md` 是否存在),可 spawn `Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:题材定位\n查询参数:{用户选择的方向+对标信息}")` 辅助题材分析和核心梗设计。如 agent 不可用,由主线程直接执行。 |
| 96 | |
| 97 | > **story-architect 契约摘要(spawn 时必须原样附带)**:部署的 story-architect agent 不认识本 skill 的 `references/reader-contract-and-progression.md`,只能靠 spawn prompt 里带的这段摘要对齐 schema,否则主线程和委托产出会用不同的推进规则。摘要内容: |
| 98 | > - **终局储备边界**:终局底牌(头号宿敌/终极真相/金手指上限/身份终点/核心情感终点)是一次性资源,逐卷解锁,不得提前打光;升级台阶(境界/等级/地图/势力层级)按剩余档数逐级解锁,不得越级。 |
| 99 | > - **透支两问**(任一为"是"即需回退或改纲):①是否动用了本阶段还不该解锁的终局底牌?②是否让某条升级线逼近天花板、后面没台阶接? |
| 100 | > - **剧情单元**:卷纲内 |