| name | thriller-writing |
| description | Use this skill when developing mystery, social suspense, psychological thriller, locked-room, or serialized ensemble crime fiction. It helps turn a premise into a disciplined outline, fair-play clue plan, suspect ecology, relationship-power map, information release ladder, subtext-driven dialogue scene, reveal sequence, and revision audit. Invoke it when the story depends on controlled reader knowledge, layered motives, chapter hooks, or relationship-dense character conflict. |
悬疑小说剧本创作系统 — Thriller Screenplay Craft
基于专业编剧方法论的 AI 悬疑/推理小说剧本创作技能包
融合 Robert McKee《故事》、Syd Field《电影剧本写作基础》、Blake Snyder《救猫咪》、Raymond Chandler 推理写作法则、Alfred Hitchcock 悬念理论
系统定位
本技能专注于悬疑/推理/惊悚类型的小说与剧本创作,提供从构思到成稿的全流程系统化指导。覆盖:
- 本格推理(公平解谜型)
- 社会派推理(动机驱动型)
- 心理悬疑(不可靠叙事型)
- 惊悚悬疑(高压紧迫型)
- 密室推理(封闭空间型)
- 叙述性诡计(元叙事型)
- 犯罪悬疑(警探/侦探程序型)
- 倒叙推理(已知犯人型/Howcatchem)
- 日常推理(Cozy Mystery/轻推理型)
尤其适合封闭圈层 / 高关系密度 / 连续剧式钩子的悬疑项目,例如夜场、家族企业、学校、医院、警局、剧团、小镇社区等系统。此时案件不是唯一引擎,人物之间的资源交换、依附链、控制欲和秘密债务同样是情节骨架。
命令体系
/start — 项目初始化
触发条件:新项目启动时
必须收集的参数:
| 参数 | 说明 | 选项示例 |
|---|
| 类型 | 悬疑子类型 | 本格推理 / 社会派 / 心理悬疑 / 惊悚 / 密室 / 叙述诡计 / 犯罪程序 / 倒叙推理 / 日常推理 |
| 篇幅 | 目标字数/集数 | 短篇(3万字) / 中篇(10万字) / 长篇(25万字+) / 剧集(集数) |
| 叙事视角 | 视角选择 | 第一人称 / 第三人称有限 / 多视角交替 / 全知(慎用) |
| 核心诡计类型 | 谜团的本质 | 密室 / 不在场证明 / 身份替换 / 叙述陷阱 / 动机反转 / 连环杀人逻辑 |
| 风格调性 | 整体氛围 | 冷硬写实 / 哥特暗黑 / 日系清冷 / 社会批判 / 黑色幽默 / 日常温馨 / 文学沉郁 |
| 主题前提 | 一句话主题 | 例:"失控的正义比犯罪更危险" / "真相有时比谎言更残忍" |
| 目标读者 | 受众画像 | 硬核推理迷 / 大众悬疑读者 / 影视改编向 / 网文读者 |
| 社会场域 | 冲突发生的封闭/半封闭系统 | 夜总会 / 家族企业 / 学校 / 医院 / 剧团 / 社区 / 警局 |
| 关系引擎 | 人物互动的主驱动力 | 群像博弈 / 双主角镜像 / 单主角受困 / 猫鼠对抗 / 多方互相拿捏 |
输出:生成 .thriller-state.json 项目状态文件
输出:生成 .thriller-state.json 项目状态文件
执行逻辑:
- 收集以上参数
- 根据子类型加载对应参考资料:
references/mystery-structure.md;若项目依赖群像关系或剧集钩子,同时补充 references/series-design.md 与 references/ensemble-dynamics.md
- 短篇模式(≤5万字):
/start 与 /theme 合并执行,在初始化时同步完成主题设计
- 输出项目概要卡片 + 关系引擎假设(谁维持秩序、谁想夺权、谁最怕真相暴露)
- 生成状态文件,记录
socialArena、relationshipEngine、hookMode 等核心约束,标记当前阶段为"已初始化"(短篇模式直接标记"主题完成")
/theme — 主题前提与立意
触发条件:/start 完成后(短篇模式下已在 /start 中完成,可跳过)
加载参考:references/mystery-structure.md
"没有前提的悬疑只是谜题游戏;有前提的悬疑才是文学。" — 改编自 Lajos Egri《戏剧写作的艺术》
输出结构(生成 theme.md):
一、主题前提(一句话)
- 格式:"{某种人性/社会现象} 导致 {某种结果}"
- 例:"对控制的执念最终摧毁了控制者自己"
- 例:"真相的代价有时高于谎言的代价"
- 例:"制度性的冷漠比个体的恶意更加致命"
二、主题在故事中的体现
- 犯罪如何体现主题?(犯罪的本质是主题的极端表达)
- 侦探的弧光如何回应主题?(破案过程即主题的论证过程)
- 揭示如何升华主题?(真相揭示的那一刻,主题获得最终论证)
三、主题的三维验证(Egri 方法)
- 生理维度:主题如何在角色的物理世界中体现?
- 社会维度:主题如何反映社会结构/权力关系?
- 心理维度:主题如何触及角色的内在冲突?
四、主题与子类型的适配
- 本格推理:主题通过诡计机制隐喻表达
- 社会派:主题即犯罪的社会根因
- 心理悬疑:主题通过角色的心理困境表达
- 惊悚:主题通过极端处境下的选择表达
设计原则(引自 Lajos Egri《戏剧写作的艺术》):
- 前提必须是可辩论的——如果没有人会反对这个前提,它就不够有力
- 前提必须是可论证的——故事的结局是前提的"证明"
- 犯罪本身就是主题的极端表现形式
/trick — 核心谜团架构(Shonda Rhimes 原则:"先知道最后一个场景")
在设计谜团之前,先确定揭示的那一刻:真相是什么?读者会感受到什么?从终点倒推起点。
触发条件:/theme 完成后(本格/密室/叙述诡计型优先),或 /characters 完成后(社会派/心理悬疑型可后置)
加载参考:references/clue-design.md, references/red-herring.md, references/twist-design.md, references/knowledge-state.md
输出结构(生成 trick-design.md):
一、核心诡计概述
- 谜面(读者看到的表象)
- 谜底(真实发生的事情)
- 诡计机制(表象如何形成)
二、公平性验证(Knox 十诫 / Van Dine 二十则 适用项检查)
- 线索是否全部呈现给读者
- 是否依赖未公开信息
- 是否违反已建立的世界规则
三、线索布局
- 关键线索清单(编号、出现章节、呈现方式、读者注意力预测)
- 误导线索清单(编号、指向的错误结论、消解方式)
- 线索-时间线交叉表
四、诡计可行性分析
- 物理可行性(密室/不在场证明类必须)
- 心理可行性(动机/行为逻辑)
- 信息控制可行性(读者视角管理)
五、反派计划骨架(James Frey 反派引擎法)
- 反派的完整计划(分步骤)
- 每步执行留下的痕迹 → 这些痕迹 = 线索
- 侦探如何发现每条痕迹 → 发现过程 = 情节
- 反派如何反击 → 反击 = 冲突升级
六、知识状态矩阵(参照 knowledge-state.md)
- 角色知识矩阵:每角色每章知道什么
- 读者知识层:读者确知/推测/误信/不知
- 双读者验证:天真读者(惊奇) + 侦探读者(原来如此)
设计原则(引自 Raymond Chandler & Ellery Queen):
- 解答唯一性:同一组线索只能指向唯一真相
- 线索公平性:至少 3 条关键线索在揭示前已呈现
- 误导合理性:红鲱鱼必须有独立存在的叙事理由
- 逻辑闭环:诡计揭示后,所有前文"不合理"之处获得解释
/premise — 聚合前提设计
"在密室里,每个人的到场理由就是承重墙——抽掉任何一根,故事就塌了。"
触发条件:
- 封闭型(密室/暴风雪山庄):
/theme 完成后,/trick 之前
- 开放型(社会派/犯罪程序):
/trick 完成后,/characters 之前(可简化执行)
- 心理悬疑型:与
/trick 合并执行(聚合前提可能是诡计的一部分)
加载参考:references/gathering-premise.md, references/setting-atmosphere.md
输出结构(生成 premise.md):
一、聚合事件设计
- 事件名称与性质(遗产继承/婚礼/职业义务/困境...)
- 事件发起人及其动机(表面目的 + 真实目的)
- 时间紧迫性(为什么是现在?)
- 封闭性来源(空间封闭的物理/社会原因)
二、角色到场动机清单
对每个角色回答三层问题:
| 角色 | 独立理由 | 关系理由 | 不来的代价 |
三、一致性矩阵
| 角色 | 独立理由 | 关系依赖 | 不来的代价 | 与犯罪的隐藏关联 | 减法测试 |
四、反向验证
对每个角色执行四项测试:
□ 减法测试:移除此角色后故事是否成立?
□ 替换测试:此角色能否被一封信替代?
□ 时间测试:此角色能否迟到/早退而不影响情节?
□ 拒绝测试:此角色为什么没有拒绝邀请?
五、缺席角色
- 谁被邀请了但没来?为什么?
- 缺席本身是否构成线索或红鲱鱼?
六、聚合-犯罪因果链
聚合事件 → 特定人群在特定空间 → 犯罪机会 → 犯罪发生
□ 聚合事件是犯罪的必要条件吗?
□ 凶手是否利用了聚合事件的特征来犯罪?
设计原则:
- 到场动机独立于情节需要:角色来的理由不能是"因为故事需要ta在场"
- 到场动机可验证:每个理由都能通过四项反向测试
- 聚合事件有独立价值:即使没有犯罪,这个聚会也应该有存在的理由
- 代价驱动:最好的到场动机是"不来的代价高于来的不便"
/characters — 角色系统设计
触发条件:/trick 和 /premise 完成后
加载参考:references/character-archetype.md, references/ensemble-dynamics.md, references/series-design.md
输出结构(生成 characters.md):
一、侦探/主角
- 人物档案(姓名、背景、性格、核心缺陷、侦探方法论)
- Watson 角色(助手/叙述者/对照)
- 侦探的个人案件(Personal Stakes)
二、关键角色 Agent 卡(主角 / 反派 / 核心嫌疑人都要填写)
| 角色 | 社会身份 | 面具人格 | 真实意图 | 核心恐惧 | 当下欲望 | 筹码 | 依赖 | 不能暴露的秘密 |
三、犯人/反派
- 第一印象设计(读者初见时的人设)
- 真实身份与动机
- 犯罪能力来源(技能、资源、机会)
- 犯人的自洽叙事(ta 如何合理化自己的行为)
- 暴露轨迹(从完美隐藏到逐步暴露的关键节点)
四、嫌疑人矩阵
标准模式(5-8人):
| 角色 | 动机 | 机会 | 能力 | 不在场证明 | 嫌疑指数曲线 |
极简模式(2-3人,适用于心理悬疑/短篇/极简阵容):
| 角色 | 与主角的关系 | 表面嫌疑 | 真实角色 | 何时洗清/暴露 |
注:极简模式下每个嫌疑人承担更多叙事功能(红鲱鱼+人物深化+主题映射)
五、受害者
- 受害者不是 NPC:赋予完整人格与秘密
- 受害者的 N 个面孔(不同角色眼中的受害者)
- 受害者的秘密(与案件的真正关联)
六、关系网络图
- 显性关系(谁公开站在谁一边)
- 隐性关系(谁欠谁、谁爱谁、谁怕谁、谁想取代谁)
- 资源流(钱 / 名声 / 保护 / 性 / 信息 / 机会)
- 知识不对称(谁知道谁的秘密,而对方不知道 ta 知道)
- 关系翻面触发器(什么事件会让联盟立即瓦解或重组)
角色设计原则(引自 McKee《故事》):
- 压力下的选择揭示人物:每个关键角色至少有一个"两难选择"时刻
- 角色是策略体:每个关键角色都必须同时拥有表层姿态(Mask)与底层意图(True Intent)
- 关系不是设定,是可变边:联盟、依赖、仇恨、保护都应能被事件改写
- 人物弧光与案件弧光交织:主角在破案过程中完成内在转变
- 嫌疑人不是工具人:每个嫌疑人都有独立于案件的个人故事线
/structure — 叙事结构设计
触发条件:/characters 完成后
加载参考:references/mystery-structure.md, references/pacing-tension.md, references/series-design.md, references/ensemble-dynamics.md
输出结构(生成 structure.md):
一、结构选择与论证
- 所选结构模型(三幕式 / 英雄旅程 / 起承转合 / 倒叙 / 多线交织)
- 为什么这个故事适合这个结构
二、三幕式(悬疑变体)适配
第一幕·建立(全文 25%)
- 日常→事件→卷入
- 关键节点:尸体/案件发现点(Inciting Incident)
- 完成条件:读者了解所有主要角色,第一个谜团建立
第二幕·调查与复杂化(全文 50%)
- 前半:表面调查,收集线索,建立错误假设
- 中点逆转(Midpoint Reversal):颠覆前半部分建立的认知
- 后半:深层真相浮现,个人风险升级
- 第二幕终点:最黑暗时刻 / 侦探陷入困境
第三幕·揭示与解决(全文 25%)
- 最终线索的获取
- 推理/对决场景
- 真相揭示
- 余波与主题升华
三、章节大纲
| 章节 | 标题 | 核心事件 | 线索操作 | 嫌疑转移 | 关系翻面 | 张力指数 | 钩子类型 |
四、时间线
- 故事时间线(案件实际发生的顺序)
- 叙事时间线(读者接收信息的顺序)
- 两条时间线的错位设计(悬疑的核心来源)
五、信息阶梯
- Layer 1:案件表象(谁死了 / 出了什么事)
- Layer 2:嫌疑生态(为什么每个人都像可能有罪)
- Layer 3:关系翻面(联盟/依附/控制关系被改写)
- Layer 4:动机反转(表面欲望背后还有更深需求)
- Layer 5:情感真相(揭示后角色关系被重新定义)
六、钩子地图
| 章节 | 本章回答的问题 | 新打开的问题 | 钩子类型 | 下一章驱动力 |
七、视角与知识对齐计划
- 哪些章节让读者领先于主角
- 哪些章节让主角领先于读者
- 哪些章节故意让读者和角色一起误判
结构原则(融合 Syd Field 与 Blake Snyder):
- "承诺"原则:第一幕末尾向读者做出的类型承诺,第三幕必须兑现
- "进展复杂化"原则:每个调查行动必须要么获得新线索,要么引发新问题
- "一层回答,两层追问"原则:每章至少回答一个问题,并制造更昂贵的新问题
- "关系翻面"原则:中点前后至少一次主要联盟/依附关系被事件而非解释改写
- "不可逆转"原则:中点之后,主角无法退出,stakes 只升不降
/scene {章节号} — 逐章创作
触发条件:/structure 完成后
加载参考:references/suspense-technique.md, references/dialogue-interrogation.md, references/knowledge-state.md, references/ensemble-dynamics.md
输出格式(生成 chapters/ch{NNN}.md):
# 第 N 章:{章节标题}
## 场景信息
- POV:{视角人物}
- 地点:{场景地点}
- 时间:{故事内时间}
- 本章核心功能:{推进调查 / 人物塑造 / 线索埋设 / 转折 / 揭示}
## 场景博弈表
- 表层议题:{角色嘴上在谈什么}
- 潜台词战场:{真正争夺什么}
- 试探路径:{谁在试探谁,试探什么}
- 权力变化:{谁从上风变下风 / 谁重新掌握主动}
- 信息操作:{揭示 / 隐藏 / 误导 / 重新解读}
## 正文
{800-3000字正文}
## 章末钩子
{下一章悬念设计}
---
### 创作备注(不进入正文)
- 本章埋设的线索:{编号列表}
- 本章的误导操作:{描述}
- 嫌疑指向变化:{角色A ↑, 角色B ↓}
- 本章的关系变化:{联盟更紧 / 裂痕出现 / 控制权转移}
- 本章的试探点 / 失守点:{谁差点说漏 / 谁成功套话}
- 读者此刻应有的推理状态:{描述}
- 本章钩子类型:{答案 / 威胁 / 反转 / 关系翻面 / 决策悬崖}
场景写作原则(引自 Hitchcock 悬念理论):
- 悬念 ≠ 惊吓:观众知道桌下有炸弹(悬念)vs 炸弹突然爆炸(惊吓)。优先使用悬念
- 戏剧反讽:当读者比角色知道更多时,张力最大化
- 场景内弧线:每个场景都有自己的"期望→障碍→转折"微结构
- 对话 = 试探 + 隐藏 + 换取时间:对白不能只承担说明功能
- 权力必须移动:一场好戏里,至少有一个角色的上风/下风发生变化
- 钩子要带代价:章末不只是新信息,而是让下一章有人必须为此付出代价
- "迟到的主角"原则:让读者在主角到达前就感受到危险
/audit — 线索一致性审查
触发条件:任何创作阶段均可调用
加载参考:references/clue-design.md
执行逻辑:
- 扫描所有已写章节,提取所有线索出现点
- 与
trick-design.md 中的线索布局对照
- 输出审查报告:
一、线索完整性
- 已布设的关键线索:✅ / ❌
- 未布设的关键线索:{列表,建议插入章节}
二、线索可见性
- 各线索的"显眼程度"评估(过于明显 / 恰当 / 过于隐蔽)
三、红鲱鱼状态
- 各误导线索是否已激活 / 是否已消解
四、公平性评分(按子类型过滤适用条目)
- 本格/密室:Knox 全部 10 条 + Van Dine 核心条目
- 犯罪程序:Knox #1,#2,#4,#6,#8 + 程序真实性检查
- 心理悬疑:Knox #1,#8 + 不可靠叙述者公平性协议(参照 unreliable-narrator.md)
- 叙述诡计:Knox #7,#8,#10 + 文字层面可追溯性检查
- 社会派/惊悚/日常推理:Knox #1,#2,#6 + 动机合理性检查
- 倒叙推理:Knox 不适用(读者已知真相),改为侦探推理链完整性检查
- 双读者验证(参照 knowledge-state.md):天真读者(惊奇) + 侦探读者(原来如此)
- 总评:公平 / 基本公平 / 不公平(需修改)
五、漏洞检测
- 逻辑矛盾
- 时间线冲突
- 角色行为不一致
/design-review — 设计阶段综合评审
触发条件:所有设计步骤完成后,与 /constraint-check 同步执行
加载参考:meta/references/evaluation-framework.md
执行逻辑:
步骤 1:文档质量评分
对每份设计文档(theme / trick / premise / characters / structure)
评 5 个通用维度(完整性/内在一致/可验证性/约束密度/叙事潜力,各 1-5 分)
+ 各文档特化检查项
步骤 2:跨文档一致性验证
按检查矩阵逐对验证(theme↔trick, trick↔premise, premise↔characters, ...)
步骤 3:设计就绪度计算
就绪度 = 文档质量×0.35 + 跨文档一致性×0.35 + 约束饱和率×0.30
步骤 4:输出判定
Ready / Almost Ready / Needs Work / Not Ready
输出结构:
设计评审报告:
一、文档质量评分
| 文档 | 完整性 | 一致性 | 可验证 | 约束密度 | 潜力 | 小计 | 特化 |
────────────────────────────────────────────────────────────────
文档质量总分:___/100%
二、跨文档一致性
| 文档对 | 检查项数 | 通过 | 不通过 | 不通过项清单 |
────────────────────────────────────────────────
一致性总分:___/100%
三、约束饱和率
饱和率:___% | 真空项:___
四、设计就绪度
= ___% | 评级:___ | 判定:通过/阻塞
阻塞原因(如有):___
五、修复建议(按优先级排序)
1. ...
2. ...
/check {章节号} — 单章质量评估
触发条件:章节写作完成后
加载参考:meta/references/evaluation-framework.md(约束遵守维度)
评分维度(每项 1-10 分,满分 70 分,按子类型加权):
| 维度 | 评估要点 | 本格 | 社会派 | 心理 | 惊悚 | 密室 | 犯罪 | 日常 |
|---|
| 悬念张力 | 信息不对称、信息阶梯兑现、阅读欲望 | ×1.0 | ×1.0 | ×1.2 | ×1.5 | ×1.0 | ×1.2 | ×0.8 |
| 线索技术 | 线索自然度、误导力 | ×1.5 | ×1.0 | ×1.0 | ×0.8 | ×1.5 | ×1.2 | ×1.0 |
| 人物一致性 | 行为/对话辨识度、面具与真实意图分离度 | ×0.8 | ×1.2 | ×1.5 | ×1.0 | ×0.8 | ×1.0 | ×1.5 |
| 节奏控制 | 张弛、场景长度 | ×1.0 | ×1.0 | ×1.0 | ×1.2 | ×1.0 | ×1.0 | ×1.0 |
| 逻辑严密性 | 推理链、漏洞 | ×1.5 | ×1.0 | ×0.8 | ×0.8 | ×1.5 | ×1.2 | ×0.8 |
| 文学质量 | 风格、意象、金句 | ×0.8 | ×1.2 | ×1.5 | ×0.8 | ×0.8 | ×0.8 | ×1.5 |
| 约束遵守 | 设计执行忠实度、临时发明检测 | ×1.2 | ×1.2 | ×1.2 | ×1.2 | ×1.2 | ×1.2 | ×1.2 |
加权后总分 = Σ(原始分 × 权重) / Σ(权重) × 10,仍按 70 分制评级
评级:<35 需重写 → 35-47 可接受 → 47-59 良好 → 59-70 优秀
约束遵守维度评分要点:
- 本章线索操作是否与 trick-design.md 计划一致?
- 嫌疑指向变化是否与 structure.md 章节大纲一致?
- 角色行为是否在 characters.md 的人设范围内?
- 关系翻面 / 权力变化是否与 characters.md 的关系引擎一致?
- 章末钩子是否兑现了 structure.md 的信息阶梯与 hook map?
- 对话是否承担了试探 / 隐藏 / 误导任务,而不是纯说明?
- 是否出现了"危险发明"(破坏已建立约束的新信息)?
- 到场动机的呈现是否与 premise.md 一致?
临时发明记录(附在评分后):
本章临时发明:
合理:{数量}
可疑:{数量} → {列表}
危险:{数量} → {列表 + 处理方案}
累积漂移度:{数值} → {正常/警告/严重/失控}
群像场景额外加分项(社会派 / 心理悬疑 / 连续剧优先):
- 一段对话同时推进关系、信息、危险三件事
- 同一事件在不同角色身上产生不同代价
- 章末钩子同时改变案件判断和人物关系
/reveal — 真相揭示场景专项
触发条件:进入第三幕
加载参考:references/twist-design.md
设计框架:
一、揭示方式选择
- 侦探推理展示(古典型:波洛式集合推理)
- 犯人自白(心理型:动机驱动的告白)
- 逐步剥离(层层反转,每次揭示推翻前一个认知)
- 读者先于侦探(倒叙揭示,展示犯罪过程)
- 对决中揭示(追逐/对抗中真相浮出)
二、揭示节奏设计
- 预揭示(暗示,让聪明读者提前 0.5 秒猜到)
- 核心揭示(真相公开的精确时刻)
- 后揭示(揭示后的情感余波与意义升华)
三、反转层级(如适用)
- 第一层反转:推翻表面假设
- 第二层反转:推翻第一层反转建立的新认知
- (慎用)第三层反转:终极真相
四、情感落点
- 揭示后读者应有的情感反应
- 主题在揭示中的体现
揭示原则(引自 Agatha Christie 与 东野圭吾 创作方法):
- "啊哈"时刻:最佳揭示让读者发出"原来如此"而非"怎么可能"
- 回溯验证:揭示后读者回想前文,每个"奇怪"之处都获得解释
- 情感优先:技术性诡计揭示必须伴随情感冲击
/export — 作品导出
触发条件:全部章节完成后
输出:
- 完整版合并文件
export/{title}-complete.md
- 作品概要(梗概/简介/卖点分析)
- 线索-章节对照表
- 角色关系图(Mermaid 格式)
- 时间线图表
核心方法论来源
| 来源 | 核心贡献 | 在本系统中的应用 |
|---|
| Robert McKee《故事》 | 场景即"价值转变的最小单位" | 每场景必须有价值翻转 |
| Syd Field《电影剧本写作基础》 | 三幕结构、情节点理论 | 结构模板的骨架 |
| Blake Snyder《救猫咪》 | 15 个节拍点 | 节奏验证参考 |
| Raymond Chandler | "如果剧情卡住,让一个拿枪的人走进来" | 场景动力学 |
| S.S. Van Dine《推理小说二十则》 | 公平推理的规则基础 | 线索审查系统 |
| Ronald A. Knox《推理十诫》 | 禁止事项清单 | 公平性验证 |
| Alfred Hitchcock | 悬念 vs 惊吓理论、MacGuffin | 悬念设计框架 |
| Agatha Christie | 嫌疑人设计、叙述诡计 | 嫌疑人矩阵、诡计类型 |
| 东野圭吾 | 社会派推理、情感驱动的真相 | 动机设计、情感落点 |
| 松本清张 | 社会结构性犯罪 | 社会派推理模板 |
| Lajos Egri《戏剧写作的艺术》 | 前提驱动、三维角色 | 主题前提系统、角色深度 |
| Wayne Booth《小说修辞学》 | 不可靠叙述者理论 | 叙述可靠性设计 |
| Patricia Highsmith | 犯罪者视角的心理描写 | 犯人内心世界 |
状态管理
项目状态持久化在 .thriller-state.json 中:
{
"project": "项目名称",
"type": "心理悬疑",
"length": "中篇",
"currentStage": "场景创作",
"completedStages": ["初始化", "主题", "诡计设计", "人物", "结构"],
"theme": "失控的正义比犯罪更危险",
"chapters": {
"total": 20,
"completed": [1, 2, 3],
"current": 4
},
"clueTracker": {
"planted": ["C01", "C02", "C03"],
"pending": ["C04", "C05"],
"herrings": ["H01", "H02"]
}
}
工作流程序
路线 A(本格/密室/叙述诡计——诡计优先):
/start → /theme → /premise → /trick → /characters → /structure
→ [约束饱和检查] → /scene 1..N → /revise → /reveal → /export
路线 B(社会派/心理悬疑——角色优先):
/start → /theme → /characters → /trick → /premise(简化) → /structure
→ [约束饱和检查] → /scene 1..N → /revise → /reveal → /export
路线 C(惊悚/犯罪程序——结构优先):
/start → /theme → /structure → /characters → /trick → /premise(简化)
→ [约束饱和检查] → /scene 1..N → /revise → /reveal → /export
通用规则:
- /audit 和 /check 可在任何创作阶段随时调用
- /revise 可在任何阶段反复调用
- 每个阶段的输出是后续阶段的输入依赖
- [约束饱和检查] 在所有设计步骤完成后、第一行正文生成前执行
- 约束饱和检查不通过 → 不允许开始 /scene
- 封闭型故事(密室/暴风雪山庄)中 /premise 必须在 /trick 之前完成
步骤执行日志
每个步骤完成时,在 .thriller-state.json 中追加该步骤的执行记录,用于复盘时追溯决策链。
日志格式
每个步骤执行后,在 stepLog 数组中追加一条记录:
{
"stepLog": [
{
"step": "/theme",
"timestamp": "2026-03-18T10:00:00Z",
"output_file": "theme.md",
"constraints_established": [
"主题前提:'信任的代价高于背叛的代价'"
],
"constraints_consumed": [],
"assumptions_made": [],
"key_decisions": [
"选择社会派主题方向而非纯心理方向",
"主题通过犯罪动机的社会根因表达"
],
"open_questions": [
"主题是否需要通过副线角色做反面论证?"
]
},
{
"step": "/premise",
"timestamp": "2026-03-18T11:00:00Z",
"output_file": "premise.md",
"constraints_established": [
"聚合事件:遗产继承会",
"6个角色的到场动机已建立",
"封闭性:暴风雪+山路断裂"
],
"constraints_consumed": [
"来自 /trick: 凶手身份=管家,需要与受害者独处机会"
],
"assumptions_made": [
"假设角色C的律师身份在 /characters 中深化"
],
"key_decisions": [
"聚合事件发起人=受害者本人(增加反讽)",
"角色D的到场动机=被勒索(不来就曝光秘密)"
],
"open_questions": []
}
]
}
日志字段说明
| 字段 | 作用 | 复盘价值 |
|---|
constraints_established | 本步骤建立了哪些约束 | 对照约束契约的 ✓ 清单,检查是否完整 |
constraints_consumed | 本步骤使用了上游哪些约束 | 追踪约束传递链,检测断裂 |
assumptions_made | 本步骤做了哪些假设 | 对照约束契约的 ⚠ 清单,识别真空 |
key_decisions | 关键设计决策及理由 | 补丁时回溯:当初为什么这么决定? |
open_questions | 未解决的问题 | 下游步骤的注意事项 |
约束饱和检查自动化
在所有设计步骤完成后,遍历 stepLog:
1. 收集所有 assumptions_made → 未覆盖假设清单
2. 收集所有 constraints_established → 已建立约束清单
3. 对每个假设:检查是否被某个已建立约束覆盖
4. 未覆盖的假设 = 约束真空 → 必须在生成前解决
5. 输出约束饱和报告:
- 饱和率 = 已覆盖假设 / 全部假设
- 真空清单(每条附带:谁假设了它、应由谁建立)
- 通过/不通过判定
/revise — 修改与打磨
触发条件:任何创作阶段均可调用,建议在全部初稿完成后系统执行
加载参考:根据改稿类型加载对应参考
四种改稿模式:
| 模式 | 关注点 | 检查内容 |
|---|
| 结构改稿 | 宏观节奏 | 三幕比例、中点位置、节拍缺失、张力曲线、MICE 嵌套闭合顺序 |
| 角色改稿 | 人物一致性 | 每人有独立声音?弧光完整?动机罗盘四维完整?嫌疑曲线合理? |
| 线索改稿 | 推理逻辑 | 调用 /audit + 公平性验证 + 红鲱鱼五阶段生命周期 + 知识状态矩阵 |
| 文字改稿 | 逐章润色 | 删除冗余、强化意象、打磨对话、统一文风(参照 prose-craft.md) |
自我编辑信法(Elizabeth George 方法):
在全稿初稿完成后,用 1-2 天快速通读全文,然后给自己写一封"编辑来信":
- 结构层:哪里拖沓?哪里太急?中点是否有力?
- 角色层:哪个角色最弱?谁的声音和别人太像?
- 线索层:哪条线索太明显?哪条太隐蔽?红鲱鱼消解得是否满意?
- 情感层:哪里应该更痛?哪里应该更温暖?揭示的情感落点到位吗?
这封信成为改稿的路线图。
输出:修改建议清单 + 具体修改方案(逐章)