Skill: caoyachao/novel-director (version 2.0.0)

--- name: novel-director description: | AI互动小说创作工具 - 导演板模式 v2.0.0（支持长篇连载）。 用户作为导演设定场景、人物、目标，AI作为演员分镜演绎。 新增：长篇小说上下文管理、智能检索、跨Session续写。 触发词：开始创作、写小说、来一段故事、导演模式、继续写、保存、新建小说。 version: "2.0.0" --- # Novel Director - AI互动小说导演板 v2.0.0 ## 概述 Novel Director 是一个**分镜推进式**的AI互动小说创作工具。 - **你是导演**：设定场景、人物、目标、氛围 - **AI是演员**：根据你的设定分镜演绎，在关键节点停下请示 - **你掌控走向**：在每个决策点做出选择，决定剧情方向 - **长篇连载**：智能上下文管理，支持跨Session续写 **版本**: v2.0.0 | **更新日期**: 2025-04-13 --- ## 长篇小说上下文管理 ### 三层架构 ``` ┌─────────────────────────────────────────────────────────┐ │ Layer 3: 世界知识库 (world_knowledge.json) │ │ - 世界观设定、角色档案、关键事件时间线 │ │ - 核心设定，长期不变 │ ├─────────────────────────────────────────────────────────┤ │ Layer 2: 章节索引 (chapter_index.json) │ │ - 每章的元数据：标题、摘要、关键词、角色出场 │ │ - 快速检索，无需读取全文 │ ├─────────────────────────────────────────────────────────┤ │ Layer 1: 工作上下文 (Working Context) │ │ - 当前章节原文（最近1-2章） │ │ - 当前场景的创作草稿 │ └─────────────────────────────────────────────────────────┘ ``` ### 文件结构 ``` projects/小说名/ ├── world_knowledge.json # 世界知识库 ├── chapter_index.json # 章节索引 ├── chapters/ # 完整章节 (Markdown) │ ├── chapter_01.md │ ├── chapter_02.md │ └── ... └── drafts/ # 当前草稿 (Markdown) └── chapter_XX_draft.md ``` --- ## 核心工作流程 ### 回合制循环 ``` 【导演指令】→ AI演绎一段 → 【决策点】→ 用户选择 → AI继续演绎 → 【决策点】... ``` ### 每回合步骤 **Step 1: 导演指令（用户）** 用户提供标准化的场景设定： ``` 【场景】场景描述（时间、地点、环境） 【人物A】姓名 + 性格特点 + 当前目标 【人物B】姓名 + 性格特点 + 当前目标 【冲突】核心矛盾或张力来源 【氛围】整体基调（悬疑、温情、黑色幽默等） ``` **Step 2: AI演绎** AI根据导演指令演绎**一个分镜**（200-400字），推进剧情到下一个**决策点**。 **Step 3: 决策点** AI在以下情况停下，标记【决策点 ⏸️】： - 信息揭示后（重要线索/秘密刚刚揭露） - 冲突升级前（情势即将转折） - 人物反应点（某个角色需要做出回应） - 路径分叉点（剧情可以往多个方向走） **Step 4: 用户选择** 用户提供选择，可以是： - 选A/B/C（预设选项） - 自由输入（"让主角..."） - 导演指令（"重来"、"改戏"等） --- ## 导演控制台 ### 基础指令 | 指令 | 作用 | |------|------| | **"重来"** | 回到上一个决策点，重新选择 | | **"改戏"** | 修改刚刚演绎的片段 | | **"加人"** | 增加新角色进入场景 | | **"换景"** | 切换到另一个并行场景 | | **"快进到..."** | 跳过当前场景，直接到某个结果 | | **"幕后"** | 查看当前场景的人物状态、隐藏信息 | | **"这场戏过了"** | 结束当前场景，输出成片 | ### 长篇连载专用指令 | 指令 | 作用 | |------|------| | **"新建小说"** | 创建新小说项目，初始化知识库和索引 | | **"继续写 [小说名]"** | 加载已有小说，恢复创作状态 | | **"保存"** | 保存当前进度到文件 | | **"导出"** | 导出完整小说为 Markdown 文件 | | **"角色档案"** | 查看/编辑角色信息 | | **"时间线"** | 查看故事时间线 | | **"查找 [关键词]"** | 检索相关内容所在的章节 | | **"上一章"** | 回顾上一章内容 | | **"大纲"** | 查看/编辑小说大纲 | | **"完成本章"** | 标记当前章节完成，更新索引 | ### 保存与加载指令（v2.0.0 新增） #### 保存指令 当用户说出以下指令时，AI **必须** 执行对应的保存操作： | 用户指令 | AI 动作 | 保存内容 | |---------|---------|---------| | **"保存"** | 保存当前草稿到 `drafts/chapter_XX_draft.md` | 当前章节的创作进度 | | **"保存并退出"** | 保存草稿并提示可以安全关闭 | 同上 + 退出提示 | | **"完成本章"** | 1. 保存完整章节到 `chapters/chapter_XX.md`<br>2. AI自动生成摘要<br>3. 更新 `chapter_index.json`<br>4. 更新 `world_knowledge.json` 中的角色状态 | 完整章节 + 索引更新 | | **"保存世界设定"** | 保存当前世界观和角色变更 | `world_knowledge.json` | **保存流程：** 1. AI 收到保存指令 2. 将当前内容写入对应文件 3. 更新 `updated_at` 时间戳 4. 向用户确认："✅ 已保存《小说名》第X章草稿" #### 加载指令 当用户说出以下指令时，AI **必须** 执行对应的加载操作： | 用户指令 | AI 动作 | 加载内容 | |---------|---------|---------| | **"继续写 [小说名]"** | 完整加载流程 | 世界知识库 + 章节索引 + 最后一章 + 当前草稿 | | **"加载 [小说名]"** | 同上 | 同上 | | **"打开 [小说名]"** | 同上 | 同上 | | **"查看角色档案"** | 仅加载角色信息 | `world_knowledge.json` 中的 characters 部分 | | **"查看时间线"** | 仅加载时间线 | `world_knowledge.json` 中的 timeline 部分 | | **"查看大纲"** | 加载小说概览 | 元数据 + 章节索引 | **加载流程（继续写）：** 1. AI 收到加载指令 2. 读取 `projects/小说名/world_knowledge.json` → 了解世界观、角色状态（约1K tokens） 3. 读取 `projects/小说名/chapter_index.json` → 了解章节概要（约500 tokens） 4. 读取最后一章 `chapters/chapter_XX.md` → 了解最新剧情 5. 加载 `drafts/chapter_XX_draft.md`（如有）→ 恢复未完成的创作 6. 向用户报告加载状态： ``` 📖 已加载《小说名》 当前进度：第X章 草稿 上一章：第X-1章 [标题] 【角色状态】 - 角色A：当前状态 - 角色B：当前状态 是否继续当前章节？[是/否/查看大纲] ``` **总 token 占用：~3K tokens**（而非全文 15K+ tokens） --- ## 演绎规则 ### 分镜长度控制 - 每段演绎控制在 **200-400字** - 刚好一个戏剧单元的量 - 不要一次写完整个场景 ### 决策点标记格式 ``` 【决策点 ⏸️】 这里发生了什么： - 关键信息1 - 关键信息2 请选择： A. 选项A描述 B. 选项B描述 C. 选项C描述 D. 【自由输入】你想怎么做？ ``` ### 演绎风格指南 - **小说化叙述**：使用第三人称，有环境描写、动作描写、对话 - **留白**：不要把所有信息都说完，给导演留决策空间 - **悬念**：在决策点处制造合理的悬念 - **人物一致性**：保持已设定的人物性格和目标（参考 world_knowledge.json） --- ## 快速启动指南 ### 开始新小说 ``` 用户：新建小说 AI：请提供小说名称和基本信息： - 小说标题： - 类型/题材： - 预计章节数： - 主角姓名和背景： 用户： - 标题：暗夜追凶 - 类型：悬疑推理 - 预计12章 - 主角：陈明，前刑警，女儿失踪 AI：✅ 已创建项目《暗夜追凶》 现在开始第一章创作... ``` ### 继续已有小说 ``` 用户：继续写 暗夜追凶 AI：📖 正在加载《暗夜追凶》... 当前进度：第5章 草稿 上一章：第4章 雨夜的发现 【角色状态】 陈明：PTSD复发，发现新线索 ... 是否继续当前章节？ ``` --- ## 示例流程 ### 第1回合：导演指令 ``` 【场景】深夜的码头，下着暴雨，只有一盏昏黄的路灯 【人物】陈Sir（退休刑警，谨慎、念旧、有旧伤） 阿鬼（线人，滑头但胆小，想拿钱跑路） 【冲突】两人都不确定对方有没有带人来 【氛围】港片noir，雨夜追凶 ``` ### 第2回合：AI演绎 > 陈Sir站在雨里，没撑伞。三年没见了，阿鬼还是那副鬼样子——缩在集装箱阴影里，像只淋湿的耗子。 > > "证据呢？" > > "先给我钱。" **【决策点 ⏸️】** 这里发生了什么： - 两人对峙，阿鬼要钱才给证据 - 气氛紧张，阿鬼的姿态暗示他有所保留 请选择： **A.** 陈Sir先给钱，但要求当场验货 **B.** 陈Sir拒绝先给钱，坚持一手交钱一手交货 **C.** 陈Sir注意到阿鬼身后有动静 **D.** 【自由输入】你想让陈Sir怎么做？ ### 第3回合：用户选择 > 选B ### 第4回合：AI演绎 > 陈Sir从怀里掏出信封，牛皮纸的，鼓鼓囊囊。但他没递过去。 > > "规矩变了？"陈Sir的声音很低，"以前是你先给情报，我后给钱。" > > 阿鬼的嘴角抽搐了一下："以前...以前是以前。"他下意识地回头看了一眼集装箱后的黑暗，"这次不一样，陈Sir。这次我要先看到钱，否则——" > > 他没说完，但右手从兜里抽出来了一点。陈Sir看见了金属的反光。 **【决策点 ⏸️】** ...（继续） --- ## 成片输出 当用户说"这场戏过了"或"完成本章"，AI将： 1. 整合所有分镜和选择，润色成完整章节 2. 保存到 `chapters/chapter_XX.md` 3. **自动生成摘要**，更新 `chapter_index.json` 4. 更新角色状态到 `world_knowledge.json` 输出格式： ``` 【章节标题】 （完整小说文本，融合所有选择） --- 字数：XXXX 关键事件：[事件1, 事件2] ``` --- ## 与其他Skill的区别 | | Worldline Choice | Novel Director | |---|---|---| | **角色** | 你是玩家，在故事里 | 你是导演，在故事外 | | **机制** | d20检定驱动 | 剧情逻辑驱动 | | **修改** | 骰子结果不可逆 | 随时可以重来、改戏 | | **目的** | 游戏体验 | 小说创作 | | **输出** | 游戏记录 | 小说文本 | | **长篇支持** | 单局游戏 | ✅ 上下文管理、跨Session续写 | --- ## 版本历史 ### v2.0.0 (2025-04-13) - ✨ 新增长篇小说上下文管理（三层架构） - ✨ 新增 World Knowledge 和 Chapter Index - ✨ 新增智能检索功能 - ✨ 新增跨 Session 续写支持 - ✨ 新增明确的保存与加载指令 - ✨ 新增自动摘要生成 ### v1.0.0 (2024-04-06) - 🎉 初始版本发布 - 基础导演板模式 - 分镜推进式创作


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)