novel-research
小说调研
概述
创建单本小说项目,通过 6 个阶段将模糊的故事构想转化为可供起草长期使用的 Markdown 知识库。
- Phase 1–3 是访谈阶段(范围评估 → 方案探索 → 增量访谈),聚焦与用户协作澄清创作意图
- Phase 4–6 是执行与验证阶段(调研撰写 → 自检 → 用户审阅),将确认结论固化为产物文件
除非用户明确拒绝,否则默认进行联网调研。
何时使用
- 用户想从零开始一个新小说项目
- 用户只有一个故事前提,需要进一步结构化
- 项目需要设定、类型、风格或专业领域调研
- 在文件补齐前,起草阶段必须保持阻塞
必需产物
只有以下文件全部存在且内容充分时,才能将调研标记为完成:
00-project/project-brief.md00-project/success-criteria.md00-project/workflow-status.md10-research/topic-research.md10-research/setting-research.md10-research/style-research.md10-research/references.md20-story/characters/— 每个角色一个.md文件,统一角色卡格式20-story/character-relationships.md— 角色间双向关系20-story/plot-outline.md20-story/foreshadowing.md30-draft/chapter-plan.md
以上文件在 Phase 4 中撰写,在 Phase 5 中自检,在 Phase 6 中由用户审阅确认。
Phase 1: 范围评估与分解
进入条件: 用户提出任何新小说构想时首先执行此阶段。
如有以下信号,项目需要拆分:
- 三部曲 / 系列 / 多部
- 超过 3 条主线 POV 的群像剧
- 横跨多个时代或大陆,世界观本身即为独立工程
- 用户明确提到「系列」「多部」
拆分流程:
- 帮助用户理清子项目之间的关系和阅读顺序
- 每个子项目是独立的一本书,有独立目录结构和 research 周期
- 当前 session 聚焦第一个子项目
正常范围: 若适合一本小说消化,执行项目创建规则并进入 Phase 2。
项目创建规则
调研开始时,使用书名或暂定名派生出的 slug 创建单书目录。
如果 agent 是从工作区根目录启动,而不是从书籍根目录启动,则创建并使用以下结构:
<workspace-root>/<book-slug>/00-project<workspace-root>/<book-slug>/10-research<workspace-root>/<book-slug>/20-story<workspace-root>/<book-slug>/30-draft<workspace-root>/<book-slug>/40-review<workspace-root>/<book-slug>/50-delivery
当后续 skill 引用 00-project/... 这类路径时,应将其解析为相对于检测出的小说项目根目录。该根目录可能是:
- 当前工作目录本身
- 当前工作目录下唯一的一个子级书籍目录
创建以下目录:
00-project10-research20-story30-draft/chapters40-review/chapter-reviews50-delivery/output
在声明进度之前,必须先实例化所有模板文件。
Phase 2: 方案探索
目的: 在细节访谈之前,向用户呈现 2-3 个不同的大方向,让用户主动选择而非被动跟随 agent 的默认理解。
方向卡片格式(每个 3-5 句):
- 一句话定位(这是什么故事)
- 叙事视角 + 体裁
- 基调与气质
- 独特卖点(和另外几个方向的本质区别)
示例: 用户说「我想写一个复仇仙侠」——
- 方向 A:传统修炼复仇记 — 第一人称,主角从灭门到飞升,黑暗写实基调,核心是力量成长与道德代价
- 方向 B:庙堂博弈暗线 — 第三人称多视角,复仇藏在宗门与王朝权力斗争之下,基调冷峻智斗
- 方向 C:解构式反套路 — 第一人称带讽刺口吻,主角发现「复仇」是更高存在设计的剧本,基调荒诞中有温情
流程:
- Agent 说明「你的想法可以往这几个方向走」
- 逐个呈现方向卡片
- 等待用户选择(可单选、可混合元素、可提出自己的方向)
跳过条件: 若用户初始表述已非常具体(如「第三人称多 POV、明朝背景、谍战武侠」),可将方案探索缩短为一次确认。
Phase 3: 增量访谈
8 个访谈话题分为 3 组。组内逐题提问,组末暂停确认。一次只问一个问题,不要批量提问。
A 组:外部形态
| 话题 | 问法 |
|---|---|
| 类型与体裁 | 这是什么样的故事? |
| 目标读者 | 预期读者是谁? |
| 篇幅目标 | 短篇、中篇、长篇?大致字数? |
A 组确认: 三题答完后,agent 用 3-5 句话总结,询问「这部分理解对吗?」
B 组:内在驱动
| 话题 | 问法 |
|---|---|
| 语气与氛围 | 严肃、轻快、黑暗、希望感? |
| 核心冲突 | 中心张力是什么? |
| 主角欲望 | 主角最想得到什么? |
B 组确认: 同 A 组,总结后确认。
角色卡导入时机
在 B 组完成之后、C 组开始之前询问用户:
"你是否拥有 SillyTavern / 酒馆角色卡(PNG 或 WebP 图片)?如果有,我可以解析并导入,作为人物设定的起点。"
如果用户提供角色卡路径:
- 运行
<skill-root>/scripts/parse-charcard.mts --input <path> --project-root <project-root> - 读取生成的
20-story/characters/<角色名>.md - 遍历「需代理总结」区域的 system_prompt / post_history_instructions,提取对角色塑造有用的信息
- 将解析结果 + 代理总结整合到角色的角色卡文件
- 身份 / 目标 / 动机 / 冲突 / 弧光等遗留字段留为占位符,供访谈阶段补充完成
如果用户没有角色卡,继续 C 组访谈。
角色创建前置:
- agent 在开始角色创建前,必须阅读
references/theory/zhuji-character-theory.md理解三轴解构体系(外显轴/内质轴/外延轴) - 在后续 char0~3 中以三轴框架引导用户访谈:char0 聚焦三轴概念设计,char1 聚焦外显轴,char2 聚焦内质轴,char3 聚焦外延轴
角色创建管线: agent 在创建角色时,按 references/character-interview-guide.md 第一部分的 char0~7 步骤逐步骤执行,角色创建完成后运行第二部分「角色审查」进行自检。审查中的一致性诊断依据 references/theory/mckee-character.md 的六维度体系,弧光校验依据 references/theory/harmon-story-circle.md 的 8 阶段循环。
C 组:边界条件
| 话题 | 问法 |
|---|---|
| 结局倾向 | 圆满、悲剧、开放式、苦乐参半? |
| 禁忌内容 | 有哪些题材、套路或元素必须避免? |
C 组确认: 同前,总结后确认。
整体确认
三组全部通过后,agent 给出覆盖所有 8 个话题 + 角色信息的整体摘要。用户确认后进入 Phase 4。
Phase 4: 调研与文件撰写
将 Phase 2–3 确认的结论写入全部 11 个产物文件。
风格构建: agent 在撰写 10-research/style-research.md 时,按 references/style-analysis-guide.md 的文体分析流程和风格复现宪章产出风格约束。
叙事构建: agent 分两步进行 —
- 按
references/narrative-structure-guide.md第一部分建立叙事框架(预设作者、情节结构选型、叙述视角、读者体验),产出写入20-story/plot-outline.md的叙事约束段落。情节结构选型时,必须查阅references/theory/mckee-story.md了解幕设计原则,并用references/theory/harmon-story-circle.md的 8 阶段循环校验主角弧光完整性。 - 按
references/narrative-structure-guide.md第二、三部分梳理叙事网络并逐章细化,产出写入20-story/plot-outline.md、20-story/foreshadowing.md和30-draft/chapter-plan.md。
世界观构建: agent 在撰写 10-research/setting-research.md 时,按 references/worldbuilding-guide.md 的 7 大板块(基调与物理原则 → 自然禀赋 → 生物圈 → 世界历史 → 人文文化 → 区域差异化 → 文化符号)逐板块构建。板块一至六必填,板块七可选。
联网调研
对于领域事实、时代细节、设定真实性、职业流程、地域背景和风格参照,除非用户明确禁止,否则默认进行联网调研。
如果禁止搜索:
- 不要联网浏览
- 在
references.md中标记不确定区域 - 明确指出哪些细节是推断而非验证所得
调研转化
不要停留在链接或摘录层面。把每一个有用发现转化为以下一种或多种内容:
- 设定约束
- 术语说明
- 真实性风险
- 风格规则
- 禁忌或连续性风险
文件撰写原则
- 每个文件的约束必须可追溯到 Phase 3 的确认结论
- 文件之间不得矛盾(若有,视为未完成)
- 角色卡解析结果整合到
20-story/characters/目录(目录非空),并更新20-story/character-relationships.md
Phase 5: 自检
在文件全部写完后,依次通过两道检查。任一道不过 → 状态保持 research_in_progress,回到对应阶段补充。
第一道:完整性清单
- 主角、核心冲突、故事目标已明确定义
- 篇幅目标已设定,且与章节数量一致
- 章节计划与篇幅和推进节奏匹配
- 伏笔出现在对应收束点之前
- 风格约束足够约束后续起草
- 世界观 / 设定 / 真实性无明显空白
第二道:机械验证
运行 validator(必须成功):
node --experimental-strip-types <skill-root>/scripts/validate-research-project.mts --project-root <project-root>
两道检查全部通过后,进入 Phase 6。
Phase 6: 用户审阅闸门
硬约束:在用户明确确认之前,workflow-status.md 中的 Status 绝对不能写为 research_complete。
流程:
- Agent 列出全部 11 个产物文件路径,给出简洁摘要(类型、篇幅、核心冲突、关键约束)
- 询问:「所有文件已就绪,请审阅确认。如有需要调整请告诉我,确认后我将状态设为 research_complete。」
- 等待用户回复,不做任何推进动作
- 用户提出修改 → 修改后回到步骤 1
- 用户确认 → 更新
00-project/workflow-status.md:Status→research_completeNext Allowed Skill→novel-drafting- 更新
Last Updated
常见自我说服
| Excuse | Reality |
|---|---|
| "用户说得很模糊,所以给个宽松大纲就够了" | 起草阶段需要明确约束和文件产物。 |
| "这个类型我已经很熟,不用查了" | 除非被拒绝,否则调研默认需要联网核验。 |
| "章节计划短一点应该也没问题" | 起草 skill 需要明确的章节推进设计。 |
| "用户要求很简单,快速过一遍就行" | 跳过 Phase 2 方案探索或 Phase 6 用户审阅意味着未经验证的假设进入起草。 |
| "自检过了就标 research_complete" | Phase 6 用户审阅闸门是强制步骤,未经用户确认不得推进。 |
状态流转
- 开始:将状态设为
research_in_progress - 阻塞:将状态设为
research_blocked,并列出具体阻塞原因 - 完成:通过 Phase 5 自检 且 Phase 6 用户确认后,才能设为
research_complete
下一步
在 research_complete 之后,下一个允许使用的 skill 是 novel-drafting。在用户通过 Phase 6 确认之前,绝不推进到 drafting。
参考文件
- 自检细则:references/completion-gate.md
- 角色访谈方法指引:references/character-interview-guide.md
- 世界观构建方法指引:references/worldbuilding-guide.md
- 风格分析方法指引:references/style-analysis-guide.md
- 叙事结构方法指引:references/narrative-structure-guide.md
- 理论参考 — 麦基《人物》:references/theory/mckee-character.md
- 理论参考 — 麦基《对白》:references/theory/mckee-dialogue.md
- 理论参考 — 麦基《故事》:references/theory/mckee-story.md
- 理论参考 — 哈蒙故事圈:references/theory/harmon-story-circle.md
- 理论参考 — 珠矶角色理论:references/theory/zhuji-character-theory.md