zizi cee5d0c58d chore(craft): 蒸馏 v2 全量合并 + 追溯分离 + 综合 skill 搬入 .claude/skills/
7 本写作书(Story Engineering、成为作家、Writing Tools、小说面面观、
我能否相信自己、小说课、风格感觉)按 15 个创作领域全量合并成综合 skill,
丢弃 v1 压缩蒸馏的思路(案例限 3 个、引文限 2 行、文件 ≤220 行)——被审计
证实丢了原文 75% 体积。

落点:.claude/skills/<slug>/  下,每包含 SKILL.md 入口 + references/ 全量
内容(按主题拆分)+ scripts/ 可执行清单 + _coverage.md 覆盖对照表(唯一
追溯文件)。craft/ 目录只剩 books/ 原料层与 MERGE_PLAN.md / README.md /
scripts/check_craft_skills.py 等 SoT。

规范要点:
- 整合规范 v2:只重复合并、不压缩抛弃;举例保留具体对话/数字/动作/原句
- 追溯分离:SKILL.md 与 references/ 内容文件无《书名》unit-slug 标记,
  所有来源只在 _coverage.md(落点到文件级即可)
- 门禁:覆盖闭合 + frontmatter + 包结构 + 标记扫描,craft 15 个全过

craft/skills/ 的 15 个 skill 整体搬到 .claude/skills/,新建 _index.md 统管
运行时技能(33)与方法论参照(15),后者标签【方法论参照】,明示不落库、
不进 meta/chains。AGENTS.md 同步目录树与定位段。
2026-08-19 19:01:45 +08:00

6.4 KiB
Raw Blame History

性格即命运:设计碰撞而非制造巧合

来源:(毕飞宇《小说课》第 7 讲,案例取自《促织》"迁讷遇猾黠" + 整本书)

「蒲松龄只给了他四个字,'为人迁讷'。'为人迁讷'能说明什么呢?什么都说明不了。没听说'为人迁讷'就必须倒霉,性格从来就不是命运。问题出就出在《促织》开头的那个'里胥'身上,'里胥猾黠'。当'迁讷'遇见了'猾黠',性格就必须是命运。」

()

方法规则

命运不是性格单独决定的——是性格 + 性格碰撞出来的

  • 迁讷 + 猾黠 = 必然被欺负
  • 林冲(忍)+ 高俅(恶)= 必然被逼上梁山
  • 哈代式的苔丝(纯)+ 失贞 = 必然悲剧

单个性格不产生命运,碰撞才产生命运。()

核心洞察

不要让你的主人公"倒霉",让你的主人公"遇到另一个人"。

"一个人遇到另一个人"——这是小说最深的结构。()

错误的"命运":

  • 主人公生来就惨
  • 主人公被随机事件压垮
  • 主人公被作者安排"该轮到你了"

正确的"命运":

  • 主人公的特定性格
  • 遇上另一个特定性格的对手
  • 碰撞产生必然结果

()

案例全文

案例 1:蒲松龄《促织》成名 + 里胥

成名 = 迁讷(老实、不会说话)
里胥 = 猾黠(狡猾、贪婪)
碰撞:迁讷遇上猾黠,必然被欺压

升级链条:

  • 里胥报成名做里正 → 成名不敢反抗
  • 促织征收 → 成名不敢敛户口
  • 抓到差促织 → 成名被打得不能行走
  • 儿子自杀 → 成名只能继续"用儿子换促织"

每一步都是性格的必然。

案例 2:施耐庵《水浒》林冲 + 高俅集团

林冲 = 技术好、心稳、想留在体制内
高俅 = 权贵、霸凌、不讲理
碰撞:林冲越想体面,高俅越不让

案例 3:曹雪芹《红楼梦》王熙凤 + 贾瑞

王熙凤 = 毒辣、聪明、好玩弄人
贾瑞 = 痴情、自以为是
碰撞:王熙凤"毒设相思局",贾瑞必死

案例 4:哈代《苔丝》苔丝 + 失贞的阶级

苔丝 = 纯真、忠诚
亚雷 = 资产阶级恶少
碰撞:失贞后无法在丈夫面前自处

(以上四案例均出自)

