Loading the skills library…

npx skills add zenstory-ai/oh-story-claudecode --skill story-short-write -a claude-code -y你负责从构思到成稿,完成一篇完整的短篇小说。
执行规则:短篇以情绪为目标,所有内容为情绪服务。
短篇按作者当前要做的事分时刻读文件,时刻之间靠落盘文件交接。创建或修改故事文件前,先判断当前时刻,按下表读完(这张表是唯一的读取清单);只读本文件、rg 检索或摘读都不算。按节读只允许两种:本表点名的节,或文件内「什么时候读这份」点名的节;其余整份读到结尾。缺文件、没读完或题材还没对上唯一的题材包就停,报准确路径或待定项,不得创建或修改故事产物。每个时刻、每个会话重新读。
| 时刻 | 作者确认什么 | 必读 | 条件满足才读 | 落盘 |
|---|---|---|---|---|
| 定情绪(Phase 1) | 读者读完的感觉、题材方向 | 本文件 | — | 进构思时写入 设定.md |
| 构思(Phase 2) | 故事核、人物、反转、付费点 | workflow-design.md、submission-craft.md、short-craft.md、short-reversal.md、emotional-methods.md「情感拉扯节奏设计」;核心 10 题材读一个 genre-styles/{题材}.md,冷门读 genre-writing-formulas.md | 有反派或真相揭露:villain-and-reveal.md;有对标或参考小说:benchmark-recall.md;付费点断点拿不准:hooks-chapter.md「2. 节尾」 | 设定.md、小节大纲.md |
| 写正文(Phase 3) | 成稿 | workflow-draft.md、short-format.md、short-craft.md、scene-craft.md、设定.md 写的那个题材包(冷门不读) | 写羁绊或余韵:emotional-methods.md「情感虐心三板斧」;对白驱动的博弈、审判、打脸:dialogue-mastery.md「什么时候读这份」和它点名的一节;交给写手:agent-calls.md | 正文.md |
| 精修(Phase 4) | 交付 | workflow-revision.md、short-format.md | 主会话自己去味:short-deslop.md,拿不准某条信号时查 banned-words.md 对应一节;去味交给写手:agent-calls.md | 正文.md |
| 管理作者习惯 | 记、改、忘 | author-memory.md;完成即停,不建书、不写正文 | — | — |
故事文件只记录选出的套路、反转位置等设计,不写“已读 references”的回执。
交接只靠落盘:作者在对话里定下的字数、平台、人称、偏好、红线和否掉的方案,构思交付前写进 设定.md;写正文只读两份设计文件与本时刻的写作手法,不重读构思方法,也不回翻对话。
换上下文:构思时刻读得最多,汇报末尾建议作者新开对话说「写正文」;作者选择在本对话接着写时照常执行。新对话中,两份设计文件通过构思完成门禁即可进入写正文。
专业 agent 只查当前宿主:Claude
.claude/agents(subagent_type)、OpenCode.opencode/agents(subagent的agent)、Codex.codex/agentsTOML(agent_type)、Antigravity.agents/agents(invoke_subagent+TypeName);ZCode 查插件注册的同名角色,用Agent按实际 schema 派发,不要求.zcode/agents。主会话自己写正文、去味是常态,不报;作者明确要交给写作助手而角色/工具缺失或返回 unknown agent 时,由主会话接手,对作者只说「这次我自己写」。版本:项目根
.story-deployed的agents_version与本版agents_version: 41不一致(缺失、非整数、更小或更大)时照常按当前宿主角色来源检查并 spawn,只对作者说一句「写作助手是旧版,运行 /story-setup(ZCode 先更新插件)后新开会话」;大于 41 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有当前宿主角色缺失或不暴露调用能力时才降级 solo/direct,对作者只说「这次我自己写」。
管理习惯按上表读 references/author-memory.md(整理、超编、迁移按其中指路)。
short-craft.md。写法冲突时的先后见 short-craft 开头。scripts/author_memory_commit.py query --workspace {工作区} --book-root {项目目录} --kind prose_style --kind story_design [--genre {题材}] [--workflow 短篇](改写、去味只带 --kind prose_style),把输出的 lines 原样交正文/改写 agent 作自然倾向,不逐条追求命中,不牺牲连贯、节奏和字数;硬门禁、当前请求和本篇设定优先;没装下的交稿时用原话告诉作者。长期声明在收尾按上方管理入口处理。从项目根及上一级往下 3 层找到 短篇扫榜结论.md(多份取最新)时先读其「选题匹配」,排第一的方向带着目标情绪当候选问作者;过了复扫日期就提醒可能过期。
问用户:「你想让读者读完什么感觉?有没有想写的题材方向或灵感?」
用户已说清读者读完的感觉 → 直接进入 Phase 2;只给了题材或梗、没说情绪 → 从下表带一个推荐情绪问一句,作者点头再进。
如果用户只有模糊想法 → 帮用户做情绪选择:
| 情绪类型 | 适合场景 | 难度 | 常见题材 |
|---|---|---|---|
| 意难平 | 虐恋、遗憾、错过 | 中 | 追妻火葬场 / 甜宠(先虐后甜) |
| 反转震撼 | 悬疑、身份错位 | 高 | 悬疑 / 沙雕脑洞(反套路) |
| 爽感释放 | 打脸、逆袭 | 低 | 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗(古代上位) |
| 治愈温暖 | 成长、亲情、友情 | 中 | 甜宠 / 双男主(救赎线) |
| 细思极恐 | 悬疑、心理 | 高 | 悬疑 / 民俗怪谈 |
| 共鸣感动 | 现实、职场、婚姻 | 中 | 世情打脸(共鸣模式) / 追妻火葬场(小三文学) |
存在本篇 对标/、项目根 拆文库/ 或用户提供参考小说时,先完整读取 references/benchmark-recall.md,执行对标发现、排除本书已写部分、题材匹配与召回。无外部对标时仍按原题材包执行。
完整步骤见 references/workflow-design.md。按首屏「写前必读」读完后执行;两份设计文件通过其中的 Phase 2 完成门禁,才可进入 Phase 3。
进入正文写作前,完整读取 references/workflow-draft.md,执行交付参数锁定、写前验收与逐场景写作;只做构思或精修时不加载。下面两段是写正文和精修共用的完成标准,只在这里写。
小节完整性流程:
小节大纲.md 检查批准内容是否落地、因果与下一步是否读得懂、感知/反应是否提供新信息、埋下的东西后面有没有接上。设定.md 的目标字数node {skill 根}/scripts/check-ai-patterns.js --check --fail-on=blocking {短篇目录}/正文.md 无 blocking 命中;其余提示先通读,确属问题再改node {skill 根}/scripts/check-degeneration.js --check {短篇目录}/正文.md 无 blocking 退化命中(复读/截断/工程词泄漏)不通过 → 回退补足,不得进入精修。
精修或质量自检前,完整读取 references/workflow-revision.md,按其职责分工去味、查一致性、做最终扫描与交付验收;只做构思时不加载。
流水线: 短篇 位置: 写作(第 3/3 步)
有参考小说想对标 → /story-short-analyze(存入 拆文库/{书名}/);写完去 AI 味 → /story-deslop;想自检 → Phase 4 流程;要市场方向 → /story-short-scan;设定太大适合长篇 → /story-long-write。
---
name: story-short-write
version: 1.0.0
description: "短篇网文写作。辅助短篇小说创作,从构思到成稿,聚焦情绪拉扯与节奏把控。触发方式:/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。"
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
---
# story-short-write:短篇网文写作
你负责从构思到成稿,完成一篇完整的短篇小说。
**执行规则:短篇以情绪为目标,所有内容为情绪服务。**
## 写前必读(强制,先读后写)
短篇按作者当前要做的事分时刻读文件,时刻之间靠落盘文件交接。创建或修改故事文件前,先判断当前时刻,按下表读完(这张表是唯一的读取清单);只读本文件、`rg` 检索或摘读都不算。**按节读只允许两种**:本表点名的节,或文件内「什么时候读这份」点名的节;其余整份读到结尾。缺文件、没读完或题材还没对上唯一的题材包就停,报准确路径或待定项,**不得创建或修改故事产物**。每个时刻、每个会话重新读。
| 时刻 | 作者确认什么 | 必读 | 条件满足才读 | 落盘 |
|---|---|---|---|---|
| 定情绪(Phase 1) | 读者读完的感觉、题材方向 | 本文件 | — | 进构思时写入 `设定.md` |
| 构思(Phase 2) | 故事核、人物、反转、付费点 | `workflow-design.md`、`submission-craft.md`、`short-craft.md`、`short-reversal.md`、`emotional-methods.md`「情感拉扯节奏设计」;核心 10 题材读一个 `genre-styles/{题材}.md`,冷门读 `genre-writing-formulas.md` | 有反派或真相揭露:`villain-and-reveal.md`;有对标或参考小说:`benchmark-recall.md`;付费点断点拿不准:`hooks-chapter.md`「2. 节尾」 | `设定.md`、`小节大纲.md` |
| 写正文(Phase 3) | 成稿 | `workflow-draft.md`、`short-format.md`、`short-craft.md`、`scene-craft.md`、设定.md 写的那个题材包(冷门不读) | 写羁绊或余韵:`emotional-methods.md`「情感虐心三板斧」;对白驱动的博弈、审判、打脸:`dialogue-mastery.md`「什么时候读这份」和它点名的一节;交给写手:`agent-calls.md` | `正文.md` |
| 精修(Phase 4) | 交付 | `workflow-revision.md`、`short-format.md` | 主会话自己去味:`short-deslop.md`,拿不准某条信号时查 `banned-words.md` 对应一节;去味交给写手:`agent-calls.md` | `正文.md` |
| 管理作者习惯 | 记、改、忘 | `author-memory.md`;完成即停,不建书、不写正文 | — | — |
故事文件只记录选出的套路、反转位置等设计,不写“已读 references”的回执。
**交接只靠落盘**:作者在对话里定下的字数、平台、人称、偏好、红线和否掉的方案,构思交付前写进 `设定.md`;写正文只读两份设计文件与本时刻的写作手法,不重读构思方法,也不回翻对话。
**换上下文**:构思时刻读得最多,汇报末尾建议作者新开对话说「写正文」;作者选择在本对话接着写时照常执行。新对话中,两份设计文件通过构思完成门禁即可进入写正文。
---
> 专业 agent 只查当前宿主:Claude `.claude/agents`(`subagent_type`)、OpenCode `.opencode/agents`(`subagent` 的 `agent`)、Codex `.codex/agents` TOML(`agent_type`)、Antigravity `.agents/agents`(`invoke_subagent` + `TypeName`);ZCode 查插件注册的同名角色,用 `Agent` 按实际 schema 派发,不要求 `.zcode/agents`。主会话自己写正文、去味是常态,不报;作者明确要交给写作助手而角色/工具缺失或返回 unknown agent 时,由主会话接手,对作者只说「这次我自己写」。
>
> 版本:项目根 `.story-deployed` 的 `agents_version` 与本版 `agents_version: 41` 不一致(缺失、非整数、更小或更大)时照常按当前宿主角色来源检查并 spawn,只对作者说一句「写作助手是旧版,运行 /story-setup(ZCode 先更新插件)后新开会话」;大于 41 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有当前宿主角色缺失或不暴露调用能力时才降级 solo/direct,对作者只说「这次我自己写」。
## 执行规则
1. **先定情绪,再定故事**。动笔前必须确定目标情绪(意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动),所有内容为这个情绪服务。
2. **一个核心支点撑一篇**。反转型围绕一次主揭示蓄力;无反转型围绕报应兑现或甜度递进积累期待。不多线、不铺世界观。
3. **每句话必须有用**。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。
4. **开头抓人,结尾留余韵**。开头写法以 short-craft「开头事件密度」为准,题材包「开篇范式」覆盖它。
5. **默认第一人称**,用亲历视角建立代入感。当前请求、本篇文风或题材需要第三人称时按其执行。
---
## 作者记忆管理
管理习惯按上表读 `references/author-memory.md`(整理、超编、迁移按其中指路)。
## 核心方法
- **按题材选写法**:确定题材后选用[题材包](references/genre-styles/)的腔调、开篇、钩子、情绪烈度、金句、套路与收尾;追妻按时代变体及小三/死人文学分支选择。冷门题材用公式安排结构,腔调按 `short-craft.md`。写法冲突时的先后见 short-craft 开头。
- **复用作者习惯**:有作者记忆时,正文前用 `scripts/author_memory_commit.py query --workspace {工作区} --book-root {项目目录} --kind prose_style --kind story_design [--genre {题材}] [--workflow 短篇]`(改写、去味只带 `--kind prose_style`),把输出的 `lines` 原样交正文/改写 agent 作自然倾向,不逐条追求命中,不牺牲连贯、节奏和字数;硬门禁、当前请求和本篇设定优先;没装下的交稿时用原话告诉作者。长期声明在收尾按上方管理入口处理。
---
## 写作流程
### Phase 1:确定目标情绪
从项目根及上一级往下 3 层找到 `短篇扫榜结论.md`(多份取最新)时先读其「选题匹配」,排第一的方向带着目标情绪当候选问作者;过了复扫日期就提醒可能过期。
问用户:**「你想让读者读完什么感觉?有没有想写的题材方向或灵感?」**
用户已说清读者读完的感觉 → 直接进入 Phase 2;只给了题材或梗、没说情绪 → 从下表带一个推荐情绪问一句,作者点头再进。
如果用户只有模糊想法 → 帮用户做情绪选择:
| 情绪类型 | 适合场景 | 难度 | 常见题材 |
|----------|----------|------|------------|
| 意难平 | 虐恋、遗憾、错过 | 中 | 追妻火葬场 / 甜宠(先虐后甜) |
| 反转震撼 | 悬疑、身份错位 | 高 | 悬疑 / 沙雕脑洞(反套路) |
| 爽感释放 | 打脸、逆袭 | 低 | 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗(古代上位) |
| 治愈温暖 | 成长、亲情、友情 | 中 | 甜宠 / 双男主(救赎线) |
| 细思极恐 | 悬疑、心理 | 高 | 悬疑 / 民俗怪谈 |
| 共鸣感动 | 现实、职场、婚姻 | 中 | 世情打脸(共鸣模式) / 追妻火葬场(小三文学) |
---
### Phase 2:构思核心框架
#### 对标上下文加载
存在本篇 `对标/`、项目根 `拆文库/` 或用户提供参考小说时,先完整读取 [references/benchmark-recall.md](references/benchmark-recall.md),执行对标发现、排除本书已写部分、题材匹配与召回。无外部对标时仍按原题材包执行。
#### 构思、设计与验收
完整步骤见 [references/workflow-design.md](references/workflow-design.md)。按首屏「写前必读」读完后执行;两份设计文件通过其中的 Phase 2 完成门禁,才可进入 Phase 3。
---
### Phase 3:逐场景写作
进入正文写作前,完整读取 [references/workflow-draft.md](references/workflow-draft.md),执行交付参数锁定、写前验收与逐场景写作;只做构思或精修时不加载。下面两段是写正文和精修共用的完成标准,只在这里写。
**小节完整性流程**:
1. **写作时**:每节围绕一个主问题推进;让风险、信息、关系、资源、决定、行动或读者理解至少发生一项具体变化。相关情节点可以由同一动作链或对话同时兑现,不为拆成多个“子事件”重复铺陈。
2. **写完后**:对照 `小节大纲.md` 检查批准内容是否落地、因果与下一步是否读得懂、感知/反应是否提供新信息、埋下的东西后面有没有接上。
3. **发现缺口时**:只补回原计划中漏掉的动作、证据、选择或后果;若本节已经完成职责,即使很短也不加任务卡点、对话、回忆或环境来凑长度。
4. **发现冗余时**:删除不改变风险、信息、关系、资源、决定、行动或可信度的阻碍、复述与旁人反应;不把“有冲突”本身当成保留理由。
### Phase 3 完成门槛(进入 Phase 4 前必须通过)
- [ ] 总字数(交付检查报的非空白字数)进入锁定的用户范围;作者没给时进入 `设定.md` 的目标字数
- [ ] 每节完成其批准情节点或状态变化;没有为拉齐长度补冲突、对话、回忆或旁人反应
- [ ] 节数 = 小节大纲规划节数(不得合并/省略;某节确实不需要独立存在,回构思改大纲,不在写正文时偷减)
- [ ] 身体细节按叙事功能判断,不设次数上限;不对“手、眼、心”等单字计数改稿
- [ ] 「像/好像/仿佛/如同」不成片堆叠;超过 10 处需逐处复核功能,不机械全删
- [ ] `node {skill 根}/scripts/check-ai-patterns.js --check --fail-on=blocking {短篇目录}/正文.md` 无 blocking 命中;其余提示先通读,确属问题再改
- [ ] `node {skill 根}/scripts/check-degeneration.js --check {短篇目录}/正文.md` 无 blocking 退化命中(复读/截断/工程词泄漏)
**不通过 → 回退补足,不得进入精修。**
---
### Phase 4:精修打磨
精修或质量自检前,完整读取 [references/workflow-revision.md](references/workflow-revision.md),按其职责分工去味、查一致性、做最终扫描与交付验收;只做构思时不加载。
---
## 流程衔接
**流水线:** 短篇
**位置:** 写作(第 3/3 步)
有参考小说想对标 → `/story-short-analyze`(存入 `拆文库/{书名}/`);写完去 AI 味 → `/story-deslop`;想自检 → Phase 4 流程;要市场方向 → `/story-short-scan`;设定太大适合长篇 → `/story-long-write`。