SkillAtlasSkill 详情

story-short-write

网文写作 skill 包,覆盖长篇与短篇网络小说的扫榜、拆文、写作、去AI味、封面图全流程。

审核状态:已审核Quality 80Security 80

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月24日

English | 中文

oh-story-claudecode

网文写作 skill 包,覆盖长篇与短篇网络小说的扫榜、拆文、写作、去AI味、封面图全流程。内置适配 Claude Code、OpenCode、ZCode、OpenClaw、Codex CLI、Reasonix;能读取项目文件的 Web AI / Agent 环境也可按通用 skills 路径使用。

核心思路

套路 = 确定性的情绪满足

专业作者的方法论三步走:

  1. 扫榜:分析热门榜单,洞察题材、人设、切入点。
  2. 拆文:拆解大纲节奏与剧情素材,建立个人模块库。
  3. 商业化写作:学习并运用钩子、爽感、期待感等核心技巧。

围绕四条线展开:爆款逆向 · 剧情模块化重组 · 上下文状态分层管理 · 人机协同。

v0.7.6 起:重点在正文那一段。写正文的 narrative-writer 有三条规则一直在空转——「写完必须立即统计字数」给的是一条 Bash 命令,可它的工具白名单里没有 Bash,同一句话又禁掉了模型估算,于是「字数达标是硬性要求」背后没有任何可执行判据;「返回前报出句长分布」同样只能编,而主会话正拿它做质量校验;「正文逐项展开细纲」是最高优先级的明令,放宽的那半边却只写在主 skill 里、从不进 spawn 提示词,子代理只看见限制,就按一个情节点一段平推成流水账。三条都已修好,实跑首次落盘即进验收区间(对照组不到下限的 73%)。新增细纲照搬检测:细纲把情节点写成成品散文句时正文只剩誊抄,配套的「复沓锚句」字段让必须逐字进正文的原话(誓言、系统面板、案卷原话)不被误判。另外 Claude Code 上用 Bash 重定向写正文也会被大纲/追踪守卫拦下,以及每次会话固定加载的文本再降两成(开书 −30%、回炉 −41%)。本版 agents_version 为 25,已部署项目需重新运行 /story-setup 并新开会话。

v0.7.5 起:稳定版。补上 Claude Code 写正文守卫缺的追踪检查点门——另三端从 v0.7.3 起就有,主力端此前会静默写出若干章没有追踪的正文;长篇 story-long-write 每次触发都整份进上下文的 SKILL.md 从 82 KB 降到 54 KB(开书三阶段抽成按需读的 workflow-setup.md,日更不再为用不上的建纲步骤付费);清掉一批过度累加的限制指令,其中一条把正文里普通的「他说」判成了违规。本版 agents_version 为 24,已部署项目需重新运行 /story-setup 并新开会话。

v0.7.4 起:全是修复。story-import 不再把用户自己的书登记成对标(此前会出现「对标目录内容跟自己设定完全相同」);story-setup 重部署不再把 Reasonix / generic 项目误判成 OpenClaw,多端部署也不再每次开会话误报参考包缺失;Stage 6 文风统计在 Windows 上不再必挂。spawn 的 agents_version 硬门禁改成提示——版本不匹配照常并行,只有 agent 文件缺失才降级 solo。本版 agents_version 为 23,已部署项目需重新运行 /story-setup 并新开会话。

更早版本变更见 CHANGELOG.md。

流程总览

flowchart LR
    classDef entry fill:#f0f0f0,color:#333,stroke:#999,stroke-width:1px
    classDef phase fill:#e8f4fd,color:#1a1a2e,stroke:#4a9be8,stroke-width:1px
    classDef final fill:#fce4ec,color:#333,stroke:#e57373,stroke-width:1px

    entry_l{{"长篇作者"}}:::entry
    entry_s{{"短篇作者"}}:::entry
    entry_r{{"已有方向"}}:::entry
    entry_i{{"已有小说"}}:::entry

    subgraph S0 ["  环境部署"]
        setup["/story-setup"]:::phase
    end

    subgraph S1 ["  扫榜选材"]
        direction TB
        scan_l["长篇扫榜"]:::phase
        scan_s["短篇扫榜"]:::phase
    end

    subgraph S2 ["  拆文学习"]
        direction TB
        analyze_l["长篇拆文"]:::phase
        analyze_s["短篇拆文"]:::phase
        import_l["已有小说导入"]:::phase
    end

    subgraph S3 ["  落笔创作"]
        direction TB
        write_l["长篇写作"]:::phase
        write_s["短篇写作"]:::phase
    end

    subgraph S4 ["  精修定稿"]
        deslop["去 AI 味"]:::final
    end

    entry_l --> setup
    entry_s --> setup
    setup --> scan_l
    setup --> scan_s
    scan_l --> analyze_l
    scan_s --> analyze_s
    analyze_l --> write_l
    analyze_s --> write_s
    entry_r -.->|跳过准备| write_l
    entry_r -.->|跳过准备| write_s
    entry_i -.->|推荐先部署| setup
    setup -.->|逆向导入| import_l
    import_l -.->|续写| write_l
    write_l --> deslop
    write_s --> deslop

安装

方式一 直接告诉 Claude Code / OpenCode / ZCode / OpenClaw / Codex / Reasonix,或其他支持导入 GitHub 仓库/skill 的 Web AI / Agent 平台:

安装这个 skill https://github.com/zenstory-ai/oh-story-claudecode

升级时再说一次同一句话即可。

方式二 命令行:

npx skills add zenstory-ai/oh-story-claudecode -y -g

-g 全局安装,所有目录可用;去掉 -g 则只装到当前目录。更新时重新执行同一条命令即可。

Windows 上偶尔会看到 ENOENT ... mkdir 报错但末尾仍显示 Done!,这是有技能没装全。story-setup 的参考资料目录整个缺了一块时,跑 /story-setup 会提示参考资料包不完整;其它形式的残缺不一定有提示。无论有没有报错,重跑同一条安装命令即可修复。

Codex / ZCode / OpenCode / OpenClaw / Reasonix / Web AI 使用说明

Codex 用户: repo 内直接使用:Codex 会扫描 $REPO_ROOT/.agents/skills(指向 skills/ 的 symlink)发现 13 个 skill;用 $story、$story-setup 或 /skills 调用。Windows 上 git 需开 core.symlinks=true,否则 symlink 失效,改走下方 $story-setup 部署。