触发场景

  1. 你的人物"该倒霉"但没有具体原因 → 加一个对手
  2. 你的情节靠"巧合"推动 → 把巧合换成"性格碰撞"
  3. 你的主角"觉醒"了但没说服力 → 他的对手是什么性格?那个性格决定了他的觉醒路径
  4. 你的悲剧"不悲" → 看看读者是否同情——同情的关键是"性格可识别"
  5. 你写"反派人"但他像工具人 → 反派也要有"性格",碰撞才立体

()

操作步骤

步骤 1:定义"主要碰撞"

列出主角和最重要的对手 / 环境:

主角性格:A、B、C 三个特征
对手性格:X、Y、Z 三个特征
必然碰撞:主角的 [A] 遇上对手的 [X] → 必然 [事件]

步骤 2:把"巧合"翻译成"性格碰撞"

❌ 巧合 ✅ 性格碰撞
主角出门撞见坏人在做坏事 主角的好奇心(性格)→ 必然去查看
仇人正好路过 主角的某种执念 → 必然相遇
突然生病 主角的某种弱点 → 加上对手的某种利用
错认了人 主角的某种误解倾向(性格)+ 对方的某种特征

检验:把这个巧合删掉,主角还会遇到这件事吗?

  • 会的(因为性格)→ 巧合换得好
  • 不会 → 你还有巧合没换

步骤 3:写"性格速写"

每个主要人物用 3-5 个性格词定义:

成名:迁讷、善良、无能、坚韧(妻子替他想办法)
里胥:猾黠、贪婪、霸凌

检验:

  • 删掉一个性格词 → 人物会"不像" → 这个词是关键
  • 加一个性格词 → 人物会"模糊" → 加多了

(注意:这 3-5 个性格词是给作者定位用的设计工具,不是写进正文的标签——"性格要通过动作显现,不是形容词",见本条所属常见错误表,以及与 的合并说明 references/detail-mosaic.md"多书合并点"节。)

步骤 4:设计"性格链"

不是一次碰撞——是连串碰撞:

性格 A 遇性格 X → 事件 1
事件 1 改变 → 性格 A 暴露新侧面
新侧面 + 性格 Y → 事件 2
事件 2 → 性格 A 再暴露
...

林冲的链:

  • 忍(性格)+ 高俅霸道 → 被陷害
  • 忍 + 路上被欺 → 咬牙忍
  • 忍 + 草料场 → 还在忍
  • 忍 + 听到阴谋 → 忍不了——爆发
  • 爆发 + 柴进 → 上山

步骤 5:写"性格判断"

每个主要人物应该有一个"判断瞬间"——读者看到他做这一个动作 / 选择,就能识别他:

  • 成名:听到"迁讷" → 立刻知道这是什么样的人
  • 林冲:被陷害后第一反应是"忍" → 立刻知道
  • 哈代苔丝:失贞后依然要"诚实" → 立刻知道

检验:你的主角有这样一个"判断瞬间"吗?

(以上步骤均出自)

常见错误

错误 后果 修正
性格太"模糊"(既 A 又 B 又 C) 读者抓不住 3-5 个核心性格,且要有"主要矛盾"
反派性格太"扁平" 假 反派也要有"性格即命运"
性格没碰撞只"遭遇" 假 强调"碰撞"——是性格之间的化学反应
把"性格"等于"标签" 假 性格要通过动作显现,不是形容词

()

适用边界

  • 适合:所有虚构叙事(小说、剧本、电影)
  • 慎用:群像小说(需要多对碰撞)
  • 不适用:纯意识流、纯抒情(它们靠情绪,不靠碰撞)

()

一句话总结

不要让你的主人公"倒霉",让他的"特定性格"遇到"另一个特定性格"——命运自己会来。

()

跨 skill 链接

  • 与 bifeiyu-shakespeare 同源:性格 + 现实的逻辑推演。(bifeiyu-shakespeare 归综合 skill theme-and-stance)
  • 与 bifeiyu-anti-norm 关联:反常动作是"性格即命运"的爆发点。(同在本包,见 references/abnormal-moment.md)
  • 与 bifeiyu-base-temp 配合:性格的"基础体温"是性格的色彩。(bifeiyu-base-temp 归综合 skill prose-craft)
  • 与 bifeiyu-mercy-ruth 配合:作家要"心慈手狠"才能让性格碰撞产生必然命运——不能因心软去救人物。(bifeiyu-mercy-ruth 归综合 skill theme-and-stance)

(;综合 skill 归属标注为本次合并所加)