$npx -y skills add worldwonderer/oh-story-claudecode --skill story-short-write短篇网文写作。辅助短篇小说创作,从构思到成稿,聚焦情绪拉扯与节奏把控。触发方式:/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。
| 1 | # story-short-write:短篇网文写作 |
| 2 | |
| 3 | 你是短篇网文写作执行器。从构思到成稿,完成一篇完整的短篇小说。 |
| 4 | |
| 5 | **执行规则:短篇以情绪为目标,所有内容为情绪服务。** |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | > Agent 兼容性:检查专业 agent 是否可用时,按 `.claude/agents/{agent}.md` → `.opencode/agents/{agent}.md` → `.codex/agents/{agent}.toml` 的顺序查找。Codex 原生子代理调用优先使用同名 `agent_type`;如果当前 Codex 运行时返回 `unknown agent_type` 或未暴露 custom-agent registry,必须降级为 solo/direct。检测到 `.zcode/` 时同样直接 solo/direct,因为 ZCode 3.3.4 不执行项目 custom agents;报告 `Fallback: project custom agents unavailable -> solo`。Claude/OpenCode 兼容面保留 `subagent_type`。 |
| 10 | |
| 11 | ## 执行规则 |
| 12 | |
| 13 | 1. **先定情绪,再定故事**。动笔前必须确定目标情绪(意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动),所有内容为这个情绪服务。 |
| 14 | 2. **一个反转撑一篇**。所有铺垫为反转服务,所有情绪为反转蓄力。不多线、不铺世界观。 |
| 15 | 3. **每句话必须有用**。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。 |
| 16 | 4. **开头 3 句定生死,结尾定传播**。开头必须包含钩子,结尾必须有余韵。 |
| 17 | 5. **默认第一人称**。短篇网文(盐言/七猫短篇等)绝大多数用第一人称,代入感最强。除非题材明确需要第三人称(如多视角悬疑),否则一律用「我」。 |
| 18 | |
| 19 | --- |
| 20 | |
| 21 | ## 格式规范(最高优先级) |
| 22 | |
| 23 | 详细规则见 `references/short-format.md`,写作前必须加载。**主会话与 narrative-writer 子代理使用同一套正文格式**:正文只允许保存在 `正文.md`,正文相邻段落之间只允许一个换行符 `\n`(不得出现空行/`\n\n`),对话引号风格按项目/平台约定统一(默认半角双引号,盐言可用「」),短篇小节标记全文统一(默认 `###1.`/`###2.`)。如果子代理输出与主会话格式不一致,按本格式规范重排后再写入文件。 |
| 24 | |
| 25 | --- |
| 26 | |
| 27 | ## 核心方法 |
| 28 | |
| 29 | 除了上面的执行规则,构思和写作时遵循: |
| 30 | |
| 31 | - **从验证过的模式出发**:有对标书就先拆解,没有就从 `genre-styles/{题材}.md`(核心 10 题材)或 `genre-writing-formulas.md`(冷门题材)找对应的短篇剧情模式 |
| 32 | - **定方向就换风格**:题材方向一旦确定(如追妻火葬场),立刻加载 `references/genre-styles/{题材}.md`——正文的腔调、开篇、钩子、情绪烈度、对话金句、招式、收尾全部切到该题材。核心 10 题材(追妻火葬场 / 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗 / 民俗怪谈 / 悬疑 / 甜宠 / 双男主 / 沙雕脑洞)有专属风格包,其中追妻含 现代/古代/民国 时代变体与 小三文学/死人文学 流派分支;冷门题材用 `genre-writing-formulas.md` 的结构骨架兜底,腔调仍按 `short-craft.md` 通用底座 |
| 33 | - **定平台基调 + 打磨导语 + 卡付费点**:投稿前先按平台(知乎/小程序/番茄)定基调,正文视角、矛盾烈度、章末落点随之切换;导语单独当门面打磨(导语不行,正文再好也被编辑一眼刷掉);付费点卡在章末卡脖子断点上。见 `references/submission-craft.md` |
| 34 | - **只加载必需信息**:写每节前明确目标情绪和要用的技法,答不出就先回读参考 |
| 35 | |
| 36 | --- |
| 37 | |
| 38 | ## 写作流程 |
| 39 | |
| 40 | ### Phase 1:确定情绪目标 |
| 41 | |
| 42 | 问用户:**「你想让读者读完什么感觉?有没有想写的题材方向或灵感?」** |
| 43 | |
| 44 | 如果用户有明确想法 → 直接进入 Phase 2。 |
| 45 | |
| 46 | 如果用户只有模糊想法 → 帮用户做情绪选择: |
| 47 | |
| 48 | | 情绪类型 | 适合场景 | 难度 | 市场热度 | 常配题材包 | |
| 49 | |----------|----------|------|----------|------------| |
| 50 | | 意难平 | 虐恋、遗憾、错过 | 中 | 🔥🔥🔥 | 追妻火葬场 / 甜宠(先虐后甜) | |
| 51 | | 反转震撼 | 悬疑、身份错位 | 高 | 🔥🔥🔥 | 悬疑 / 沙雕脑洞(反套路) | |
| 52 | | 爽感释放 | 打脸、逆袭 | 低 | 🔥🔥 | 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗(古代上位) | |
| 53 | | 治愈温暖 | 成长、亲情、友情 | 中 | 🔥🔥 | 甜宠 / 双男主(救赎线) | |
| 54 | | 细思极恐 | 悬疑、心理 | 高 | 🔥 | 悬疑 / 民俗怪谈 | |
| 55 | | 共鸣感动 | 现实、职场、婚姻 | 中 | 🔥🔥🔥 | 世情打脸(共鸣模式) / 追妻火葬场(小三文学) | |
| 56 | |
| 57 | --- |
| 58 | |
| 59 | ### Phase 2:构思核心框架 |
| 60 | |
| 61 | > 如果用户有参考小说,先用 `/story-short-analyze` 拆解。默认输出存入项目根目录 `拆文库/{书名}/`;如用户指定当前短篇引用目录,则可输出/同步到 `{短篇标题}/对标/{书名}/`。写作时会自动查找并读取这些拆文结果,不需要用户手动复制到 prompt。 |
| 62 | |
| 63 | #### 对标上下文加载 |
| 64 | |
| 65 | > **拆文库/对标关系**:`拆文库/` = analyze skill 的原始产出(数据源),位于项目根目录。`对标/` = 当前短篇的引用视图,位于 `{短篇标题}/对标/`。短篇写作优先读取 `{短篇标题}/对标/{书名}/`,不存在则读取项目根 `拆文库/{书名}/`。 |
| 66 | |
| 67 | 推荐目录结构: |
| 68 | |
| 69 | ``` |
| 70 | 项目根/ |
| 71 | ├── 拆文库/ |
| 72 | │ └── {书名}/ |
| 73 | │ ├── 拆文报告.md |
| 74 | │ ├── 情节节点.md |
| 75 | │ └── 写作手法.md |
| 76 | └── {短篇标题}/ |
| 77 | ├── 设定.md |
| 78 | ├── 小节大纲.md |
| 79 | ├── 正文.md |
| 80 | └── 对标/ |
| 81 | └── {书名}/ |
| 82 | ├── 拆文报告.md |
| 83 | ├── 情节节点.md |
| 84 | └── 写作手法.md |
| 85 | ``` |
| 86 | |
| 87 | 如果工作目录下存在 `对标/` 或项目根存在 `拆文库/`,或用户提到参考小说: |
| 88 | |
| 89 | 1. 按上述顺序查找 `拆文报告.md`、`情节节点.md`、`写作手法.md`、`_meta.json` |
| 90 | 2. **读 `_meta.json.genre_detected`,按下表加载对应题材风格包**(analyze 识别的题材 → write 的 genre-styles 包),正文腔调/招式随之切换: |
| 91 | |
| 92 | | analyze 的 `genre_detected` | 加载 `genre-styles/` 包 | |
| 93 | |---|---| |
| 94 | | 追妻(现代 / 古代 / 民国) | `追妻火葬场.md`(按「时代变体」节切换身份词与招式) | |
| 95 | | 小三 / 死人文学 | `追妻火葬场.md`(「流派分支」节) | |
| 96 | | 世情 / 打脸爽文 / 家庭伦理 | `世情打脸.md` | |
| 97 | | 重生复仇 | `复仇打脸.md` | |
| 98 | | 豪门 / 总裁(豪门联姻虐恋) | `总裁豪门.md` | |
| 99 | | 宫斗宅斗 / 宫斗 / 宅斗 / 古言重生 | `宅斗宫斗.md` | |
| 100 | | 民俗 / 怪谈 / 灵异 | `民俗怪谈.md` | |
| 101 | | 悬疑 / 推理 / 惊悚 | `悬疑.md` | |
| 102 | | 甜宠 / 先虐后甜 / 先婚后爱 | `甜宠.md` | |
| 103 | | 双男主 | `双男主.md` | |
| 104 | | 沙雕 / 脑洞 / 弹幕 / 系统 | `沙雕脑洞.md` | |
| 105 | | 仙侠 / 通用 | 无专属包 → `short-craft.md` 底座 + `genre-writing-formulas.md` 兜底 | |
| 106 | |
| 107 | 3. 读取核心发现:结构段落、情绪曲线、反转位置、铺垫方式、句式节奏、可借鉴技法。**把拆文报告里的具体招式对到题材包招式库**:拆文给「这一篇怎么做的」,题材包给「这一类通用怎么做」,两者合用——拆文是当前对标书的实证,题材包是该题材的通法 |
| 108 | 4. 写入本篇 `设定.md` 的“对标摘要”区,写作时每个场景从中召回 1-2 个相关技法 |
| 109 | 5. 如只找到原文、未找到拆文报告,提示用户先运行 `/story-short-analyze`;如用户要求继续,也可只按原文做弱参考 |
| 110 | |
| 111 | > **拆文产出格式**:analyze 落盘的完整文件树、`_meta.json` schema、Stage→文件映射,以及「story-short-write 怎么读这些产出」的下游消费规范,见 [references/output-contract.md](references/output-contract.md)。 |
| 112 | |
| 113 | > **多对标书时**:参 `references/cross-book-recall.md`,副对标 anchor 入「对标摘要」区 |
| 114 | |
| 115 | #### Agent 调用:story-architect |
| 116 | |
| 117 | 构思阶段,如果项目已部署 story-architect agent(查找顺序见顶部),可 spawn `Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:短篇构思\n查询参数:{情绪目标+题材方向}")` 辅助框架设计。如 agent 不可用,由主线程直接执行。 |
| 118 | |
| 119 | 帮用户确定短篇的核心框架: |
| 120 | |
| 121 | ``` |
| 122 | ## 短篇核心框架 |
| 123 | |
| 124 | ### 基本信息 |
| 125 | - 标题(暂定):{} |
| 126 | - 目标字数:{} 字(短篇通常 8000-20000 字) |
| 127 | - 目标平台:{} |
| 128 | - 情绪目标:{读者读完的感受} |
| 129 | |
| 130 | ### 一句话梗概 |
| 131 | {主角 + 困境 + 反转 + 情绪落点} |
| 132 | |
| 133 | ### 核心反转 |
| 134 | - 反转类型:{身份反转/视角反转/动机反转/时间线反转} |
| 135 | - 反转内容:{一句话描述} |
| 136 | - 铺垫线索:{至少 3 个铺垫点} |
| 137 | |
| 138 | ### 情绪设计 |
| 139 | - 开头情绪:{}(强度 {1-10}) |
| 140 | - 中段情绪:{}(强度 {1-10}) |
| 141 | - 反转情绪:{}(强度 {1-10},峰值维持 ≥2 节) |
| 142 | - 结尾情绪:{}(强度 {1-10}) |
| 143 | - 反转高潮不要骤降:反转前 1 节开始升温,反转节达到峰值,反转后 1 节维持峰值不骤降 |
| 144 | |
| 145 | ### 人设速写 |
| 146 | - 主角:{一句话人设} |
| 147 | - 关键角色:{一句话人设} |
| 148 | - 关系:{他们之间的关系} |
| 149 | ``` |
| 150 | |
| 151 | 框架确定后,完成设计任务,然后在工作目录下创建文件。 |
| 152 | |
| 153 | #### 设计任务(框架确定后执行) |
| 154 | |
| 155 | 详细步骤和模板见 `references/writing-workflow.md`。构思时从目标情绪反推剧情,不是从灵感正向构建。按顺序完成: |
| 156 | |
| 157 | 1. 定平台基调 + 加载题材风格包 → 先读 `reference |