{"slug":"story-short-analyze-2","title":"story-short-analyze","summary":"短篇网文拆文。拆解爆款短篇小说（番茄短篇 / 故事会 / 知乎盐选 / 追妻 / 世情 / 重生 / 虐渣等通俗题材）的故事核、结构、情感线、反转设计、写作手法、共鸣层次。单一全量拆解管道：跑完 Stage 2-6 产出完整拆文报告，落盘到 拆文库/{书名}/，下游 story-short-write 同时读拆文报告 + 情节节点 + 写作手法 + 原文 + _meta.json 写下一篇。触发方式：/story-short-analyze、/短篇拆文、「拆短篇」「拆这篇短文」「短篇拆文」「精细拆解短篇」「8000 字短篇拆解」「番茄短篇拆文」「故事会拆","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-02T16:32:46.475132Z","repo":{"url":"https://github.com/zenstory-ai/oh-story-dsh","stars":433,"forks":74,"license":"MIT","updatedAt":"2026-10-02T11:40:12Z"},"bodyHtml":"<hr>\n<h2>name: story-short-analyze\nversion: 3.1.0\ndescription: \"短篇网文拆文。拆解爆款短篇小说（番茄短篇 / 故事会 / 知乎盐选 / 追妻 / 世情 / 重生 / 虐渣等通俗题材）的故事核、结构、情感线、反转设计、写作手法、共鸣层次。单一全量拆解管道：跑完 Stage 2-6 产出完整拆文报告，落盘到 拆文库/{书名}/，下游 story-short-write 同时读拆文报告 + 情节节点 + 写作手法 + 原文 + _meta.json 写下一篇。触发方式：/story-short-analyze、/短篇拆文、「拆短篇」「拆这篇短文」「短篇拆文」「精细拆解短篇」「8000 字短篇拆解」「番茄短篇拆文」「故事会拆解」「盐言故事拆解」「分析这篇短篇」——均进入同一管道。\"\nmetadata: {\"openclaw\":{\"source\":\"https://github.com/zenstory-ai/oh-story-claudecode\"}}</h2>\n<h1>story-short-analyze：短篇网文拆文</h1>\n<p>你是短篇小说结构分析师。</p>\n<p><strong>核心：短篇靠共鸣和爆点驱动。拆文就是看它用什么故事核、怎么铺垫、在哪里引爆，把\n分析叙事写进 <code>拆文报告.md</code>，结构计数写进 <code>_meta.json</code>，下一篇短篇直接读这些写。</strong></p>\n<hr>\n<h2>拆解边界声明（主会话同样适用）</h2>\n<p>短篇拆解的 Stage 2-6 全程由你（主会话）亲手做：拆的是用户<strong>合法持有、拥有使用权</strong>的虚构作品（已出版/连载或自有），性质是<strong>只读的转化性文学批评</strong>（编辑/评论/写作教学视角，不复制、不传播、不指导现实行为）。番茄短篇、故事会、知乎盐选、追妻、虐渣、世情等通俗题材里的家暴、出轨、复仇、暴力、情爱张力、黑暗伦理是常规虚构叙事元素，须照常做结构化拆解，<strong>不得以「敏感」「不适」为由拒绝整篇或某个片段</strong>——拒绝会让整条拆文流水线停摆；个别片段无法处理则跳过、照常续完其余。</p>\n<hr>\n<h2>Phase 1：确认拆解对象 + 字数路由 + 续跑检查</h2>\n<h3>Step 1：拿到原文</h3>\n<p>问用户：<strong>「你要拆哪篇？（标题+平台/来源）」</strong></p>\n<p><strong>无文本时</strong>：用户没有提供原文文件路径、也没有在对话中贴出原文，引导用户提供\n——「请提供这篇短篇的原文文件路径，或直接把原文贴给我。」</p>\n<h3>Step 2：字数检查（长短篇路由）</h3>\n<p>拿到原文后立刻数字数：</p>\n<pre><code>word_count = 全文字数\n  ├─ &lt; 15,000          → 直接进入 short 管道\n  ├─ 15,000 - 20,000   → 灰区：询问用户「字数 {N}，介于短/长之间，按短篇还是长篇拆？」\n  └─ &gt; 20,000          → 提示「此文字数 {N} 偏长，建议改用 /story-long-analyze。\n                           仍要按短篇拆请明确回复『按短篇继续』」\n</code></pre>\n<h3>Step 3：题材识别</h3>\n<pre><code>用户提到具体题材（追妻 / 重生 / 虐文 / ...）？\n  ├─ 是 → 加载 analysis-short-genres.md 对应题材行作为短篇源文识别标尺\n  └─ 否 → 关键词扫描确定题材；扫不到则 genre_detected = \"通用\"，用通用模板（Stage 2-6）\n</code></pre>\n<p>题材识别关键词参考：</p>\n<ul>\n<li>追妻火葬场 / 渣男后悔 → 追妻（含 现代/古代/民国 时代变体）</li>\n<li>重生复仇 / 前世今生 → 重生复仇</li>\n<li>死后视角 / 灵魂旁观 → 死人文学</li>\n<li>小三 / 出轨 / 知三当三 → 小三</li>\n<li>世情 / 现实 / 婆媳 / 打脸 / 虐渣 → 世情</li>\n<li>总裁 / 豪门 / 联姻 → 豪门</li>\n<li>宫斗 / 宅斗 / 嫡庶 → 宫斗宅斗</li>\n<li>冥婚 / 纸人 / 风水 / 规矩 / 怪谈 → 民俗</li>\n<li>悬疑 / 推理 / 凶手 / 惊悚 → 悬疑</li>\n<li>甜宠 / 先虐后甜 / 先婚后爱 / 暗恋 → 甜宠</li>\n<li>双男主 / 宿敌 → 双男主</li>\n<li>沙雕 / 脑洞 / 弹幕 / 系统 / 反套路 → 沙雕</li>\n<li>仙侠 / 修仙 / 门派 → 仙侠</li>\n</ul>\n<p>题材作为观察标尺加载——只比较源文的读者承诺、冲突载体和实际结算，不调用长篇阶段、\n卷级循环或黄金三章模型，也不按推荐比例判定源文合格与否。</p>\n<h3>Step 4：续跑检查（lightweight resume）</h3>\n<p>进入管道前检查 <code>拆文库/{书名}/_meta.json</code>：</p>\n<pre><code>存在 _meta.json？\n  ├─ 否 → 直接进入新一轮拆解\n  └─ 是 → 询问用户三选一（问法见下）：\n       (a) 覆盖：归档旧产出到 拆文库/{书名}/_archive_{时间戳}/ 后从 Stage 2 重跑\n       (b) 续跑：读 _meta.json.last_stage_in_progress（非空 → 从该 Stage 整段重跑）\n                 或读 _meta.json.stages_completed[]（从 max+1 续跑）\n       (c) 取消\n</code></pre>\n<p>问作者时不提文件名、字段名和 Stage 编号：</p>\n\n<pre><code>《{书名}》之前拆过，{拆到一半，停在\"{当前阶段的白话名，如反转与写作手法}\" | 已经拆完}。怎么处理？\n1. 接着上次往下拆（推荐，已拆的部分保留）\n2. 旧结果存档，从头重拆\n3. 先不拆了\n</code></pre>\n<p>完整 resume 契约见 <a href=\"references/output-contract.md\">references/output-contract.md</a>。</p>\n<hr>\n<h2>输出目录</h2>\n<p>输出到 <code>拆文库/{书名}/</code>（项目根目录下；用户指定了其他路径时按用户指定）：<code>原文/</code>、<code>拆文报告.md</code>、<code>情节节点.md</code>、<code>写作手法.md</code>、<code>_meta.json</code>。三个 markdown 由下游 <code>story-short-write</code> 硬编码读取，不可改名；文件树、Stage → 文件映射与 <code>_meta.json</code> 字段见 <a href=\"references/output-contract.md\">references/output-contract.md</a>。</p>\n<h3>原文备份（管道前置步骤）</h3>\n<p><strong>拆解开始前，必须先备份原文</strong>：</p>\n<ol>\n<li>检查 <code>拆文库/{书名}/原文/</code> 目录是否已存在</li>\n<li>如果不存在，从用户提供的源路径复制原文文件到 <code>拆文库/{书名}/原文/</code></li>\n<li>如果用户未提供源文件路径（直接在对话中贴文本），将原始文本保存到\n<code>拆文库/{书名}/原文/原文.md</code></li>\n<li>备份完成后验证 <code>原文/</code> 目录下文件非空（&gt;0 bytes）</li>\n<li>此步骤确保即使拆文过程中出现异常，原始材料不会丢失</li>\n</ol>\n<p>备份完成后初始化 <code>_meta.json</code>：写入 <code>version</code>、<code>word_count</code>、<code>genre_detected</code>、\n<code>created_at</code>、<code>stages_completed: []</code>、<code>last_stage_in_progress: null</code>。</p>\n<hr>\n<h2>Stage 2-6：拆文流程</h2>\n<h3>5 阶段管道</h3>\n<p><strong>预期耗时提示</strong>：短篇拆文通常 10-30 分钟；同类对比或平台适配会更久。若文本很短，\n先只挑关键节点，不要为满足节点数量硬拆。</p>\n<table>\n<thead>\n<tr>\n<th>阶段</th>\n<th>名称</th>\n<th>输入</th>\n<th>输出</th>\n<th>完成标志</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2</td>\n<td>结构+情节节点</td>\n<td>全文</td>\n<td>故事核 + 故事梗概 + 功能分段（4-6段，必须含开端/发展/高潮/结局）+ 情节节点清单（以语义变化为边界提取）。</td>\n<td>结构划分 ≥4 段 + 故事核已提取</td>\n</tr>\n<tr>\n<td>3</td>\n<td>情感线+爆点</td>\n<td>故事核+结构划分+情节节点数据</td>\n<td>情感曲线（≥5节点）+ 爆点分析（6维度）+ 期待感分析。</td>\n<td>爆点分析 6 维度齐全</td>\n</tr>\n<tr>\n<td>4</td>\n<td>反转+写作手法</td>\n<td>节点+情感数据</td>\n<td>前置反转检查 + 反转机制（铺垫≥3条）+ 写作手法（≥5项维度：POV/对话/时间/信息/其他）。</td>\n<td>写作手法 ≥5 项</td>\n</tr>\n<tr>\n<td>5</td>\n<td>人物+开头结尾</td>\n<td>情节节点+全文</td>\n<td>所有人物（分类+功能标签+功能评估）+ 开头分析（前50/100字）+ 结尾分析（收束检查）。</td>\n<td>人物功能评估完成</td>\n</tr>\n<tr>\n<td>6</td>\n<td>综合评估 + <code>_meta.json</code> 写计数</td>\n<td>全部数据</td>\n<td>五维评分 + 爆点性 + 话题性 + 共鸣分析（≥3层）+ 可复用结构（≥3条）+ 节奏速报 + <strong>算出并写入 <code>_meta.json.structure_counts</code></strong>。</td>\n<td>左列输出齐全 + <code>structure_counts</code> 各字段达「structure_counts 数值校验」阈值</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>管道执行顺序：2 → 3 → 4 → 5 → 6（严格串行，每阶段依赖前一阶段数据）。可选模块\n（同类对比、平台适配、详细节奏）可在 Stage 6 后执行，读 <a href=\"references/optional-modules.md\">references/optional-modules.md</a>。</p>\n</blockquote>\n<h3>按时刻读</h3>\n<p>管道分两个时刻，进入时刻只读该行的文件；两个时刻之间只靠落盘的 <code>拆文报告.md</code>、<code>情节节点.md</code>、<code>写作手法.md</code> 和 <code>_meta.json</code> 交接，续跑或换新对话都按 <code>_meta.json</code> 的进度接上。</p>\n<table>\n<thead>\n<tr>\n<th>时刻</th>\n<th>读</th>\n<th>交接</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Stage 2–3 结构与情感线</td>\n<td><a href=\"references/output-contract.md\">output-contract.md</a>、<a href=\"references/analysis-method.md\">analysis-method.md</a>、<a href=\"references/stage2-3-structure-emotion.md\">stage2-3-structure-emotion.md</a>、<a href=\"references/quality-checklist.md\">quality-checklist.md</a>、<a href=\"references/analysis-report-style.md\">analysis-report-style.md</a></td>\n<td><code>stages_completed</code> 含 3</td>\n</tr>\n<tr>\n<td>Stage 4–6 反转到综合评估、验收</td>\n<td>output-contract.md、analysis-method.md、<a href=\"references/stage4-6-reversal-summary.md\">stage4-6-reversal-summary.md</a>、quality-checklist.md、analysis-report-style.md；Stage 6 要判断源文本身好坏（毒点、虐爽节奏、证据链等）时加 <a href=\"references/source-story-quality.md\">source-story-quality.md</a></td>\n<td>验收通过，<code>stages_completed</code> 含 6</td>\n</tr>\n</tbody>\n</table>\n<p>对照标尺类参考按下方「参考资料」的条件在对应 Stage 读。</p>\n<p><strong>Stage 写盘协议</strong>（crash safety）：每个 Stage 开始前置 <code>_meta.json.last_stage_in_progress</code>，\n目标文件写完并通过 non-empty / 最小长度检查才清空它并 append 到 <code>stages_completed[]</code>；\n半成品不被信任，resume 时该 Stage 整段重跑。完整协议见 output-contract.md「写入顺序 (crash safety)」。</p>\n<hr>\n<h2>验收（Stage 6 之后、写 stages_completed[6] 之前）</h2>\n<p>Stage 6 内容写完后<strong>不</strong>立刻 append <code>6</code>，先按 output-contract.md「验收接入点」跑三道检查，全过才写：</p>\n<ul>\n<li><strong>拆文报告表达自检</strong>：按 analysis-report-style.md 扫描 <code>拆文报告.md</code>，跳过源文引用（以 <code>&gt;</code> 开头的引用行、表格「关键台词 / 原文引用」列的引号直引），只扫分析师本人的措辞；命中就修订<strong>拆文报告本身</strong>的证据不足、空转套话或越界推测，不改写源文，也不评价源文是否 AI 写的。</li>\n<li><strong>structure_counts 数值校验</strong>：阈值以 output-contract.md 为准（单一权威），注意「无反转」是合法枚举，此时 <code>setup_clues</code> 跳过、不计入阻断。</li>\n<li><strong>BLOCK 项扫描</strong>：扫 quality-checklist.md 全部 <code>[BLOCK]</code> 项；<code>[WARN]</code> 缺项不阻断，写入 <code>拆文报告.md</code> 末尾「待补」清单供用户决定。</li>\n</ul>\n<p>任一阻断 → 回到对应 Stage 补足；原文确实没有、补不出来时，用故事话告诉作者缺什么（如「反转前的铺垫线索只找到 1 条」），不报字段名和 Stage 编号。全通过 → 清空 <code>_meta.json.last_stage_in_progress</code>，append <code>6</code> 到 <code>stages_completed[]</code>，按下方格式告诉作者：</p>\n\n<pre><code>《{书名}》拆完了，结果在 `拆文库/{书名}/`。\n- 这篇靠什么抓人：{一句话故事核}\n- 最值得学的 3 点：{白话，各附一句原文或情节例子}\n- 还缺的：{拆文报告末尾\"待补\"里需要作者决定的项；没有就写\"无\"}\n下一步：想照这个路子写一篇，运行 `/story-short-write`。\n</code></pre>\n<hr>\n<h2>流程衔接</h2>\n<p><strong>流水线：</strong> 短篇\n<strong>位置：</strong> 拆文（第 2/3 步）</p>\n<table>\n<thead>\n<tr>\n<th>时机</th>\n<th>跳转到</th>\n<th>命令</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>准备开写</td>\n<td>story-short-write（同时读 拆文报告.md + 情节节点.md + 写作手法.md + 原文/ + _meta.json）</td>\n<td><code>/story-short-write</code></td>\n</tr>\n<tr>\n<td>需要市场数据</td>\n<td>story-short-scan</td>\n<td><code>/story-short-scan</code></td>\n</tr>\n<tr>\n<td>字数 &gt; 20k 更适合长篇</td>\n<td>story-long-scan → story-long-analyze</td>\n<td><code>/story-long-scan</code></td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>参考资料</h2>\n<p>核心方法与模板按上方「按时刻读」加载；以下是对照标尺，按条件读。</p>\n<h3>按需加载（拆解对应题材 / 维度时作为对照标尺，一次只查一份）</h3>\n<table>\n<thead>\n<tr>\n<th>文件</th>\n<th>何时加载</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"references/deconstruction-examples.md\">references/deconstruction-examples.md</a></td>\n<td>校准拆文方法：3 个完整案例</td>\n</tr>\n<tr>\n<td><a href=\"references/zhihu-style.md\">references/zhihu-style.md</a></td>\n<td>拆知乎盐言故事：平台特性对照</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-short-genres.md\">references/analysis-short-genres.md</a></td>\n<td>Phase 1 / Stage 2 判主副类型：识别锚点、读者承诺、结算归属</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-short-hooks.md\">references/analysis-short-hooks.md</a></td>\n<td>Stage 3 / 5：段落与小节边界、钩子链、候选付费断点</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-short-suspense.md\">references/analysis-short-suspense.md</a></td>\n<td>Stage 3 / 4：主副问题、信息差、证据释放、阶段答案与回收</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-paragraph-hooks.md\">references/analysis-paragraph-hooks.md</a></td>\n<td>Stage 3 / 5：11 种段落级钩子对照</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-character-basics.md\">references/analysis-character-basics.md</a></td>\n<td>Stage 5：人设要素对照</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-character-design.md\">references/analysis-character-design.md</a></td>\n<td>Stage 5 细拆反差手法：按标题查「三层标签反差人设法」（数反差人物用 stage4-6 的判定，不读本文件）</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-character-relations.md\">references/analysis-character-relations.md</a></td>\n<td>Stage 5：关系类型对照</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-short-mechanics.md\">references/analysis-short-mechanics.md</a></td>\n<td>Stage 2 / 6：核心梗、有限复现、规则兑现、代价与主角代理权</td>\n</tr>\n<tr>\n<td><a href=\"references/analysis-reader-profile.md\">references/analysis-reader-profile.md</a></td>\n<td>Stage 3 / 6：读者心理与期待管理</td>\n</tr>\n</tbody>\n</table>\n<h3>补充资料（拆 Stage 6「可复用结构」时按需对照）</h3>\n<blockquote>\n<p><strong>短篇结构模式</strong>：<code>references/analysis-short-patterns.md</code>（比较源文实际功能链、偏离方式\n与失败条件；不按固定章位、百分比或线索数判“合标”）\n<strong>通用写作技法</strong>：<code>references/analysis-writing-techniques.md</code>（情绪操控 / 感情线 /\n震惊场景 / 喜剧机制——拆 reusable_structures.fail_mode 时按标题只查「感情线四阶段推进法」表的「禁忌」列，不整读）\n<strong>市场数据</strong>：<code>references/real-market-data.md</code>（跨平台写作差异对照表）</p>\n</blockquote>\n<p>所有 references 在 <code>story-short-analyze</code> 中都是<strong>观察标尺</strong>——先报告源文实际发生了什么，\n再说明它接近、偏离或改造了哪种模式；不是按文件指引写新作品，也不从相邻长篇 Skill\n加载题材、节奏或质量资料。</p>\n<hr>\n<h2>语言</h2>\n<ul>\n<li>跟随用户的语言回复，用户用什么语言就用什么语言回复</li>\n<li>中文回复遵循《中文文案排版指北》</li>\n</ul>\n","files":[{"path":"references/analysis-character-basics.md","sizeBytes":17023,"isText":true},{"path":"references/analysis-character-design.md","sizeBytes":16845,"isText":true},{"path":"references/analysis-character-relations.md","sizeBytes":16041,"isText":true},{"path":"references/analysis-method.md","sizeBytes":2892,"isText":true},{"path":"references/analysis-paragraph-hooks.md","sizeBytes":6857,"isText":true},{"path":"references/analysis-reader-profile.md","sizeBytes":11563,"isText":true},{"path":"references/analysis-report-style.md","sizeBytes":2577,"isText":true},{"path":"references/analysis-short-genres.md","sizeBytes":4720,"isText":true},{"path":"references/analysis-short-hooks.md","sizeBytes":3708,"isText":true},{"path":"references/analysis-short-mechanics.md","sizeBytes":4393,"isText":true},{"path":"references/analysis-short-patterns.md","sizeBytes":4291,"isText":true},{"path":"references/analysis-short-suspense.md","sizeBytes":4262,"isText":true},{"path":"references/analysis-writing-techniques.md","sizeBytes":21707,"isText":true},{"path":"references/deconstruction-examples.md","sizeBytes":4250,"isText":true},{"path":"references/optional-modules.md","sizeBytes":3147,"isText":true},{"path":"references/output-contract.md","sizeBytes":6615,"isText":true},{"path":"references/quality-checklist.md","sizeBytes":4818,"isText":true},{"path":"references/real-market-data.md","sizeBytes":4962,"isText":true},{"path":"references/source-story-quality.md","sizeBytes":10592,"isText":true},{"path":"references/stage2-3-structure-emotion.md","sizeBytes":13480,"isText":true},{"path":"references/stage4-6-reversal-summary.md","sizeBytes":31899,"isText":true},{"path":"references/zhihu-style.md","sizeBytes":2594,"isText":true},{"path":"SKILL.md","sizeBytes":14283,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-02T16:33:36.370568Z","sha256":"6E35D3EBD15C90DC48911186AE9404368C53685499A996F89B20AEBFA6270848","sizeBytes":107791},"review":null,"source":{"repositoryUrl":"https://github.com/zenstory-ai/oh-story-dsh","path":"packages/knowledge/oh-story/skills/story-short-analyze","license":"MIT","commit":"d734089bae893783d8bfaf09f8e8fa0a99723ef0","subtreeSha":"AA7DBBD90E8760F08B5F01005589422EF6575A524213313534EB96926750D877","lastSyncedAt":"2026-10-02T16:32:40.531554Z"},"reviewedAt":"2026-10-02T16:34:58.346687Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/zenstory-ai/oh-story-dsh/tree/main/packages/knowledge/oh-story/skills/story-short-analyze"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install zenstory-ai-oh-story-dsh@llmmart"},{"target":"git","command":"git clone https://github.com/zenstory-ai/oh-story-dsh.git"}]}