跑 $story-setup 部署到写作项目后,会写入 .codex/agents/*.toml、.codex/hooks.json、.codex/hooks/{story_codex_hook.py,run-story-hook.sh,run-story-hook.cmd} 和 .codex/skills/story-setup/references/agent-references/;请信任项目 .codex/ 配置层并在 /hooks review/trust hooks、新开 Codex 会话,让 custom agents 生效。

ZCode 用户: 在 Plugin Management 中把本仓库加入 marketplace,安装 oh-story 后可用 $story、$story-setup 或 / 面板调用 13 个 Skills/Commands。$story-setup 选择 target_cli=zcode 会部署 .zcode/skills/、.zcode/commands/、.zcode/hooks/story_zcode_hook.js,安全合并 .zcode/config.json 与根 AGENTS.md;Hook 依赖 PATH 中的 node。ZCode 3.3.4 不执行项目/plugin custom agents,也没有 PreCompact / SessionEnd,相关流程会明确降级 solo/direct,compact 后由 SessionStart 恢复上下文。

OpenCode 用户: 全局安装后 opencode 自动从 ~/.claude/skills/ 发现 skills;首次用自然语言触发 story-setup(如「用 story-setup 部署网文写作环境」),部署后退出重进 opencode -c 才能用 slash command。部分 hook 行为与 Claude Code 有差异(session-start / session-end / compact 等),详见 CONTRIBUTING.md 的 OpenCode 章节。

OpenClaw 用户: 当前支持 skills-only:OpenClaw 可从 workspace skills/、.agents/skills、~/.agents/skills、~/.openclaw/skills 等 skill root 发现本项目 13 个 skill;SKILL.md 已按 OpenClaw 要求使用单行 name / description 与单行 JSON metadata.openclaw。story-setup 选择 target_cli=openclaw 时会把 skills 复制到项目 skills/ 并写入 OpenClaw 版 AGENTS.md;agents/hooks 暂不部署,写正文前大纲守卫在 OpenClaw 下是 skill 内软约束。部署后如未显示新 skills,请新开 OpenClaw session 或等待 watcher 刷新。

Reasonix 用户: 当前支持 skills + 原生 plugin manifest:Reasonix 原生扫描项目 skill root(.agents/skills 等,指向 skills/ 的 symlink)发现 13 个 skill,用 reasonix doctor capabilities 校验;也可用根 reasonix-plugin.json 走 reasonix plugin install。story-setup 选择 target_cli=reasonix 时会把 skills 复制到项目 skills/ 并写入 Reasonix 版 AGENTS.md;hooks/custom agents 暂不部署,涉及专业 Agent 的 skill 走 solo/direct fallback。Windows 未启用 symlink 时改走原生 plugin。

Web AI / 通用 Agent 用户: 平台能读取 GitHub 仓库或项目文件时,可让 Agent 读取 skills/*/SKILL.md 与对应 references/;需要本地副本时,story-setup 可选 target_cli=generic,只写通用 AGENTS.md 和 skills/。无本项目 hooks/custom agents 的环境按 skill 内软约束或 solo/direct fallback 执行。

OpenClaw / Reasonix / 通用路径的目录残留要手动清: 这三条路径的 skill 副本在项目 skills/ 里,重跑 /story-setup 执行的就是项目里那份,自动清理到不了。项目里若出现 skills/story-setup/references/agent-references/agent-references/(可能嵌了多层)或 skills/story-setup/skills/,手动删掉。要让项目里的 skill 文本本身更新,还需要重新安装本项目后,用新包覆盖项目 skills/ 下这 13 个目录。

升级后如果项目里已经跑过 /story-setup,建议在项目根重跑一次 /story-setup,同步 hooks / agents / references。每版变更见 CHANGELOG.md 与 Releases。

