zizi 0260bcd8e2 设计文档:SoT 同步与生成物重出
- 新版设计各域 SoT 按本轮实现同步:总体架构、模块设计、接口契约、数据模型、功能规格、文件设计与决策记录。
- 接口契约生成物重新导出(openapi 与前端客户端随契约一致)。
- 实现回顾与专项检查台账保留历史结论;本轮收尾发现另见 .agents.local 下的收尾报告与审查处置。
2026-09-18 01:15:18 +08:00

88 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- 导航元信息: {"内容描述": "B01 作品规划", "使用场景": "设计、实现或评审对应主题", "使用要求": "与阅读指南的主题权威分工一致"} -->
# 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,不把零消费者当作删库或开放新流程的依据。开放节奏旅程须先确定消费者、输入语义、兼容和验收,再独立实施。