agentsclimarketplace

Scene plan

Skill hestudy/snowflake-fiction/skills/scene-plan

场景规划工具,完成场景清单(步骤8)→场景详细规划(步骤9)的完整场景设计链。当用户说"场景规划"、"规划场景"、"场景设计"、"场景清单"、"规划章节"时自动激活。可独立使用,也可在 snowflake-fiction 主流程中被调用。支持全量规划和局部重跑。From its SKILL.md

Install
npx -y skills add hestudy/snowflake-fiction --skill scene-plan

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

15.7 KB, as published. Nobody here has run it

场景规划 Skill

覆盖雪花写作法中场景线的完整两步链:

步骤内容输出物
步骤8场景清单(所有场景的结构化列表)07-场景清单.md
步骤9场景详细规划(每个场景的三要素展开)08-场景规划/场景[##]-[名].md

使用时机

  • 大纲完成后,进入正文创作前
  • 修改大纲后,需要重新规划受影响的章节
  • 创作中途发现某章节场景设计有问题,局部重跑
  • 独立设计某几章的场景,不走完整流程

三种使用模式

模式A:全量规划(默认)

基于完整大纲,生成所有章节的场景清单和详细规划。

/scene-plan
/scene-plan --from 03-完整大纲.md

执行顺序:步骤8(全量清单)→ 步骤9(逐场景规划)

模式B:局部规划(指定章节)

只规划指定章节范围,适合修改大纲后的局部重跑。

/scene-plan 第3章
/scene-plan 第3章-第5章
/scene-plan 第3章 第7章 第10章

执行顺序:更新清单中对应行 → 重新生成指定章节的场景规划文件

模式C:仅生成清单(步骤8)

只生成场景清单,不展开详细规划。适合快速预览结构。

/scene-plan --list-only
/scene-plan 第1章-第5章 --list-only

详细执行流程

步骤8:场景清单

目标:将大纲中的每个章节拆解为具体场景,形成结构化清单

执行方式:

  1. 读取完整大纲文件(03-完整大纲.md 或用户指定文件)
  2. 如果存在人物宝典,一并读取(确保 POV 和人物信息准确)
  3. 为每个章节拆解场景,遵守以下规则:
    • 每个场景必须有明确冲突,无纯过渡场景
    • 标注场景类型(主动/被动)
    • 主动-被动场景交替出现,避免连续同类型
  4. 生成统计信息(总场景数、类型分布、冲突类型分布)
  5. 用户确认清单后,进入步骤9

场景拆解原则:

原则说明
冲突必须存在每个场景都要有人vs人/人vs自我/人vs环境的冲突
无过渡场景"主角走去咖啡馆"不是场景,"主角在咖啡馆被拒绝"才是
主被动交替主动场景后接被动场景,形成节奏感
冲突强度递增后期场景的冲突强度要高于前期

副本结构标注

每个副本(一段完整的故事事件)由多个场景组成,场景清单中需标注每个场景在副本三段式中的位置:

副本阶段场景功能标注
起因铺垫期待,丢饵让读者预见即将发生的事[预热]
经过故事主干,冲突展开,爽点逐步引爆[爆发]
结果收获成长,高潮延续,舒缓节奏[回味]

检查:每个副本是否三段齐全?是否有只有"经过"没有"起因"和"结果"的副本?

副本核心人数控制

来源:番茄巅峰榜作家纸老虎(百万字群像文实战经验)。

每个副本中参与的核心角色数量需要控制,避免角色扎堆导致反应处理困难:

篇幅主角团总人数建议单副本核心人数说明
短篇(<30万字)3人最佳1-2人充分彰显圆形人物的成长
长篇(30-100万字)3-5人1-3人其余适当隐没淡化
超长篇(100万字+)5-7人1-3人每副本聚焦少数角色

场景清单中标注:在每个副本的场景中标注「本副本核心角色」,确保不超过3人。

群像角色引入的事件触发规则

每个角色的引入都必须通过事件触发,不能扎堆出场。

引入原则:

  1. 从核心人物(主角)起笔,建立读者代入感
  2. 其余角色通过事件逐个引入,分批次展现
  3. 每个角色的引入事件必须展露其至少一个人设标签
  4. 引入动机分两类:外部压力驱动(被动入局)或内部价值驱动(主动入局)

场景清单检查:

  • 是否有多个新角色在同一场景同时出场?(应拆分为多个场景逐个引入)
  • 每个角色的首次出场是否有对应的引入事件?
  • 引入事件是否展露了角色的表层标签?

引入事件设计模板:

角色:[名]
引入场景:[场景名]
引入方式:[主动入局/被动入局]
引入事件:[什么事件让这个角色与主角团产生连接]
展露标签:[通过这个事件展露的人设标签]
与主角的牵扯:[为什么这个角色会留在主角团]

锁链模式编排

场景编排不要用串联模式(A副本全部结束→B副本开始),要用锁链模式——下一个副本的起因场景嵌入前一个副本的经过中:

副本A场景1[预热] → 副本A场景2[爆发] → 副本B场景1[预热] → 副本A场景3[回味] → 副本B场景2[爆发]...

这样期待感不会断,高潮过后不会因为期待感耗尽而掉追读。

倒推法规划

规划场景时推荐使用倒推法:

  1. 先确定副本的高潮场景(爽点/结局)
  2. 从高潮倒推需要哪些前置场景
  3. 最后补充起因场景的铺垫和伏笔

时间线类型的场景编排策略

读取 00-一句话概括.md 中的时间线类型元数据,按对应策略编排场景。

顺叙:标准编排,按上述原则即可。

圆环时间线:三线并行编排

现在线 ═══╗═══════╗═══════╗═══ 闭合
过去线 ───╝───────╝       │
未来线 ───────────────────╝
  • 三线占比建议:现在线 50-60%、过去线 20-30%、未来线 10-20%
  • 场景清单扩展字段:增加「所属时间线」列(现在/过去/未来)
  • 编排原则:
    • 现在线是主线,承载核心冲突
    • 过去线通过闪回揭示原因,每次闪回必须回答一个「为什么」
    • 未来线制造悬念,暗示结局走向
    • 时间线切换点必须有「锚点」(感官触发、物品关联、台词呼应)
    • 每次切换后的第一句必须明确时间线归属

读档制:循环+分支编排

存档点 → 第1次尝试 → 失败 → 回档
存档点 → 第2次尝试(新策略)→ 失败 → 回档
存档点 → 第3次尝试(突破)→ 成功 → 新存档点
  • 场景清单扩展字段:增加「循环轮次」「已知信息」列
  • 防流水账要点:
    • 每次循环必须有新发现(信息增量 > 0)
    • 重复场景递减篇幅(第1次详写 → 第2次略写 → 第3次一笔带过)
    • 情绪必须递进(好奇 → 焦虑 → 绝望 → 突破)
    • 每轮循环的失败方式不同

纯循环:周期重复编排

与读档制的区别:纯循环中主角不一定记得上一轮,变化是外部的或潜意识的。

  • 编排原则:
    • 每个循环是一个完整的「微型三幕」
    • 循环之间通过微小变化(一个细节不同)制造递进
    • 用重复的句子/场景作为循环标记(读者的「锚」)
    • 打破循环的关键在于主角的内在转变

多线并行:组合编排

常见组合说明切换频率
主角线 + 反派线双视角对抗每2-3章切换
现在线 + 回忆线双时间叙事每章穿插
A组线 + B组线 + C组线群像叙事每1-2章轮转
  • 编排原则:
    • 每条线独立成立,有自己的冲突和节奏
    • 交汇点是高潮,各线在此碰撞
    • 切换时用「悬念钩」收尾,让读者期待回到这条线
    • 场景清单中标注每个场景所属的线

输出格式:

## 场景清单

| # | 章节 | 场景名 | 地点 | POV | 参与人物 | 核心冲突 | 类型 | 副本阶段 | 预估字数 |
|---|------|--------|------|-----|----------|----------|------|----------|----------|
| 1 | 第1章 | 开场-梦想被否定 | 咖啡馆 | 主角 | 主、母 | 梦想被否定 | 主动 | [预热] | 800 |
| 2 | 第1章 | 独处-自我怀疑 | 出租屋 | 主角 | 主 | 自我怀疑 | 被动 | [爆发] | 600 |

### 统计
- 总场景数:X
- 主动场景:X(占X%)
- 被动场景:X(占X%)
- 预估总字数:X万字

### 冲突类型分布
- 人vs人:X个
- 人vs自我:X个
- 人vs环境:X个

步骤9:场景详细规划

目标:为每个场景展开三要素,形成写作时的详细参考

执行方式:

  1. 读取步骤8生成的场景清单
  2. 逐场景展开,根据类型选择对应模板:
    • 主动场景:目标 → 冲突 → 挫折
    • 被动场景:反应 → 困难 → 决定
  3. 补充场景细节(开场画面、关键对话、转折点、结尾画面)
  4. 绘制情绪曲线
  5. 每个场景保存为独立文件

主动场景三要素:

目标(Goal):主角在这一场景想要达成什么?
  ├── 表面目标(他说他想要什么)
  └── 深层动机(他真正想要什么)

冲突(Conflict):什么力量阻碍他?
  ├── 人物冲突(谁在阻碍?)
  ├── 环境冲突(什么环境障碍?)
  └── 内心冲突(什么内心挣扎?)

挫折(Disaster):结果如何?
  ├── 不能完全成功(要有代价)
  └── 开启下一个场景的钩子

被动场景三要素:

反应(Reaction):主角对上一场景挫折的反应
  ├── 情绪反应(愤怒/悲伤/恐惧/困惑)
  └── 行为反应(他做了什么?)

困难(Dilemma):内心的两难选择
  ├── 选项A(好处 vs 代价)
  └── 选项B(好处 vs 代价)

决定(Decision):做出什么新决定?
  └── 开启下一个主动场景

参考模板:场景规划完整模板

非顺叙时间线的场景规划补充

如果 00-一句话概括.md 中记录的时间线类型不是顺叙,步骤9的场景规划需要补充以下字段:

通用扩展字段(所有非顺叙时间线):

### 时间线信息
- **所属时间线**:[现在/过去/未来/A线/B线/第N轮循环]
- **与其他时间线的关联**:[与哪条线的哪个场景呼应]
- **信息差状态**:[读者此时知道什么/不知道什么]
- **切换锚点**:[从上一个时间线切换过来的触发物/感官/台词]

读档制场景的特殊三要素:

读档制的场景不适用标准的「目标→冲突→挫折」,改用:

已知信息(Know):主角从上一轮循环中带来了什么信息?
  ├── 确认的事实(上一轮验证过的)
  └── 未验证的猜测(本轮要验证的)

新发现(Discover):本轮循环中发现了什么新东西?
  ├── 新线索(推动解谜)
  └── 新规则(改变策略)

失败/突破(Fail/Break):本轮结果如何?
  ├── 失败 → 新的已知信息 → 下一轮循环
  └── 突破 → 进入新阶段

输出管理

目录检测逻辑

1. 检查当前目录是否存在小说项目目录(含 05-完整大纲.md)
2. 如果存在 → 保存到该项目目录下
3. 如果不存在 → 询问用户大纲文件位置
4. 如果用户指定路径 → 优先使用用户指定路径

输出目录结构

[小说名]/
├── 07-场景清单.md              ← 步骤8输出(全量清单)
└── 08-场景规划/
    ├── 场景01-开场-梦想被否定.md  ← 步骤9输出(每场景一文件)
    ├── 场景02-独处-自我怀疑.md
    └── ...

局部重跑的文件处理

重跑第3章-第5章时:
1. 更新 07-场景清单.md 中对应行(保留其他行不变)
2. 删除 08-场景规划/ 中对应章节的旧文件
3. 生成新的场景规划文件
4. 输出变更摘要(哪些文件被更新/删除/新增)

节奏检查

生成场景清单后,自动执行节奏检查:

检查项规则警告条件
主被动交替避免连续3个以上同类型场景连续≥3个主动或被动场景
冲突强度后期场景冲突强度 ≥ 前期高潮前冲突强度低于中段
场景密度每章2-4个场景为宜单章场景数 ≥5 或 =1
无冲突场景每个场景必须有冲突核心冲突栏为空
副本三段式每个副本需包含预热→爆发→回味副本缺少起因或结果阶段
锁链衔接下一副本的预热场景嵌入前一副本中副本之间无交叉铺垫
副本核心人数每个副本核心角色≤3人单副本核心角色>3人
角色引入新角色通过事件逐个引入多个新角色同一场景扎堆出场

节奏检查结果附在清单末尾,供用户调整。

悬念密度检查(崩文预防)

检查项规则警告条件
钩子密度每章至少1.75个活跃钩子钩子数 <1.5
悬念交替悬念1揭晓前已铺垫悬念2连续5个场景无新悬念铺垫
问题线追踪每章至少1条未解决问题线所有问题当章解决

场景规划时的悬念标注:

在步骤9(场景详细规划)中,为每个场景标注悬念点:

## 场景03:咖啡馆对峙

### 伏笔场景标注

在步骤9(场景详细规划)中,为每个场景标注伏笔信息:

```markdown
### 伏笔标注
- **埋设伏笔**:[本场景埋下的伏笔,标注深/浅]
  - 深伏笔:长线铺垫,引爆时爽感强(如角色秘密、主线反转)
  - 浅伏笔:短平快,当章或近章引爆(如即时打脸、小反转)
- **收束伏笔**:[本场景收束的前文伏笔]
- **主角闪光点**:[如有,标注主角的破局之策——不只是赢,而是怎么赢]

悬念点:

  • 中段悬念:对方提到"你父亲的秘密"(0.5个钩子)
  • 结尾悬念:对方留下神秘信封后离开(1个钩子)
  • 未解决问题:信封里是什么?父亲到底隐瞒了什么?(0.5个钩子)

本场景钩子数:2个(合格)


### 换地图场景的特殊处理

换地图时,场景规划必须确保:
- 换地图的场景本身有冲突(不是纯过渡)
- 主线冲突在新地图延续
- 新地图设定通过冲突展示(不是背景说明)

```markdown
❌ 错误的换地图场景:
场景15:抵达北境
- 描写北境的雪景和城市布局
- 介绍北境的三大家族
(纯背景介绍,无冲突)

✅ 正确的换地图场景:
场景15:北境遇袭
- 主角刚进城就被杀手伏击(冲突延续)
- 通过战斗展示北境的"外来者必死"规矩(设定融入冲突)
- 结尾:杀手说"欢迎来到我的地盘"(悬念)

与主流程的集成

当 snowflake-fiction 主 skill 执行到步骤8、9时,自动调用本 skill。

主流程调用方式:

# 主流程内部调用(用户不感知)
scene-plan --step 8 --from 03-完整大纲.md
scene-plan --step 9 --from 05-场景清单.md

独立调用时,本 skill 自动检测项目上下文,读取已有大纲文件。


注意事项

  1. 先确认大纲:步骤8依赖完整大纲,大纲未定稿前不建议规划场景
  2. 清单先于规划:必须先完成步骤8的清单,再展开步骤9的详细规划
  3. 局部重跑时:只更新指定章节,不影响其他章节的已有规划
  4. 场景命名:场景名要有张力,体现核心冲突("梦想被否定"优于"咖啡馆对话")

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.