多 agent 协作要先部署再新开会话: 7 个专业 agent(story-architect、narrative-writer、consistency-checker 等)由 /story-setup 写入项目 .claude/agents/,或由 $story-setup 写入 .codex/agents/*.toml。Claude Code / Codex 都在会话启动时更稳定地注册 custom agent;ZCode 3.3.4、OpenClaw Phase 1、Reasonix Phase 1 与 generic 路径默认走 skills + solo fallback。判断是否生效:新会话里跑 /story-review,报告头是 Effective Mode: full/lean 即注册成功,是 Fallback: ... -> solo 说明当前运行时未暴露该 agent。

导入续写顺序: 推荐先在写作项目根运行 /story-setup(部署 hooks/agents/AGENTS),新开/刷新会话后运行 /story-import 导入已有小说,再用 /story-long-write 日更 或 /story-long-write 写第N章 续写。也可以直接运行 /story-import;它会先检测是否已 setup,未部署时让你选择先去 setup 或继续串行导入。

Skills

Skill触发说明
story-setup/story-setup $story-setup /准备写书环境部署 · Claude/OpenCode/Codex/ZCode/OpenClaw/Reasonix + generic(已有配置安全合并)
story/story $story /story dashboard工具箱路由 · 模糊意图分发 + 本地拆文/项目 Dashboard
story-long-write/story-long-write /写长篇长篇写作 · 大纲搭建、人物设定、正文输出
story-long-analyze/story-long-analyze长篇拆文 · 黄金三章、爽点设计、节奏分析
story-long-scan/story-long-scan长篇扫榜 · 起点/番茄/晋江市场趋势
story-short-write/story-short-write短篇写作 · 情绪设计、反转构思、精修出稿
story-short-analyze/story-short-analyze短篇拆文 · 故事核、结构分析、情感线、反转设计、写作手法、共鸣分析
story-short-scan/story-short-scan短篇扫榜 · 知乎盐言/番茄短篇风口数据
story-deslop/story-deslop /去AI味去AI味 · 检测并清除 AI 写作痕迹
story-import/story-import /导入小说逆向导入 · 将已有小说反向解析为标准项目结构
story-review/story-review /审查多视角审查 · 4 Agent 多视角审稿 + 番茄/起点/知乎评分标准
story-cover/story-cover /封面封面生成 · 书名题材分析 + GPT-Image-2(Codex 内置用量 / API 回退)
browser-cdp/browser-cdp浏览器操控 · CDP 协议复用登录态抓取数据

story-deslop 的本地检查是写作 lint:blocking 只限确定性句式/标点问题,其他提示按读感判断;朱雀等外部检测只作自测参考,不替代人工读感。

自然语言同样触发:

  • 「帮我开书」→ story-long-write
  • 「这篇太 AI 了」→ story-deslop
  • 「把我的书导进来」→ story-import
  • 「打开工作台」→ story dashboard(本机浏览拆文库与写作项目,可轻量编辑)
  • 「沈栀现在什么状态」→ 自动 spawn story-explorer agent

Story Dashboard

运行 /story dashboard(Codex 用 $story dashboard)打开本地写作工作台,浏览拆文库与 长/短篇项目文件树,并完成搜索、Markdown 预览、文本编辑、冲突保护保存和确认删除。 服务仅监听 127.0.0.1,小说内容不会上传。

OH STORY 本地写作工作台

封面生成示例

封面示例 — 剑道独尊

拆文 demo — 盘龙

使用 /story-long-analyze 深度模式分析《盘龙》前23章的完整输出:

demo/拆文库/盘龙/
├── 概要.md              # 全书概要 + 章节索引
├── 拆文报告.md           # 五维评分 + 爽点密度 + 可借鉴套路
├── 文风.md              # 句长/标点/对话潜台词/情绪节奏 + 原文锚点
├── 章节/
│   ├── 第1章_深度拆解.md … 第3章_深度拆解.md  # 黄金三章逐章深度分析
│   └── 第1章_摘要.md … 第23章_摘要.md          # 每章一个摘要文件
├── 角色/
│   ├── 林雷.md           # 主角完整档案
│   ├── 霍格.md           # 核心配角
│   ├── 希尔曼.md         # 核心配角
│   ├── 希里.md           # 功能角色
│   ├── 德林柯沃特.md      # 核心配角
│   ├── 沃顿.md           # 功能角色
│   └── 角色关系.md        # 关系网络
├── 剧情/
│   ├── 故事线.md          # 框架识别 + 4剧情 + 2故事线
│   ├── 强者过境与魔法启蒙.md 等  # 五个分场景剧情单元
│   ├── 节奏.md            # 节奏/关键信息递进/情绪触发爆发节律
│   └── 情绪模块.md        # 读者需求/情绪引擎/可复用写作模块
└── 设定/
    ├── 世界观/
    │   ├── 背景设定.md    # 核心规则 + 特殊设定
    │   ├── 力量体系.md    # 战气 + 魔法 + 等级
    │   ├── 地理.md        # 安达卢西亚 + 玉兰大陆
    │   └── 金手指.md      # 盘龙戒指 + 德林柯沃特
    └── 势力/
        └── 巴鲁克家族.md  # 龙血血脉家族档案

长篇拆文会额外生成 文风.md,并在 剧情/ 下产出 节奏.md(节奏/关键信息递进/情绪触发爆发节律)和 情绪模块.md(读者需求/情绪引擎/可复用写作模块);日更写作会通过 对标/{书名}/剧情/ 读取这些素材,避免文风、节奏和情绪模块偏离对标书。

拆文 demo — 曾将爱意私藏(短篇)

使用 /story-short-analyze 拆解短篇《曾将爱意私藏》(约 8500 字,追妻火葬场 · 死遁)的完整输出:

demo/拆文库/曾将爱意私藏/
├── 原文/原文.txt        # 原文备份
├── 拆文报告.md          # 故事核 + 五维评分 + 爆点6维 + 认知反转 + 共鸣9层
├── 情节节点.md          # 54 个情节节点(原文引用 + 情绪标记 −9~+9)
├── 写作手法.md          # POV / 对话 / 信息差 / 物件钩子 等 11 项
└── _meta.json           # 结构计数 structure_counts(Phase 7 门控依据)

短篇拆文产出 拆文报告 / 情节节点 / 写作手法,下游 /story-short-write 据此写同题材新短篇。

导入 demo — 让你管账号,你高燃混剪炸全网(长篇续写工程)

推荐先 /story-setup 部署写作项目,再使用 /story-import 把作者已发布的前 20 章(约 3.7 万字)逆向重建为可续写的写作工程,最后接 /story-long-write 日更 或 /story-long-write 写第21章 续写:

demo/长篇/让你管账号,你高燃混剪炸全网/
├── 正文/        第001–020章(已发布原文)
├── 大纲/        大纲.md · 卷纲_第1卷.md · 细纲_第001–020章.md(1 章 1 文件)
├── 设定/        角色/{江晨·钟嘉嘉·周薄森·张耀祖·吴伟·李林}
│                世界观/{背景设定·金手指} · 关系.md · 题材定位.md · 文风.md
└── 追踪/        _tracking-state.json · 上下文.md · 伏笔.md · 逐章记录/
                 角色状态/{角色名}.md · 时间线/{作者真相.md·读者已知.md}

逐章提取(事件 / 角色 / 设定 / 伏笔 / 时间线)反推为续写 bible,作者从第 21 章无缝接着写。

Agent 体系

写作 skill 内部通过 7 个专业 Agent 协作,各司其职:

Agent模型职责
story-architectOpus故事架构 · 题材定位、大纲结构、钩子/反转设计、情绪弧线
character-designerSonnet角色设计 · 角色档案、语言风格、动机链、对话创作
narrative-writerSonnet叙事写手 · 正文写作、去AI味、格式合规
consistency-checkerHaiku一致性检查 · 事实冲突扫描、伏笔追踪、S1-S4 分级报告
story-researcherSonnet资料研究 · CDP 搜索+正文提取、多源交叉验证、结构化参考文件输出
story-explorerHaiku故事查询 · 角色/伏笔/设定/进度只读查询,日更上下文快速加载
chapter-extractorHaiku章节提取 · 摘要+情节点+角色提及,并行拆文核心单元

Agent 按需加载 references/ 中的写作理论(角色设计、对话技法、反转工具箱等 100+ 份方法论文件),不预占上下文。

自动化 Hooks

/story-setup 为 Claude Code 部署 8 个自动化 hook:

Hook触发时机功能
session-start.sh会话开始显示分支、进度快照、拆文状态
session-end.sh会话结束记录会话日志到 追踪/session-log.txt
detect-story-gaps.sh会话开始检测设定缺口、大纲缺失、伏笔断线
pre-compact.sh上下文压缩前保存进度快照路径和行数摘要
post-compact.sh上下文压缩后提示读取进度快照恢复上下文
validate-story-commit.shgit commit 时检查硬编码属性、设定必填字段(仅警告,不阻断)
guard-outline-before-prose.sh写正文前(Write/Edit)缺对应细纲/小节大纲时阻止首次创建正文(阻断),强制先搭大纲
check-prose-after-write.sh正文写入后(Write/Edit)轻量扫描截断、工程词、毒句式和字数欠账(提醒,不阻断)

项目文件结构

一部长篇动辄几十万字、几百章。设定冲突、伏笔断线、时间线对不上——写到最后全靠记忆硬撑,迟早翻车。

用文件系统把设定、大纲、正文、追踪拆开,每个维度独立维护。对话只负责创作,不负责记忆。

长篇:

{书名}/
├── 设定/
│   ├── 世界观/          # 背景、力量体系等,按主题拆文件
│   ├── 角色/            # 每个人物一个文件(江晨.md、钟嘉嘉.md)
│   ├── 势力/            # 每个势力/组织一个文件(火箭军文工团.md)
│   ├── 关系.md          # 角色关系映射
│   └── 题材定位.md      # 题材核心梗+对标分析
├── 大纲/
│   ├── 大纲.md          # 全书卷级结构
│   ├── 卷纲_第一卷.md   # 每卷一个:爽点节奏+情绪弧线+人物弧线+伏笔+反转
│   ├── 细纲_第001章.md  # 每章一个:内容概括+多线情节+人物关系/出场顺序+钩子
│   └── ...
├── 正文/
│   ├── 第001章_章名.md
│   └── ...
├── 对标/                # 对标参考(结构化子目录从拆文库同步)
│   └── {对标书名}/
│       ├── 原文/            # 对标书原文章节
│       ├── 角色/            # 结构化角色卡(从 analyze 输出同步)
│       ├── 剧情/            # 结构化剧情线/节奏/情绪模块(从 analyze 输出同步)
│       ├── 设定/            # 结构化设定(从 analyze 输出同步)
│       ├── 文风.md          # 日更前读取,用来贴近对标书文风
│       └── 拆文报告.md      # analyze skill 输出的拆文报告
├── 追踪/                # 文件优先的连续性状态
│   ├── _tracking-state.json # 唯一结构化权威状态(不进正文 prompt)
│   ├── 上下文.md        # 派生续写状态卡(固定 7 栏,≤12KB)
│   ├── 逐章记录/        # 每章未来相关连续性记录/修订覆盖层(≤3072 bytes)
│   ├── 角色状态/        # 派生核心角色快照(江晨.md、钟嘉嘉.md)
│   ├── 伏笔.md          # 派生伏笔当前视图
│   └── 时间线/          # 派生作者真相.md + 读者已知.md
├── 参考资料/            # story-researcher 输出的研究资料
│   └── {topic}.md       # 按研究主题拆分

短篇:

短篇/{标题}/
├── 正文.md              # 完成稿
├── 小节大纲.md          # 8 节结构 + 情绪曲线
└── 拆文库/              # 如有参考小说(analyze 输出)
    └── {书名}/
        ├── 拆文报告.md
        ├── 情节节点.md
        └── 写作手法.md

拆文库: 拆文 skill 默认输出到项目根目录 拆文库/{书名}/,产出结构化目录(角色/剧情/设定/章节),其中长篇剧情目录包含 节奏.md 和 情绪模块.md,是 analyze 的源数据(source of truth)。写作 skill 通过 对标/{书名}/剧情/ 等子目录消费这些资产(项目级引用视图),或自动回退读取 拆文库/。

.active-book: 项目根目录的文本文件,内容是当前活跃书目的相对路径(如 长篇/我的小说),hook 和写作 skill 据此定位当前项目。

知识体系

各 skill 自带 references/ 知识库,按需加载,不占上下文。

展开各 skill 知识库主题清单
主题内容所在 skill
大纲排布五步大纲法 · 故事结构分级 · 节点设计法 · 升级感设计long-write
开头设计开篇模式 · 前 500 字设计 · 黄金三章开头策略long-write / short-write
人物设计角色设定 · 人物提取 · 关系映射 · 动机链 · 群像long-write / short-write / short-analyze
钩子技法章尾钩子 13 式 · 章首钩子 7 式 · 段落级钩子 · 悬念编排long-write / short-write / short-analyze
情绪设计6 种弧形模板 · 期待感管理 · 题材赛道策略long-write / short-write
题材框架长篇八节点 · 短篇压缩三幕 · 8 大题材开头模板long-write / short-write / short-analyze
对话技法节奏 · 潜台词 · 信息控制 · 对话模式数据库long-write / short-write
反转工具箱类型 · 时机 · 误导底层路径long-write / short-write
风格模块对话 · 打斗 · 智斗 · 镜头式写作 · 装逼打脸 · 白描long-write
高级技法小纲四步法 · 高潮逆推 · 双线结构 · AB 交织法long-write
去AI味预防 · 三遍去AI法 · 改写范例库 · 禁用词表deslop / long-write / short-write
质量检查通用 · 长篇专项 · 短篇专项 · 毒点排查long-write / short-write / short-analyze
写作公式21 大题材写作公式 · 三翻四震 · 感情线四阶段short-write / short-analyze
女频写作女读者偏好 · 情感描写 · 感情线模式 · 对标拆书short-write
拆文方法黄金三章 · 情绪曲线 · 结构拆解 · 知乎风格分析long-analyze / short-analyze
短篇方法论故事核 · 情节节点 · 爆点分析 · 写作手法 · 节奏分析 · 共鸣分析 · 人物分类 · 平台适配short-analyze
拆文实例完整案例拆解 · 模板化输出short-analyze
读者画像9 维画像 · 目标读者分析long-scan
市场数据题材趋势 · 平台特性 · 采集格式 · 投稿指南long-scan / short-scan
封面风格10 大题材视觉风格 · 色彩构图 · 提示词模板story-cover
多视角审稿多视角审稿 · 评分标准 · 毒点排查story-review

适用平台

长篇 起点中文网 · 番茄小说 · 晋江文学城 · 七猫小说 · 刺猬猫

短篇 知乎盐言故事 · 番茄短篇 · 七猫短篇

真实产出样例见 demo/:短篇拆文《曾将爱意私藏》· 长篇拆文《盘龙》· 长篇续写工程《让你管账号,你高燃混剪炸全网》· 封面《剑道独尊》示例图。

这套 skill 现在能让我度过找工作的过渡期 :joy:,希望也能帮到有需要的朋友。

贡献

欢迎贡献新 skill、补充知识库、更新市场数据。详见 CONTRIBUTING.md。

交流

致谢

其他

中风险

  • 来源需自行核对维护者身份。
  • 包含脚本或命令调用,安装前请复核。
  • 未检测到明显外部权限要求。
  • 未检测到高风险命令。
  • 扫描发现:3 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/zenstory-ai/oh-story-claudecode.git
  3. 将 "skills/story-short-write" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/zenstory-ai/oh-story-claudecode.git
  3. 将 "skills/story-short-write" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/zenstory-ai/oh-story-claudecode.git
  3. 将 "skills/story-short-write" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/zenstory-ai/oh-story-claudecode.git
  3. 将 "skills/story-short-write" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/zenstory-ai/oh-story-claudecode.git
  3. 将 "skills/story-short-write" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
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:短篇网文写作

你是短篇网文写作执行器。从构思到成稿,完成一篇完整的短篇小说。

执行规则:短篇以情绪为目标,所有内容为情绪服务。


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。

Spawn 版本提示(不阻断 spawn):先读取项目根 .story-deployed 的 agents_version。与本版 agents_version: 25 不一致时(标记缺失、字段缺失/非整数、小于或大于 25)照常按文件存在性检查并 spawn,同时报告 Notice: agents bundle 版本不匹配(项目 {N},本版 25) 并提示重新运行 /story-setup 后新开会话;大于 25 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告 Fallback: ... -> solo。

执行规则

  1. 先定情绪,再定故事。动笔前必须确定目标情绪(意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动),所有内容为这个情绪服务。
  2. 一个反转撑一篇。所有铺垫为反转服务,所有情绪为反转蓄力。不多线、不铺世界观。
  3. 每句话必须有用。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。
  4. 开头 3 句定生死,结尾定传播。开头必须包含钩子,结尾必须有余韵。
  5. 默认第一人称。短篇网文(盐言/七猫短篇等)绝大多数用第一人称,代入感最强。除非题材明确需要第三人称(如多视角悬疑),否则一律用「我」。

格式规范(最高优先级)

详细规则见 references/short-format.md,写作前必须加载。主会话与 narrative-writer 子代理使用同一套正文格式:正文只允许保存在 正文.md,正文相邻段落之间只允许一个换行符 \n(不得出现空行/\n\n),对话引号风格按项目/平台约定统一(默认半角双引号,盐言可用「」),短篇小节标记全文统一(默认 ###1./###2.)。如果子代理输出与主会话格式不一致,按本格式规范重排后再写入文件。


核心方法

除了上面的执行规则,构思和写作时遵循:

  • 从验证过的模式出发:有对标书就先拆解,没有就从 genre-styles/{题材}.md(核心 10 题材)或 genre-writing-formulas.md(冷门题材)找对应的短篇剧情模式
  • 定方向就换风格:题材方向一旦确定(如追妻火葬场),立刻加载 references/genre-styles/{题材}.md——正文的腔调、开篇、钩子、情绪烈度、对话金句、招式、收尾全部切到该题材。核心 10 题材(追妻火葬场 / 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗 / 民俗怪谈 / 悬疑 / 甜宠 / 双男主 / 沙雕脑洞)有专属风格包,其中追妻含 现代/古代/民国 时代变体与 小三文学/死人文学 流派分支;冷门题材用 genre-writing-formulas.md 的结构骨架兜底,腔调仍按 short-craft.md 通用底座
  • 只加载必需信息:写每节前明确目标情绪和要用的技法,答不出就先回读参考

写作流程

Phase 1:确定情绪目标

问用户:「你想让读者读完什么感觉?有没有想写的题材方向或灵感?」

如果用户有明确想法 → 直接进入 Phase 2。

如果用户只有模糊想法 → 帮用户做情绪选择:

情绪类型适合场景难度市场热度常配题材包
意难平虐恋、遗憾、错过中🔥🔥🔥追妻火葬场 / 甜宠(先虐后甜)
反转震撼悬疑、身份错位高🔥🔥🔥悬疑 / 沙雕脑洞(反套路)
爽感释放打脸、逆袭低🔥🔥世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗(古代上位)
治愈温暖成长、亲情、友情中🔥🔥甜宠 / 双男主(救赎线)
细思极恐悬疑、心理高🔥悬疑 / 民俗怪谈
共鸣感动现实、职场、婚姻中🔥🔥🔥世情打脸(共鸣模式) / 追妻火葬场(小三文学)

Phase 2:构思核心框架

如果用户有参考小说,先用 /story-short-analyze 拆解。默认输出存入项目根目录 拆文库/{书名}/;如用户指定当前短篇引用目录,则可输出/同步到 {短篇标题}/对标/{书名}/。写作时会自动查找并读取这些拆文结果,不需要用户手动复制到 prompt。

对标上下文加载

拆文库/对标关系:拆文库/ = analyze skill 的原始产出(数据源),位于项目根目录。对标/ = 当前短篇的引用视图,位于 {短篇标题}/对标/。短篇写作优先读取 {短篇标题}/对标/{书名}/,不存在则读取项目根 拆文库/{书名}/。

推荐目录结构:

项目根/
├── 拆文库/
│   └── {书名}/
│       ├── 拆文报告.md
│       ├── 情节节点.md
│       └── 写作手法.md
└── {短篇标题}/
    ├── 设定.md
    ├── 小节大纲.md
    ├── 正文.md
    └── 对标/
        └── {书名}/
            ├── 拆文报告.md
            ├── 情节节点.md
            └── 写作手法.md

对标发现(先于下方反应式加载):项目根 拆文库/ 有拆过的短篇时,先按题材主动推荐一本对标,不要被动等用户开口。

  1. ls 拆文库/ 列书目;先从当前项目目录名和 设定.md「基本信息」识别本篇标题,排除同名或来源指向当前 正文.md 的 拆文库/{当前书}/。story-import 生成的本书拆文分析属于续写基线,不是对标候选。排除后为空 → 跳过(无对标按题材包写,见 Phase 1 情绪→题材包表)。
  2. 逐本读 拆文库/{书}/_meta.json 的 genre_detected,与本篇题材比对,标 同题材 / 弱相关。
  3. 有候选 → 用 AskUserQuestion 推荐(列候选书 +「不用,按题材包写」)。选定后记入本篇 设定.md「对标摘要」区作主对标,并按上方「拆文库/对标关系」规则把 拆文库/{书}/ 同步到 {短篇标题}/对标/{书}/。

如果工作目录下存在 对标/ 或项目根存在 拆文库/,或用户提到参考小说:

  1. 先按上方「对标发现」第 1 条的同一口径识别本篇,另排除历史误建的 对标/{当前书}/;排除后没有外部对标时按题材包写,不进入下面几步。

  2. 按上述顺序查找 拆文报告.md、情节节点.md、写作手法.md、_meta.json

  3. 读 _meta.json.genre_detected,按下表加载对应题材风格包(analyze 识别的题材 → write 的 genre-styles 包),正文腔调/招式随之切换:

    analyze 的 genre_detected加载 genre-styles/ 包
    追妻(现代 / 古代 / 民国)追妻火葬场.md(按「时代变体」节切换身份词与招式)
    小三 / 死人文学追妻火葬场.md(「流派分支」节)
    世情 / 打脸爽文 / 家庭伦理世情打脸.md
    重生复仇复仇打脸.md
    豪门 / 总裁(豪门联姻虐恋)总裁豪门.md
    宫斗宅斗 / 宫斗 / 宅斗 / 古言重生宅斗宫斗.md
    民俗 / 怪谈 / 灵异民俗怪谈.md
    悬疑 / 推理 / 惊悚悬疑.md
    甜宠 / 先虐后甜 / 先婚后爱甜宠.md
    双男主双男主.md
    沙雕 / 脑洞 / 弹幕 / 系统沙雕脑洞.md
    仙侠 / 通用无专属包 → short-craft.md 底座 + genre-writing-formulas.md 兜底
  4. 读取核心发现:结构段落、情绪曲线、反转位置、铺垫方式、句式节奏、可借鉴技法。把拆文报告里的具体招式对到题材包招式库:拆文给「这一篇怎么做的」,题材包给「这一类通用怎么做」,两者合用——拆文是当前对标书的实证,题材包是该题材的通法

  5. 写入本篇 设定.md 的“对标摘要”区,写作时每个场景从中召回 1-2 个相关技法

  6. 如只找到原文、未找到拆文报告,提示用户先运行 /story-short-analyze;如用户要求继续,也可只按原文做弱参考

拆文产出格式:analyze 落盘的完整文件树、_meta.json schema、Stage→文件映射,以及「story-short-write 怎么读这些产出」的下游消费规范,见 references/output-contract.md。

多对标书时:参 references/cross-book-recall.md,副对标 anchor 入「对标摘要」区

Agent 调用:story-architect

构思阶段,如果项目已部署 story-architect agent(查找顺序见顶部),可 spawn Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:短篇构思\n查询参数:{情绪目标+题材方向}") 辅助框架设计。如 agent 不可用,由主线程直接执行。

帮用户确定短篇的核心框架:

## 短篇核心框架

### 基本信息
- 标题(暂定):{}
- 目标字数:{} 字(短篇通常 8000-20000 字)
- 目标平台:{}
- 情绪目标:{读者读完的感受}

### 一句话梗概
{主角 + 困境 + 反转 + 情绪落点}

### 核心反转
- 反转类型:{身份反转/视角反转/动机反转/时间线反转}
- 反转内容:{一句话描述}
- 铺垫线索:{至少 3 个铺垫点}

### 情绪设计
- 开头情绪:{}(强度 {1-10})
- 中段情绪:{}(强度 {1-10})
- 反转情绪:{}(强度 {1-10},峰值维持 ≥2 节)
- 结尾情绪:{}(强度 {1-10})
- 反转高潮不要骤降:反转前 1 节开始升温,反转节达到峰值,反转后 1 节维持峰值不骤降

### 人设速写
- 主角:{一句话人设}
- 关键角色:{一句话人设}
- 关系:{他们之间的关系}

框架确定后,完成设计任务,然后在工作目录下创建文件。

设计任务(框架确定后执行)

详细步骤和模板见 references/writing-workflow.md。构思时从目标情绪反推剧情,不是从灵感正向构建。按顺序完成:

  1. 定平台基调 + 加载题材风格包 → 先读 references/submission-craft.md 定投稿平台(知乎/小程序/番茄),正文视角、矛盾烈度、章末落点随之切换;再读 references/genre-styles/{题材}.md(核心 10 题材)+ 通用底座 references/short-craft.md,从招式库选 2-3 个核心招式(如追妻的白月光触发链 / 信物翻转 / 火葬场预告),写入 设定.md「题材招式」区,全程照此招式与腔调写
  2. 设计反派(如有)→ 加载 villain-and-reveal.md
  3. 确定揭露方式 → 同上
  4. 编写 小节大纲.md(格式见 writing-workflow.md):短篇只做轻量蓝图,每节包含结构段/五段功能、人物/关系变化、因果/逻辑链、结尾承接/钩子,不套长篇完整章节蓝图。标出付费点卡在哪一节末(见 submission-craft.md「付费点」:卡脖子断点、付费点前每章 2-3 剧情点、付费点后每章多 1-2);用反推法先想透付费点那一节,再倒排前后。每节可选一个任务卡点,但必须服务情绪升级、证据推进、关系撕裂、反转铺垫或反击动作;没有就不强补
  5. 反转信息差验证(公式见 writing-workflow.md)
  6. 伏笔回查清单(标准见 writing-workflow.md)

Agent 调用:character-designer

设计任务完成后,如果项目已部署 character-designer agent(查找顺序见顶部),可 spawn Agent(subagent_type: "character-designer", prompt: "项目目录:{dir}\n任务类型:角色设定\n查询参数:{人设速写+关系}") 辅助角色设定和语言风格档案。如 agent 不可用,由主线程直接执行。


Phase 3:逐场景写作

项目文件结构:文件结构见 Phase 2;设定.md/小节大纲.md 为 Phase 2 产出,正文.md 为 Phase 3 产出。

导入项目续写基线:设定.md 存在「本书续写基线」时先读取,作为已写内容的内部连续性与既有写法约束;它不是对标摘要,不参与主/副对标排序,也不复制到 对标/。

术语说明:Phase 3 按「段」划分叙事结构(开头段/铺垫段/升级段/反转段/结尾段),每段包含若干「小节」(数字编号的 beat)。「场景」指写作时的具体画面。

写前准备(每个场景写前执行 2 步,是核心方法的落地:确认情绪目标 → 召回技法模块):

  • 步骤 1:记忆+召回:① 本场景目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 具体用在哪个段落?答不出 → 先回读参考再动笔。如有 对标/ 或 拆文库/ 结构化产出,按“对标上下文加载”规则检索与当前场景最相关的结构/情绪/反转/写作手法模块作为参考,并写入“拆文召回摘要”
    • 多对标书时:参 references/cross-book-recall.md,副对标/参考对标按阶段预算进入"副对标召回摘要";正文只传摘要,不传副书文风或原文
  • 步骤 2:指令确认:用一句话概括本场景写作意图(情绪+技法+适配段落),并确认本场景是否有任务卡点、它卡出哪种情绪变化或新证据;没有就不强补。确认后开始写作

写作指令:按三维度揉进逐场景写作,不照搬大纲腔。

  • 每个场景让读者和主角一起经历;发生、感知、反应揉在同一段连续正文里,不按维度分三段。
  • 段落按戏剧单元/画面自然断开:新动作、新线索、新对话、视线切换另起;完整推理、氛围或情绪链可稍长。
  • 高潮/打脸/反转压短,沉淀/推理/收束可长一点;爽点 beat 写密,过场 beat 写疏,避免通篇同长度。
  • 主语节奏:段首或主语重置时可点名;同一动作链内优先代词/省略;关键转折再点名。
  • 标点跟语气走:质问用问号,爆发处少量感叹;犹豫、未尽、打断用动作停顿、短句或换行处理,正文不使用 …… / —— / — / --。
  • 短篇默认第一人称在场:受虐段可直白宣泄,反击段可冷静审判;只删中立无情绪的作者讲解,不删带主角偏色的审判/预告。
  • 情绪可以直写,但后面要接场景里特有的动作或物件;没有具体承接的情绪总结句才删。
  • 任务卡点也可以承接情绪,但必须直接加重羞辱、误会、背叛、证据、反击或心死节点;删掉后情绪/证据/关系无损就压缩。
  • 情绪宁烈不温,冲突前置、爽点具体、台词带刺;心死/余韵等以克制为爽感的桥段按题材包收敛。

Agent 调用:narrative-writer

正文写作阶段默认由主会话按 2-3 节/批分批写正文;主会话输出是短篇正文的标准形态,不要求单次 agent spawn 完成 8000+ 字全文。

  • 每批写完后更新“已写小节摘要”(3-5 条:已揭示信息、情绪位置、未回收伏笔、下一批衔接句)。
  • 下一批先读该摘要和 正文.md 尾部 300-500 字再续写。
  • 只有用户明确要求子代理、主会话上下文不足,或需要隔离试写时,才检查 narrative-writer agent(查找顺序见顶部)。
  • 如可用,spawn Agent(subagent_type: "narrative-writer", prompt: ...),只传项目目录、输出文件、情绪目标、题材风格包、小节大纲、角色、主/副对标召回摘要、格式硬约束和写作硬约束。
  • 不把本 skill 整段规则塞进 prompt;细节以已加载的 short-format.md、题材包和 short-craft.md 为准。
  • 无论谁写,写入 正文.md 前都按同一格式规范重排,保证主会话与子代理输出一致。

⚠️ 硬约束:每节 ≥ 800 字 / 50-65 行。 题材例外:爽文、打脸、系统流等高信息密度题材可降至 ≥ 500 字/节(见 genre-writing-formulas.md 各题材速查表),但不得低于 500 字。 写完每节后必须统计字数和行数。不足 800 字(高信息密度题材不足 500 字)的节不得跳过,必须补充更多子事件/对话来补足后再写下一节。整篇完成后总字数必须 ≥ 8000 字。 字数统计必须跨平台可执行:优先使用 Python 字符统计:for PYBIN in python3 python py; do "$PYBIN" -c "" 2>/dev/null && break; done; "$PYBIN" -c "from pathlib import Path; print(len(Path('文件路径').read_text(encoding='utf-8')))"。不要直接调 python3,Windows 上 python3 会落到 Microsoft Store 占位程序、以 exit 49 静默失败;上面的探测会按 python3→python→py 选出真正可用的解释器。Windows / DeepSeek / Claude Code 组合下不要让模型自行估算字数;wc -m 仅作为 macOS/Linux 备选,禁止使用 wc -c(字节数)。如果当前 agent/工具环境没有 Bash/Python 权限,必须明确声明“未完成机器字数验证”,并按行数速算作为临时估计,不得声称已通过字数硬验证。 ⚠️ 字数不足 = 章节未完成。禁止在字数未达标时结束章节。必须继续展开场景直到达标。

节数守恒:正文节数必须等于小节大纲规划节数。不得合并多节为一节。如果写作中发现某节不需要独立存在,应回到大纲阶段调整,而非在写作时偷减。

节长达标流程:

  1. 写作时:按三维度揉进写每个子事件——发生、感知、反应揉进同一段连续正文,不按维度分段写
  2. 字数不足时(逐节统计后):用以下方法补足(优先级从高到低): - 补充更多子事件(回到小节大纲补充) - 补有用的任务卡点(只在角色本来有要办的事时使用;必须卡出情绪、证据、关系或反转变化,并通过“删掉试试”) - 加一轮对话(参考 short-craft.md 第6节 / dialogue-mastery.md 对话权力模式) - 加回忆闪回(1-2 句关联记忆) - 加环境物件(通过动作带出,不独立成句)
    • 禁止凑字:每个添加必须推动情绪/铺垫/代入感,不得灌水。禁止用"加感知层""加反应层"的方式在已有动作上叠加描写

节长验证(分批写作,每批写完后执行): 分批写作:每次输出 2-3 节,写完后统一检查本批所有节的字数。 如果任何一节 < 800 字(高信息密度题材 < 500 字)→ 补充更多子事件/对话来补足后再写下一批。 禁止跳过未达标的小节。

节长速算:平均每行 15 字 × 55 行 ≈ 825 字。写到第 30 行时如果还不到 500 字,说明子事件数量不够,需要补充更多子事件或对话。

每个小节按「三维度揉进」写作(详见 short-craft.md 第 10 节):每个子事件将发生、感知、反应三个维度揉进同一段连续正文,子事件合计 ≥150 字。维度揉进不等于按维度分段——禁止"先写发生再补感知再补反应"的堆叠写法;也不等于一段到底,按新动作/新物件/新信息/新对话断段。长度只是诊断,先判断是否完整戏剧单元;混入多个动作/信息才拆,完整推理、氛围或情绪链可以保留稍长段。

写完后对照 小节大纲.md 检查:每个子事件三个维度都揉进了?本节情绪到位?伏笔/物件已植入?新增任务卡点是否卡出了情绪、证据或关系变化(删掉无损则压缩)?节长 <800 字 → 补充更多子事件/对话后再写下一节。

按以下结构分段写:

第一段:开头(前 300-500 字)

目标:3 句话内抓住读者。必须包含一个开篇钩子(从 hooks-chapter.md 选择类型)。

先写导语:正文开头前先按 references/submission-craft.md「导语」写一条 150-220 字导语——四维骨架(起因+核心冲突+人设底色+情绪反转)配黄金三角(具体物件+信息差+留白钩子),一句一段(黑岩/盐言导语形态;番茄导语按 short-format.md 短段叙织)——完整句各自独立成段,不是拆成三字碎句。它就是正文开头的头几段,写好顺势往下接、不重写,所以首句同样守下面的开头零环境和前 100 字事件密度≥3(首句是事件/动作/信息炸弹,不是背景或弧线概括),剧透钩子放导语后半。

技法指令:前 100 字事件密度 ≥ 3,不做背景铺垫,直接上事件链。

开头零环境规则(默认适用;悬疑、惊悚、灾难、强氛围题材可例外):

  • 前 3 句禁止出现无事件承载的环境描写(灯光、天气、气味、温度、装修)
  • 前 3 句必须是:事件 / 对话 / 动作 / 信息炸弹,四种之一
  • 任务卡点可以作为动作/事件钩子,但必须立刻带出赌注或矛盾,不能先写流程再解释意义
  • 环境细节只能揉进角色的动作和感知中自然带出,不能独立成句;例外题材中,环境也必须携带威胁、异常或信息差
  • 检查方法:标出前 3 句的主语,如果主语是环境物件(灯光/走廊/房间/天气),重写

开头技巧:

技巧说明示例
冲突前置第一句就是矛盾「离婚协议放在桌上,他已经签了。」
信息差钩给读者一个角色不知道的信息「她不知道,对面那个男人已经在计划第三次了。」
反常行为用一个不合常理的行为引起好奇「她把订婚戒指冲进了马桶。」
重生反常重生后做前世绝不会做的事「沈栀心念成灰,支着一口气找到了媒婆:郭家的那个天阉,我来嫁。」
超自然身份开篇揭示非人类身份「我是世上仅存的红衣厉鬼。我不知自己是怎么死的。」
灵魂旁观以灵魂视角描述死亡现场「我的尸体躺在透明棺材里,三个哥哥在外面笑着说:她演得真像。」
悬念句抛出一个需要解释的事实「我死后的第三天,老公发了一条朋友圈。」
替嫁被弃被迫接受不公正的命运「三个月后,我代替皇后的嫡亲公主坐上了去漠北和亲的轿撵。」
代入式提问直接让读者产生共鸣「你有没有在深夜接到过一个不该接的电话?」

第二段:铺垫(占全文 30-40%)

  • 用物件/数字/习惯建立羁绊(详见 emotional-methods.md「羁绊铺设」)
  • 埋入至少 3 个反转线索,分散在不同小节
  • 每 2-3 个小节埋一个钩子(类型从 hooks-paragraph.md 选择)
  • 小节用数字分割,每小节推进一个情节点
  • 情绪强度逐节递增,不允许连续 2 节无情绪变化
  • 贯穿道具第 1 次出现必须在此段完成
  • 反派作恶按阶梯递增(小恶→中恶,见 villain-and-reveal.md)

第三段:升级(占全文 20-30%)

  • 冲突必须比上一段升级(强度/范围/代价至少一个维度上升)
  • 插入倒计时钩子或代价钩子制造紧迫感
  • 钩子密度提高到每 2 节一个(按题材分级见 genre-writing-formulas.md)
  • 埋入误导信息,让读者猜错反转方向
  • 数字/金额递增作为叙事工具(具体数字替代模糊描述,见各 genre-styles 招式库「数字承重」)
  • 一动一静交替:每节有动有静,不连续暴力也不连续安静

第四段:反转(占全文 10-15%)

  • 反转在一节内完成揭示,不拖延
  • 揭示后确保前面铺垫的线索可被回溯(读者能找到「原来如此」的伏笔)
  • 反转节的情绪冲击强度必须 > 前面所有节的最高值
  • 用证物/证人/偷听/剥洋葱揭露真相(4 种方式见 villain-and-reveal.md)
  • 贯穿道具第 2 次出现必须在此段完成(意义被颠覆)

第五段:结尾(占全文 5-10%)

  • 章末必须有钩子(悬念或余韵)
  • 用安静细节收尾(一个物件、一个动作、一句短话),不写大段抒情
  • 结尾方式见下表,参考 emotional-methods.md「余韵钝痛」
  • 贯穿道具第 3 次出现(回扣暴击)

结尾类型:

类型效果适合情绪
余韵式不说完,让读者自己想意难平
呼应式首尾呼应,形成闭环治愈、成长
开放式留下悬念细思极恐
反转再反转结尾再来一个小反转震惊
金句式一句话点题共鸣

Phase 3 完成门槛(进入 Phase 4 前必须通过)

  • 总字数 ≥ 8000(优先用 Python 字符统计验证,兼容 Windows 和中文字符计数)
  • 每节 ≥ 800 字(爽文等高信息密度题材 ≥ 500 字,见 genre-writing-formulas.md)
  • 节数 = 小节大纲规划节数(不得合并/省略)
  • 身体部位同一词全文 ≤ 5 次
  • 「像/好像/仿佛/如同」不成片堆叠;超过 10 处需逐处复核功能,不机械全删
  • node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md 无 blocking 命中;其余提示先通读,确属问题再改
  • node scripts/check-degeneration.js --check 正文.md 无 blocking 退化命中(复读/截断/工程词泄漏)

中文文本统计注意事项:

  • wc -c 统计的是字节数,禁止用于字数统计,也禁止模型估算字数
  • 行数统计使用 wc -l 是安全的

不通过 → 回退补足,不得进入精修。


Phase 4:精修打磨

加载 references/writing-workflow.md 中的精修清单完成检查。 重点:开头钩子、情绪曲线、反转铺垫、每句话价值、格式规范、AI 腔排查。文件模式先运行 node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md:blocking 先改正文并复扫;其他提示只作为读感风险,功能性写法标 [需复核]。再运行 node scripts/normalize-punctuation.js 正文.md 做标点兜底,并运行 node scripts/check-degeneration.js --check 正文.md;退化 blocking 要重新生成受影响段落,不靠润色。

Agent 调用:narrative-writer(去AI味)+ consistency-checker

精修阶段,如果项目已部署对应 agent,可 spawn:

  • Agent(subagent_type: "narrative-writer", prompt: "项目目录:{dir}\n任务描述:去AI味+格式检查\n检查范围:{正文文件}\n删除优先:每条 AI 味项先判能否删除——删后不丢伏笔/钩子/角色/情节/必要信息的直接删,会丢才润色(删除受比例上限与字数下限约束,跌破下限改降AI重写)\n必须检查:先否定再肯定的翻转句式,发现后直接改成后项或动作细节;检查像/好像/仿佛/如同等比喻是否成片堆叠,确属堆叠时只留最有功能的少数比喻,其余回到具体画面;检查是否连续使用头皮发紧/眼皮一跳/心口一沉/胃里翻涌等精致戏剧反应,能写普通动作/普通感觉就写普通动作/普通感觉;已有手机/聊天记录/公告/账单/病历/证据截图等信息,保留为角色看到或处理的场内载体,不改成叙述者解释;任务卡点只在角色本来有要办的事且能加重情绪/证据/关系/反转时使用,不为自然感补流程") — 执行去AI味(7 Gate)和格式合规检查
  • Agent(subagent_type: "consistency-checker", prompt: "项目目录:{dir}\n检查范围:{正文文件}\n检查类型:事实冲突+伏笔断线+角色属性不一致") — 执行一致性检查

如 agent 不可用,由主线程直接执行。

正文洁净规则:

  • 自检(字数统计、禁用词扫描、格式检查)是过程动作,结果直接在对话里说明,不落盘成文件
  • 绝对不能把自检记录附加到正文文件末尾
  • 正文中不得出现任何 <!-- 自检 --> 或类似的检查标记注释

不通过 → 回退补足。


流程衔接

流水线: 短篇 位置: 写作(第 3/3 步)

时机跳转到命令
有参考小说想对标story-short-analyze/story-short-analyze → 输出存入 拆文库/{书名}/
写完,去 AI 味story-deslop/story-deslop
想自检本 skill 质量自检用 Phase 4 自检流程 + references/quality-checklist.md 逐项核对
需要市场方向story-short-scan/story-short-scan
设定太大,适合长篇story-long-write/story-long-write

参考资料

按需加载以下文件。写作时同时加载 ≤ 3 个:

文件何时加载
references/short-format.md写作前必读(短篇正文格式,两平台模板)
references/submission-craft.md投稿前必读(平台基调 知乎/小程序/番茄 · 导语门面 · 付费点断点)
references/short-craft.md写作全程参考(短篇通用底座:情绪直接写+后接具体反应、在场叙述、超短章节制)
references/genre-styles/定方向后必读:按题材加载对应风格包(追妻火葬场 / 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗 / 民俗怪谈 / 悬疑 / 甜宠 / 双男主 / 沙雕脑洞),正文风格随之切换
references/short-deslop.md去AI味时必读(短篇专属,只杀真·AI腔,不杀情绪烈度)
references/writing-workflow.mdPhase 2 设计任务 + Phase 4 精修
references/genre-writing-formulas.md冷门题材结构骨架补充(核心 10 题材直接用 genre-styles/)
references/genre-writing-techniques.md跨题材通用技法(震惊场景/三翻四震/感情线四阶段/喜剧flag)
references/emotional-methods.md设计情感时
references/hooks-chapter.md章节钩子设计
references/hooks-suspense.md悬念设计
references/hooks-paragraph.md段落钩子技巧
references/villain-and-reveal.mdPhase 2 设计反派时
references/reversal-toolkit.md设计反转时
references/quality-checklist.md精修检查时
references/banned-words.md禁用词表
scripts/normalize-punctuation.jsPhase 4 文件模式确定性标点收尾
scripts/check-ai-patterns.jsPhase 3 完成门槛与 Phase 4 复扫;报告高危 AI 句式、破折号、碎句号、长段落、微动作复读、抽象总结、套词/比喻密度、解释链、系统公告腔、提纲感短段、低连接密度
scripts/check-degeneration.jsPhase 3 完成门槛与 Phase 4 复扫;报告模型退化(复读/截断/工程词泄漏),blocking 需重新生成
references/dialogue-mastery.md写对话时
references/output-contract.mdPhase 2 对标上下文加载时(理解 analyze 产出格式与消费规范)

按主题快速定位(横切主题)

有些主题散在多个文件里。下表给每个主题一个权威文件(先读它,通常够用),配套文件只在需要那个角度时再加载。括号是该文件里对应的小节。

主题权威文件(先读)配套文件(按角度补充)
情绪外化(怎么写情绪)references/short-craft.md 第2节(情绪直接写+后接具体反应、三段对照、改写四步——替代旧机械替换表)各 genre-styles/ 包的「情绪烈度与模式」
情绪设计(情感结构)references/emotional-methods.md(情感三板斧 + 拉扯节奏 + 失败模式)references/genre-writing-techniques.md(情绪操控核心法则 / 情绪三层次)
反转references/reversal-toolkit.md(反转类型 / 铺垫 / 有效性自检)references/villain-and-reveal.md(真相揭露机制 / 反转有效性自检)
反派揭露references/villain-and-reveal.md(反派模板 / 揭露机制 / 报应设计)references/reversal-toolkit.md
人物各 genre-styles/{题材}.md 的「对话风格」「招式库」(受害者-复仇者主角声线、白月光软刀、施害者道德绑架人设,corpus-grounded)references/villain-and-reveal.md(反派/揭露)· references/genre-writing-techniques.md(三层标签反差 / 人设从缺点开始)· references/dialogue-mastery.md(声线差异)
钩子references/hooks-chapter.md(章节/开篇钩子类型)references/hooks-paragraph.md(段落钩子)· references/hooks-suspense.md(悬念设计)
女频写作对应 genre-styles/{题材}.md(追妻火葬场 / 总裁豪门 / 宅斗宫斗 / 甜宠 / 世情打脸的题材声线、虐爽比例、招式)references/genre-writing-techniques.md(女频读者心理与写作技法 / 感情线四阶段推进法)· references/emotional-methods.md(情绪拉扯)
题材风格references/genre-styles/{题材}.md(核心 10 题材的腔调/开篇/钩子/情绪烈度/招式/收尾,corpus-grounded)references/genre-writing-formulas.md(冷门题材结构骨架)· references/genre-writing-techniques.md(核心梗 / 卖点 / 通用技法)
开头各 genre-styles/{题材}.md 的「开篇范式」(关系锚 + 全弧剧透导语 + 火葬场预告,真实开篇范例)+ short-craft.md 第12节(开头事件密度)references/hooks-chapter.md(开篇钩子类型)· references/hooks-paragraph.md(段钩密度)
格式与节奏references/short-format.md(短篇正文格式,两平台模板)references/short-craft.md(情绪直接写+后接具体反应/三维度揉进/疏密)· references/writing-workflow.md(设计/精修工作流)
对话references/dialogue-mastery.md(对话技法主文件:差异化/潜台词/对话节奏)references/short-craft.md(三类台词与对话权力博弈)· 各 genre-styles/ 包的真实金句库
去AI味references/short-deslop.md(短篇专属:只杀真·AI腔,不杀情绪烈度/审判句/火葬场预告)references/banned-words.md(禁用词扫描)· scripts/check-ai-patterns.js(AI句式复扫)· references/quality-checklist.md(成稿检查)

语言

  • 跟随用户的语言回复,用户用什么语言就用什么语言回复
  • 中文回复遵循《中文文案排版指北》

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!