# B01 作品规划 ## 职责与对象 作者的作品身份、探索稿与未来叙事安排。规划不直接改写正文或确认故事事实。 实例归属以[总体架构](../总体架构.md)为准;结构、状态和公开外壳分别引用数据模型与接口契约。 ## 公开接口 | 用例 | 输入责任 | 输出与后果 | |------|----------|------------| | create_work | 作品档案与创作目标 | 作品身份及初始目录版本 | | save_exploration | 草稿 ID、内容、预期哈希 | 原子保存回执;内容留私人草稿 | | propose_plan | 作用域、有效结构、来源和作者意图 | 规划候选与任务身份 | | edit_plan_candidate | 确切候选版本、哈希和字段变更 | 同一候选追加版本,重新审阅后才能确认 | | confirm_plan | 被审版本和批准范围 | 规划正式版本与影响 | | prepare_recent_plan | 当前章、已确认前置与预算 | 已有可用细纲或细化任务 | | reorder_chapters | 稳定章节身份与预期目录版本 | 新顺序与受影响引用 | | save_plan_nodes | 预期目录版本与完整节点次序 | 同一目录版本中的卷、章、场景归属;正文保持其稳定章身份 | | query_progress | 作者与作品身份 | 带目录、正文、候选版本和任务事件位置的只读进度 | 所有接口在本模块的接口.py 暴露。输入输出类型由同一公开表面导出,外部不导入私有模型或 SQL。 ## 内部职责 | 文件 | 职责 | |------|------| | 接口.py | 作品规划公开用例和可导入合同 | | 模型.py | 作品规划稳定对象、外壳及内部状态 | | 存储.py | 作品规划所属记录的 SQL 与版本读写 | | 作品档案.py | 作品、系列、定位、目标与计划 | | 探索草稿.py | 受控私人稿件身份、原子保存和内容哈希 | | 探索交接.py | 最终格式检查与正式规划候选 | | 分层规划.py | 全书、卷、章、场景和节奏安排 | | 近期细化.py | 章级细纲与可写条件 | | 目录调整.py | 稳定章节身份、重排、节点视图与影响 | | 规划版本.py | 规划候选、确认、分支及合并 | | 进度查询.py | 正文、任务和决策的真实进度查询 | | 提示词/生成作品规划.md | 书级规划任务模板 | | 提示词/细化章节计划.md | 章级细纲任务模板;兼容文件名及资源名 `规划/细化章节计划.md` | 完整路径及运行模板见[目标文件清单](../项目目录与文件职责.md)。逐文件意图、边界与目标见[文件合同](../文件设计/后端-B01-作品规划.md)。 ## 实现约束 进度查询经B01、B05和S02公开查询组装,不建立第二份进度表。已保存章数仅表示主分支存在正文版本,候选、排队任务或质量检查都不算完成正文;各项带其实际读取版本和事件位置。该进度用于查看当前工作,不作为定稿或切换的原子版本快照。 新版私人探索由作者配置的`文件.探索草稿`指定目录,按已认证作者和稳定稿件身份分区保存。文件封装原始文本、名称、版本与稿件哈希,原子保存不写PG。网页、CLI和主会话调用同一B01接口;客户端只传稿件身份,不传物理路径。最终格式检查读取安装包中的交付结构,检查结果绑定确切稿件哈希;方向确认和正式规划候选是后续独立动作。 明确选定方向时,B01将该稿的确切快照写入PG的选定版本,并经S01保存同事务回执。作品的选定当前指针单独版本化;改变方向追加版本,私人稿后续修改不改既有选定快照。作者归属与时间由服务端决定,旧自报确认JSON不能代替该动作。所选快照是允许的规划来源,仍不等于正式规划内容或本书事实。 规划候选编辑在同一候选身份下追加不可变版本,保存时核对被编辑版本与正式基线。字段变更作用于服务端读取的候选内容,仍受当前S04用途策略约束;作者不能借编辑改变作品、目标节点或原始正式基线。旧候选版本和对应决定保留可查,编辑后的内容须重新打开审阅。正式基线或必要来源已改变时,作者应基于当前规划另拟候选,不隐式重定基线。 目录节点由B01代码保护node_id、kind与parent_id,内容计划继续使用S04动态结构。卷位于作品下,章可直属作品或属于卷,场景属于章;同级顺序由节点列表决定。目录修订保留已有节点身份与种类,新增、改名或移动形成新目录版本;章节列表是该版本的顺序投影,不形成第二份目录权威。旧的单层章节操作仍经同一存储更新;已有分卷时跨卷移动使用节点目录命令。正文始终引用原chapter_id,目录变化产生原有directory_changed影响。 规划目标可以指定稳定node_id;章节点与原chapter_id入口指向同一规划身份。节点ID及章节归属放在稳定外壳,不混入动态内容。书级/卷级大纲、章细纲、场景卡使用各自声明的适用粒度;scene的旧block表示叙事场景,不等同正文段落。目录节点保存本身不确认这些节点的规划内容。 - 阶段 0 按素材、联系、中心和结构渐进探索;代码只管理受控保存、最终格式与正式交接。 - 不同题材字段经 S04 结构,书级规划和章级细纲各有适用合同。已有细纲必须核对当前来源才可复用。 - 规划引用按目标类型归属解析;下层规划的导航关联不构成反向依据。可用细纲还需通过当前写作用途投影的必需内容校验,历史查看不能代替可用性判断。 - 章节与场景有稳定身份;节点视图操作形成明确变更,重排计算时点与下游影响。 - 实际进度读取 B05 与 S02 公开结果,未查询到状态不能被记为已完成。 受控模型规划由“冻结规划→模型规划→保存规划候选”三个 S02 步骤执行。规划角色固定为 planner、零工具;模型输出合同取 S04 规划用途可读字段与作者可编辑字段的交集,隐藏字段不进入模型材料。新作品可从已授权的本书目录建立首份规划,不依赖一份尚不存在的细纲。现有规划、明确选定探索及字段用途均固定版本与哈希,恢复和交付时重验。 模型交付只经 B01 写入 Shadow 候选,并保留任务、快照、调用、提示词哈希和技术证据;候选查询区分模型来源与人工来源,人工编辑仍追加候选版本。模型不调用作者确认入口;正式采纳复用 S01 并复检冻结方法依据。任务创建与已验证配置绑定同事务,角色配置缺失或输入预算不合法时不留下孤儿任务。 ## 协作与失败 通过 B09 取得允许来源,向 S02 发起规划角色任务,确认经 S01;必要世界设定转交 B02 独立确认。 未确认前置、源变化、目录并发变化或结构不兼容时拒绝继续写作并返回具体缺项。 ## 验收行为 - 新作品与短篇不需要增加作品号分支。 - 探索稿不进入正式上下文。 - 重排不改章节身份或现有正文。 - 细纲源变化后不能直接复用。 验收入口和替换条件见[迁移与验收](../迁移与验收.md);这些条目是目标行为,不是已通过测试的声明。 ## 节奏能力边界 当前节奏标注、题材档位和节奏分布是离线纯函数,已有单元用例;尚未接入CLI/HTTP或编排用户旅程。保留公开函数及模型,空场景明确报RHYTHM_INVALID,不把零消费者当作删库或开放新流程的依据。开放节奏旅程须先确定消费者、输入语义、兼容和验收,再独立实施。