| name | story-short-write |
| version | 1.0.0 |
| description | 短篇网文写作。辅助短篇小说创作,从构思到成稿,聚焦情绪拉扯与节奏把控。
触发方式:/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」
|
| manifest | {"category":"writing","stages":["premise","setting","outline","draft"],"tasks":["chapter-assistant","chapter-first-draft","outline-batch","outline-chain","chapter-analysis","inspiration-pack","project-bootstrap","worldview-entry","character-card","outline-item","spiral-seed","spiral-expand","spiral-validate"],"triggers":["写短篇","短篇","创作"],"priority":6,"enabled":true,"compatibility":"native","compatibilityNote":"适合短篇小说的立项和写作阶段。"} |
| metadata | {"openclaw":{"source":"https://github.com/worldwonderer/oh-story-claudecode"}} |
story-short-write:短篇网文写作
你是短篇网文写作执行器。从构思到成稿,完成一篇完整的短篇小说。
执行铁律:短篇写的是情绪,不是故事。读者记住的永远是情绪,不是剧情。
执行规则
- 先定情绪,再定故事。动笔前必须确定目标情绪(意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动),所有内容为这个情绪服务。
- 一个反转撑一篇。所有铺垫为反转服务,所有情绪为反转蓄力。不多线、不铺世界观。
- 每句话必须有用。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。
- 开头 3 句定生死,结尾定传播。开头必须包含钩子,结尾必须有余韵。
- 默认第一人称。短篇网文(盐言/黑岩/点众/七猫短篇)绝大多数用第一人称,代入感最强。除非题材明确需要第三人称(如多视角悬疑),否则一律用「我」。
格式规范(最高优先级)
详细规则见 references/format-and-structure.md,写作前必须加载。
段落规则
- 一句一段,不超 60 字,段间无空行,无缩进
- 一段只做一个动作:叙事/对话/心理/动作,不混合
对话规则
- 对话独立成行,不写「他说」「她道」,用动作代替
- 默认
"" | 知乎盐言 【】 | 部分古言 「」
小节结构
- 数字编号分割(
1 2 3 或 ###1.),每小节 800-1500 字(爽文可压缩至 500-800 字/节,见 genre-writing-formulas.md)
- 每小节必须有:1个主事件 + 3-5个子事件 + 1个情绪变化 + 1个读者新获知的信息
- 全文 8-15 个小节(按目标字数和节长反推;8000字÷1000字/节≈8节,12000字÷800字/节≈15节)
5 条绝对禁止
- 禁止大段落(>60 字必须拆)
- 禁止段间空行
- 禁止「他说/她道」(用动作代替)
- 禁止缩进
- 禁止 Markdown 渲染正文
写作流程
Phase 1:确定情绪目标
问用户:「你想让读者读完什么感觉?有没有想写的题材方向或灵感?」
如果用户有明确想法 → 直接进入 Phase 2。
如果用户只有模糊想法 → 帮用户做情绪选择:
| 情绪类型 | 适合场景 | 难度 | 市场热度 |
|---|
| 意难平 | 虐恋、遗憾、错过 | 中 | 🔥🔥🔥 |
| 反转震撼 | 悬疑、身份错位 | 高 | 🔥🔥🔥 |
| 爽感释放 | 打脸、逆袭 | 低 | 🔥🔥 |
| 治愈温暖 | 成长、亲情、友情 | 中 | 🔥🔥 |
| 细思极恐 | 悬疑、心理 | 高 | 🔥 |
| 共鸣感动 | 现实、职场、婚姻 | 中 | 🔥🔥🔥 |
Phase 2:构思核心框架
如果用户有参考小说,先用 /story-short-analyze 拆解,输出存入 拆文库/{书名}/(或用户指定的 对标/ 目录)。写作时参考其结构/情绪/反转设计。
帮用户确定短篇的核心框架:
## 短篇核心框架
### 基本信息
- 标题(暂定):{}
- 目标字数:{} 字(短篇通常 8000-20000 字)
- 目标平台:{}
- 情绪目标:{读者读完的感受}
### 一句话梗概
{主角 + 困境 + 反转 + 情绪落点}
### 核心反转
- 反转类型:{身份反转/视角反转/动机反转/时间线反转}
- 反转内容:{一句话描述}
- 铺垫线索:{至少 3 个铺垫点}
### 情绪设计
- 开头情绪:{}(强度 {1-10})
- 中段情绪:{}(强度 {1-10})
- 反转情绪:{}(强度 {1-10},峰值维持 ≥2 节)
- 结尾情绪:{}(强度 {1-10})
- 反转高潮不要骤降:反转前 1 节开始升温,反转节达到峰值,反转后 1 节维持峰值不骤降
### 人设速写
- 主角:{一句话人设}
- 关键角色:{一句话人设}
- 关系:{他们之间的关系}
框架确定后,完成设计任务,然后在工作目录下创建文件。
设计任务(框架确定后,写作前完成)
开始前先加载 references(逐项检查,不能跳过):
- 写结构物件 → 加载
writing-craft.md ✅/❌
- 写反派/揭露方式 → 加载
villain-and-reveal.md ✅/❌
- 写大纲 → 已有 genre-writing-formulas.md 的题材速查表即可 ✅/❌
- 反转信息差验证 → 需加载
reversal-toolkit.md 或 writing-craft.md ✅/❌
- 伏笔回查 → 需加载
writing-craft.md ✅/❌
- 如某项不适用(如无反派),标注原因后可跳过
- 设计结构物件(1-2 个):用 writing-craft.md「结构物件系统」模板
- 填写:
- 第1现(第X节):{场景}({含义}) 重复三次,含节号定位
- 设计反派(如有):用 villain-and-reveal.md 反派模板
- 填写:
{身份} + {动机} + {作恶方式} + {致命弱点} + {报应}
- 确定揭露方式:从 villain-and-reveal.md 4 种真相揭露机制中选一种
- 编写 小节大纲.md:每节 1 行,格式如下:
主事件 | 子事件×3-5 | 情绪 | 读者新获知什么 | 钩子 | 伏笔/物件 | 动静 | 对话密度 | 目标字数
- 子事件必须功能明确(推动剧情/铺垫反转/升级情绪),禁止装饰性子事件
- 子事件不足 3 个时用扩展规则(见 writing-craft.md 第 7 节「子事件不够时怎么扩」)
- 子事件用
-> 连接,每个子事件标注功能标签:
对话 / 冲突 / 伏笔 / 回忆 / 发现 / 递进
- 动静标记:
动 或 静 或 动静,相邻两节尽量交替;如因题材需要连续同标记,需确保节内有情绪变化(如:两节都是"静",但第一节"疑惑→心酸"、第二节"心碎→崩溃",情绪曲线仍在上升)
- 对话密度:
高(3+轮)/ 中(1-2轮)/ 零(全节无对话),尽量不连续 2 节标 零;翻阅日记、独自发现等场景允许例外,但连续零对话段落的情绪必须靠感知层+反应层推进
- 反转信息差验证(outline 写完后、写作前必须验证):
- 回答:读者在第几节知道真相?如果 < 全文 60%,这不是反转,是"延迟揭露"(50-60% 为灰区,需审视反转力度是否足够)
- 检查:至少有 1 条读者被成功误导的假线索(不是读者猜到后等角色追上来)
- 检查:反转前是否铺垫了 ≥3 条指向真相的线索(线索要隐蔽,不是明示)
- 验证:找一个人(或自我模拟)只看 outline,能否在反转前猜到真相?猜到 = 失败
- 伏笔回查清单(outline 写完后、写作前检查):
- 列出结尾所有关键元素(物件/信息/角色/关系变化)
- 每个结尾元素在前文有 ≥1 次铺垫?没有 = 天降,必须补铺垫
- 结构物件三现完整?(第 1 现在铺垫段,第 2 现在反转段,第 3 现在结尾段)
- 铺垫节号与揭穿节号的间距 ≥ 3 节(间距太短铺垫无效)
写作前加载(按需,同时 ≤ 3 个)
- 必读:
format-and-structure.md
- 必读:
anti-ai-writing.md(写作时自检 AI 腔)
- 按题材加载 1 个:
genre-writing-formulas.md 中对应题材速查表
- 按需加载:
writing-craft.md / villain-and-reveal.md / emotional-methods.md
工作目录结构
{标题}/
├── 设定.md # 核心框架 + 人设 + 反转铺垫 + 结构物件(含三现追踪表)+ 反派设计
├── 小节大纲.md # 小节大纲:每节 1 行(主事件|子事件×3-5|情绪|读者新获知什么|钩子|伏笔/物件|动静|对话密度)
├── 正文.md # 完整正文
└── 对标/ # 可选:用户手动指定的参考目录
└── {参考小说}/拆文报告.md
操作原则:
- 正文直接写入文件,不要只输出在对话里
- 精修时读取文件再改写,修改记录直接体现在设定.md的结构物件追踪中
- 设定.md 维护结构物件追踪表:
| 物件 | 第1现(节号/含义) | 第2现(节号/含义) | 第3现(节号/含义) |
Phase 3:逐场景写作
术语说明:Phase 3 按「段」划分叙事结构(开头段/铺垫段/升级段/反转段/结尾段),每段包含若干「小节」(数字编号的 beat)。「场景」指写作时的具体画面。
写作心法:你不是在翻译大纲,你在构建场景。读者要和主角一起经历。
⚠️ 硬约束:每节 ≥ 800 字 / 50-65 行(爽文等特殊题材见 genre-writing-formulas.md)。写完每节后必须统计字数和行数。不足 800 字的节不得跳过,必须用三层展开法补足后再写下一节。整篇完成后总字数必须 ≥ 8000 字。
节数守恒:正文节数必须等于小节大纲规划节数。不得合并多节为一节。如果写作中发现某节不需要独立存在,应回到大纲阶段调整,而非在写作时偷减。
节长达标流程(两步法):
- 初稿:按场景展开法写出完整初稿,每节尽量展开
- 扩充检查(初稿完成后必做):逐节统计字数,不足 800 字的节用以下方法补足:
- 加感知层(2-3 句感官细节,至少 2 个不同感官)
- 加反应层(1-3 句身体动作/状态)
- 加回忆闪回(1-2 句关联记忆)
- 加环境物件(通过动作带出,不独立成句)
- 加一轮对话(参考 writing-craft.md 对话权力模式)
- 禁止凑字:每个添加必须推动情绪/铺垫/代入感,不得灌水
逐节验证(每节写完后立即执行):
写完一节后,立即统计本节字数(不含空白)。
如果 < 800 字 → 停下来,用三层展开法补足后再写下一节。
如果 ≥ 800 字 → 继续写下一节。
⚠️ 禁止「写完全部再统一检查」模式。实际验证表明,一次性写完所有节再检查会导致初稿普遍只有 5000-6000 字,需要 7+ 轮扩充验证,效率极低。
节长速算:平均每行 15 字 × 55 行 ≈ 825 字。写到第 30 行时如果还不到 500 字,说明子事件展开不够,必须加感知层和反应层。
每个小节按「场景展开法」写作(详见 writing-craft.md 第 8 节):
-
进入场景:主角此刻在哪、在做什么(1-2 句切入)
-
展开子事件:每个子事件三层展开,三层总字数 ≥150 字
- 发生层:这件事出现了(1-2 句叙事,含一个具体细节,~30-40 字)
- 感知层:主角注意到什么细节(2-3 句感官/物件,至少 2 个不同感官,~60-80 字)
- 反应层:身体如何回应(1-3 句身体动作,~40-60 字)
- 子事件之间用身体动作连接(~20 字),不用叙述过渡
子事件展开示例(163 字,三层完整):
发生层:他把车停在路边,熄了灯。
感知层:引擎关掉之后,车里一下子安静了。
只剩下我急促的呼吸声和窗外不知道哪里传来的一声狗叫。
仪表盘上的时钟亮着,绿色的数字跳了一下:23:47。
反应层:我把额头抵在方向盘上,凉了一下。
试着松手,十根指头都僵了,一根一根掰开才松掉。
如果你写的子事件只有 3-4 行(≤60 字),说明缺少感知层和反应层。
-
收尾:钩子或情绪定格(1-2 句)
写完后对照 小节大纲.md 检查:
- 每个子事件三层都展开了?(不只是提到,要有感知+反应,三层合计 ≥150 字)
- 本节情绪到位?
- 读者新获知的信息已传达?
- 伏笔/物件已植入?
- 节长验证:统计本节字数(不含空格/换行)。如果 <800 字,必须回查哪个子事件的感知层或反应层太薄,补足后再写下一节。不足 800 的常见原因:(a) 感知层只有 1 句(需要 2-3 句、至少 2 个感官)(b) 子事件之间缺连接动作 (c) 对话只有 1 轮(应 ≥2 轮并穿插身体细节)
- 三层展开后仍偏短 → 加一轮对话(参考 writing-craft.md 第 3 节对话权力模式)或简短回忆(第 7 节扩展规则)
按以下结构分段写:
第一段:开头(前 300-500 字)
目标:3 句话内抓住读者。必须包含一个开篇钩子(从 hook-techniques.md 选择类型)。
技法指令:前 100 字事件密度 ≥ 3,不做背景铺垫,直接上事件链。
开头零环境规则:
- 前 3 句禁止出现任何环境描写(灯光、天气、气味、温度、装修)
- 前 3 句必须是:事件 / 对话 / 动作 / 信息炸弹,四种之一
- 环境细节只能通过感知层(三层展开法的第二层)自然带出,不能独立成句
- 检查方法:标出前 3 句的主语,如果主语是环境物件(灯光/走廊/房间/天气),重写
开头技巧:
| 技巧 | 说明 | 示例 |
|---|
| 冲突前置 | 第一句就是矛盾 | 「离婚协议放在桌上,他已经签了。」 |
| 信息差钩 | 给读者一个角色不知道的信息 | 「她不知道,对面那个男人已经在计划第三次了。」 |
| 反常行为 | 用一个不合常理的行为引起好奇 | 「她把订婚戒指冲进了马桶。」 |
| 重生反常 | 重生后做前世绝不会做的事 | 「沈栀心念成灰,支着一口气找到了媒婆:郭家的那个天阉,我来嫁。」 |
| 超自然身份 | 开篇揭示非人类身份 | 「我是世上仅存的红衣厉鬼。我不知自己是怎么死的。」 |
| 灵魂旁观 | 以灵魂视角描述死亡现场 | 「我的尸体躺在透明棺材里,三个哥哥在外面笑着说:她演得真像。」 |
| 悬念句 | 抛出一个需要解释的事实 | 「我死后的第三天,老公发了一条朋友圈。」 |
| 替嫁被弃 | 被迫接受不公正的命运 | 「三个月后,我代替皇后的嫡亲公主坐上了去漠北和亲的轿撵。」 |
| 代入式提问 | 直接让读者产生共鸣 | 「你有没有在深夜接到过一个不该接的电话?」 |
第二段:铺垫(占全文 30-40%)
- 用物件/数字/习惯建立羁绊(详见 emotional-methods.md「羁绊铺设」)
- 埋入至少 3 个反转线索,分散在不同小节
- 每 2-3 个小节埋一个钩子(类型从 hook-techniques.md 选择)
- 小节用数字分割,每小节推进一个情节点
- 情绪强度逐节递增,不允许连续 2 节无情绪变化
- 结构物件第 1 现必须在此段完成
- 反派作恶按阶梯递增(小恶→中恶,见 villain-and-reveal.md)
第三段:升级(占全文 20-30%)
- 冲突必须比上一段升级(强度/范围/代价至少一个维度上升)
- 插入倒计时钩子或代价钩子制造紧迫感
- 钩子密度提高到每 2 节一个(按题材分级见 genre-writing-formulas.md)
- 埋入误导信息,让读者猜错反转方向
- 数字/金额递增作为叙事工具(具体数字替代模糊描述,见 writing-craft.md)
- 一动一静交替:每节有动有静,不连续暴力也不连续安静
第四段:反转(占全文 10-15%)
- 反转在一节内完成揭示,不拖延
- 揭示后确保前面铺垫的线索可被回溯(读者能找到「原来如此」的伏笔)
- 反转节的情绪冲击强度必须 > 前面所有节的最高值
- 用证物/证人/偷听/剥洋葱揭露真相(4 种方式见 villain-and-reveal.md)
- 结构物件第 2 现必须在此段完成(意义被颠覆)
第五段:结尾(占全文 5-10%)
- 章末必须有钩子(悬念或余韵)
- 用安静细节收尾(一个物件、一个动作、一句短话),不写大段抒情
- 结尾方式见下表,参考 emotional-methods.md「余韵钝痛」
- 结构物件第 3 现(回扣暴击)
结尾类型:
| 类型 | 效果 | 适合情绪 |
|---|
| 余韵式 | 不说完,让读者自己想 | 意难平 |
| 呼应式 | 首尾呼应,形成闭环 | 治愈、成长 |
| 开放式 | 留下悬念 | 细思极恐 |
| 反转再反转 | 结尾再来一个小反转 | 震惊 |
| 金句式 | 一句话点题 | 共鸣 |
Phase 3 完成门槛(进入 Phase 4 前必须通过)
不通过 → 回退补足,不得进入精修。
Phase 4:精修打磨
精修检查清单
## 精修清单
### 开头
- [ ] 前 3 句话能抓住人?
- [ ] 没有无意义的背景介绍?
- [ ] 包含一个开篇钩子?
### 情绪
- [ ] 情绪曲线是否有明确走向?
- [ ] 反转前的情绪铺垫够不够?
- [ ] 反转后的冲击够不够?
### 反转
- [ ] 反转是否出乎意料?
- [ ] 反转是否合情合理(回看有铺垫)?
- [ ] 反转时机是否合适?
### 节奏
- [ ] 有没有拖沓的部分?
- [ ] 每句话是否都有存在价值?
- [ ] 字数是否在目标范围内?
### 格式
- [ ] 段落不超 60 字?无大段落?
- [ ] 段间无空行?
- [ ] 对话独立成行、用正确引号?
- [ ] 无「他说/她道」?
### 钩子
- [ ] 每 2-3 小节有钩子?
- [ ] 章末有钩子(悬念或余韵)?
### AI 腔
- [ ] 无禁止比喻:「命运的齿轮」「如潮水般」「仿佛春风」「心猛地一沉」「眼眶泛红」
- [ ] 同一身体部位/情绪描写不超 5 次(统计:手指/心/膝盖/眼睛,超限必须替换)
- [ ] 「像」使用频率:全文不超 10 处(含「像是」「不像」)
- [ ] 完整 AI 腔黑名单见 anti-ai-writing.md
### 技法
- [ ] 身体细节:有无情绪词可替换为身体状态?
- [ ] 结构物件:三现是否完整?(查设定.md追踪表)
- [ ] 一动一静:每节是否有动有静?
- [ ] 开头密度:前 100 字事件 ≥ 3?
### 结尾
- [ ] 结尾是否有余韵?
- [ ] 读者会不会想转发?
删减原则
- 不推动剧情的对话 → 删
- 不铺垫反转的描写 → 删
- 不推高情绪的心理活动 → 删
- 读者能猜到的内容 → 缩短
- 重复表达的情绪 → 合并
常见问题与解决方案
| 问题 | 原因 | 解决方案 |
|---|
| 开头不抓人 | 在做背景铺垫 | 直接从冲突开始 |
| 中间拖沓 | 信息密度太低 | 删减或合并场景 |
| 反转没力度 | 铺垫不够或太明显 | 增加误导线索 |
| 结尾无力 | 反转后拖太长 | 反转后 500 字内收尾 |
| 全篇平淡 | 情绪曲线太平 | 加大情绪落差 |
| 感觉像流水账 | 缺乏情绪描写 | 加入人物内心感受 |
流程衔接
流水线: 短篇
位置: 写作(第 3/3 步)
| 时机 | 跳转到 | 命令 |
|---|
| 有参考小说想对标 | story-short-analyze | /story-short-analyze(拆文模式) → 输出存入 拆文库/{书名}/ |
| 写完,去 AI 味 | story-deslop | /story-deslop |
| 想自检 | story-short-analyze | /story-short-analyze(自检模式) |
| 需要市场方向 | story-short-scan | /story-short-scan |
| 设定太大,适合长篇 | story-long-write | /story-long-write |
参考资料
按需加载以下文件。写作时同时加载 ≤ 3 个:
语言
- 用户用中文就用中文回复,用英文就用英文回复
- 中文回复遵循《中文文案排版指北》