| name | shortstory-deconstruct |
| description | 拆解盐选短篇参考文,提取钩子设计、悬念铺设、节奏控制、收束手法等写作模式。触发词:拆这篇、拆解、分析这个短篇、做拆解、帮我把这篇拆了、提取模式 |
| allowed-tools | Read Write Grep Bash Agent |
| argument-hint | [文章名或路径] |
触发方式
用户说了以下任何一句,直接启动拆解流程:
| 用户说 | 对应动作 |
|---|
| "拆这篇" / "帮我拆一下" (且用户提供了文本) | Step 0 → 1 → 2 → 3 → 4 |
| "分析这个短篇" / "看看这篇好在哪里" | 同上,全流程拆解 |
| "提取这篇的模式" / "这篇有什么可学的" | 同上,重点输出句式模板+可借鉴模式 |
| "/shortstory-deconstruct 文章名" | 直接匹配文章名执行拆解 |
拆解短篇故事
输出严格 5 个文件,缺一不可。写完后必须 Step 4 验证。
流程
Step 0:准备
-
用户提供 md/txt 文件路径,或直接粘贴原文
-
确认归类到哪个类型(言情/悬疑/脑洞/古风/其他)
-
编码转换(关键防错步骤):中文 txt 常为 GB18030(CodePage 54936)或 GBK(936),极少数为 UTF-8。必须统一转为 UTF-8 无 BOM:
$bytes = [System.IO.File]::ReadAllBytes("源文件路径.txt")
$text = [System.Text.Encoding]::GetEncoding(54936).GetString($bytes)
$utf8NoBom = New-Object System.Text.UTF8Encoding $false
[System.IO.File]::WriteAllText("目标路径\原文.md", $text, $utf8NoBom)
Step 1:建目录 + 搬文件
- 在
短篇/参考书/{类型}/ 下以文章名创建文件夹
- 原文存为
原文.md
Step 2:拆解分析
输出 5 个文件的全部内容到内存,确认完整后再逐个写入。
2a. 拆解数据.json
必须使用以下模板,逐字段填充,不得删改字段名:
{
"title": "「文章名」",
"author": "「作者,可选填空字符串」",
"category": "「言情/悬疑/脑洞/古风/其他」",
"word_count": 「整数」,
"hook": {
"position": "「前多少字出现钩子」",
"technique": "「钩子手法:身份反转/意外撞见/危机开场/金句/反常情境/震撼对话/倒计时/其他」",
"one_liner": "「一句话钩子」"
},
"structure": {
"acts": [
{"name": "「开场」", "start_chapter": 1, "end_chapter": 「整数」, "function": "「功能」"},
{"name": "「展开」", "start_chapter": 「整数」, "end_chapter": 「整数」, "function": "「功能」"},
{"name": "「转折」", "start_chapter": 「整数」, "end_chapter": 「整数」, "function": "「功能」"},
{"name": "「高潮」", "start_chapter": 「整数」, "end_chapter": 「整数」, "function": "「功能」"},
{"name": "「收束」", "start_chapter": 「整数」, "end_chapter": 「整数」, "function": "「功能」"}
],
"ending_type": "「反转型/情绪收束型/开放式/循环型」"
},
"rhythm": {
"formula": "「如:钩(450字)→铺(800字)→展(1200字)→转(600字)→爆(1500字)→收(500字)」",
"segments": [
{"label": "「钩子段/铺垫段/展开段/转折段/爆发段/收束段」", "word_count": 「整数」, "emotion": "「情绪」", "function": "「功能」"}
]
},
"characters": [
{"name": "「角色名」", "role": "「主角/配角/反派」", "archetype": "「原型标签」", "trait": "「记忆点」"}
],
"patterns": [
"「可借鉴模式1」", "「可借鉴模式2」"
],
"templates": [
{"original": "「原文例句」", "abstract": "「抽象模板」", "scenario": "「适用场景」"}
],
"diff_requirements": {
"do_not_copy": ["「不可复制项」"],
"replace_with": ["「替换建议」"],
"adapt_to": "「适配方向」"
}
}
字段说明:
hook.technique:从以下手法选最匹配的——身份反转/意外撞见/危机开场/金句/反常情境/震撼对话/倒计时/其他
structure.acts:始终填 5 幕(开场/展开/转折/高潮/收束),字数不足的短篇可将相邻幕合并,但保留 5 个条目
rhythm.segments:按自然段落标注,至少 3 条
characters:至少填主角和重要配角,archetype 用简短原型标签(如"嘴硬心软女主""外冷内热男主")
patterns:至少 3 条
templates:至少 5 条,覆盖开篇钩子/悬念铺设/情绪转折/对话推进/结尾收束
2b. 拆解报告.md
中文可读报告,固定章节:
# 拆解报告:《文章名》
## 基本信息
- 类型:言情
- 字数:约X万
- 叙事视角:
## 剧情概要(200-300字)
## 开场钩子分析
## 结构骨架
| 阶段 | 章节 | 功能 |
|------|------|------|
## 悬念设计
## 节奏控制
## 情绪曲线
## 人物塑造
## 结尾分析
## 可借鉴模式(≥3条)
## 差异化要求
- 不可重写:
- 替换建议:
- 适配方向:
2c. 节奏统计.md
# 节奏统计:《文章名》
## 全文节奏公式
钩(X字)→铺(X字)→展(X字)→转(X字)→爆(X字)→收(X字)
## 快/中/慢比例
- 快节奏(<500字/段):X段,占X%
- 中节奏(500-1500字/段):X段,占X%
- 慢节奏(>1500字/段):X段,占X%
## 段落明细
| 段号 | 起止位置 | 字数 | 节奏标签 | 情绪标签 | 功能 |
|------|---------|:----:|---------|---------|------|
2d. 句式模板.md
# 句式模板:《文章名》
至少 5 条,覆盖不同场景:
| 原文例句 | 抽象模板 | 适用场景 |
|---------|---------|---------|
| 「原文」 | 「模板」 | 「场景」 |
Step 3:写入文件
5 个文件全部输出到 短篇/参考书/{类型}/{文章}/:
├── 原文.md — 清洗后的原文,UTF-8 无 BOM
├── 拆解报告.md — 中文可读报告(2b 格式)
├── 拆解数据.json — 结构化数据(2a 模板填充)
├── 节奏统计.md — 段落级节奏量化数据(2c 格式)
└── 句式模板.md — 可复用句式模板(2d 格式)
Step 4:验证
写入完成后,必须验证:
缺少任一文件或字段 → 补充后重新验证。