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

156 lines
58 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.

<!-- 导航元信息: {"内容描述": "功能覆盖矩阵", "使用场景": "设计、实现或评审对应主题", "使用要求": "与阅读指南的主题权威分工一致"} -->
# 功能覆盖矩阵
功能定义只在[目标系统完整功能清单](业务需求/目标系统完整功能清单.md)维护。下表记录 129 项功能的牵头模块、目标入口、规格和测试去向,不代表相应代码已经实现。本表保留功能—规格—测试映射,测试身份以 [tests/用例清单.json](../../../tests/用例清单.json) 为准;映射或文件存在不能替代功能验证。
| 功能 | 名称 | 牵头模块 | 目标代码入口 | 功能规格 | 目标测试 |
|------|------|----------|--------------|----------|----------|
| F01.01 | 作品定位 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_人工创作HTTP.py::test_HTTP创建作品到保存中文正文并拒绝伪身份__aa1301;tests/集成/test_作品与人工正文.py::test_创建动态作品档案经S01且同命令不重复__aa1101 |
| F01.02 | 作品档案 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_作品与人工正文.py::test_创建动态作品档案经S01且同命令不重复__aa1101;tests/集成/test_作品与人工正文.py::test_档案读取当前绑定而不沿用上次写值结构__aa1105 |
| F01.03 | 创作计划 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_规划候选与确认.py::test_人工规划候选经明确审阅后形成正式版本__ad1301;tests/集成/test_规划候选与确认.py::test_规划HTTP候选与CLI决定共享版本回执__ad1302 |
| F01.04 | 真实进度 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_正文候选与作者决定.py::test_创作进度只从真实版本候选和任务读取__aa1206 |
| F02.01 | 灵感收集 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/单元/test_探索交接与规划.py::test_私人稿保存原话且并发冲突不覆盖__ad1001;web/tests/旅程/探索草稿.spec.ts |
| F02.02 | 资料导入 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_资料导入与版本.py::test_导入去重与版本链__17a01a;tests/集成/test_资料导入与版本.py::test_证据读取与哈希校验__17a02b;tests/迁移/test_隔离目标台账.py::test_参考人物真实进入B03分析且不造任务或世界事实__214000 |
| F02.03 | 素材整理 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_资料导入与版本.py::test_清理候选对照且原文不变__17a04d;tests/单元/test_分章切窗与实体归并.py::test_切窗覆盖与无重叠__18a01a;tests/单元/test_分章切窗与实体归并.py::test_同型别名带证据合并__18a05e;tests/单元/test_分章切窗与实体归并.py::test_同名异型歧义不误并__18a04d |
| F02.04 | 资料研究 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_参考分析权威.py::test_相同输入的不同运行分别持久化完整分析__214010;tests/迁移/test_隔离目标台账.py::test_参考人物真实进入B03分析且不造任务或世界事实__214000 |
| F02.05 | 作品拆解 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_抽取版本与补偿.py::test_批量原子登记与版本身份__18b03c;tests/集成/test_抽取版本与补偿.py::test_来源前进旧版本结论保留且新拆书指向新版本__18b05e |
| F02.06 | 榜单数据获取 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_榜单与清理.py::test_采集成功失败与观察差异__17b01e;tests/集成/test_榜单与清理.py::test_未登记榜单拒绝采集__17b02f |
| F02.07 | 榜单观察快照 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_榜单与清理.py::test_采集成功失败与观察差异__17b01e |
| F02.08 | 样本比较与选题 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/单元/test_分章切窗与实体归并.py::test_样本比较是观察陈述__18a06f |
| F02.09 | 选书交接 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/迁移/test_隔离目标台账.py::test_参考人物真实进入B03分析且不造任务或世界事实__214000;tests/集成/test_参考分析权威.py::test_相同输入的不同运行分别持久化完整分析__214010 |
| F02.10 | 拆书任务控制 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_抽取版本与补偿.py::test_失败窗口断点续跑只补缺失窗__18b04d;tests/集成/test_同作品抽取互斥.py::test_失败任务释放范围可重建__18b02b |
| F02.11 | 原文与分析对照 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | web/tests/旅程/资料对照.spec.ts;tests/集成/test_资料导入与版本.py::test_证据读取与哈希校验__17a02b |
| F02.12 | 分析版本管理 | [B03 资料研究](模块设计/B03-资料研究.md) | src/muse/资料研究/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_抽取版本与补偿.py::test_来源前进旧版本结论保留且新拆书指向新版本__18b05e;tests/集成/test_资料导入与版本.py::test_导入去重与版本链__17a01a |
| F03.01 | 从局部开始 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_探索交接与规划.py::test_局部展开的最终稿不设编号和篇幅门__61c0a6;tests/单元/test_探索交接与规划.py::test_不同探索稿可展开不同子集__8eed6e |
| F03.02 | 逐步发展 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_探索交接与规划.py::test_探索不先查最终格式且检查不产生正式内容__ad1002 |
| F03.03 | 局部比较 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_探索交接与规划.py::test_不同探索稿可展开不同子集__8eed6e |
| F03.04 | 决策记忆 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_探索交接与规划.py::test_选定输入不能自报确认时间或缺失稿件__ad1004;tests/集成/test_探索选定与规划.py::test_不同方向同时交接只推进一个选定版本__ad1203 |
| F03.05 | 正式交接 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_探索选定与规划.py::test_选定稿冻结来源且重复请求回原回执__ad1201;tests/集成/test_探索选定与规划.py::test_作者实际选定经HTTP与CLI回查来源__bfcbc2;tests/集成/test_探索选定与规划.py::test_选定失败完整回滚且私人稿保留__ad1202 |
| F04.01 | 世界资料 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P08-元数据扩展与结构升级](功能规格/P08-元数据扩展与结构升级.md) | tests/集成/test_世界实体表单.py::test_新类型经真实浏览器保存确认刷新再编辑__29e104;tests/集成/test_世界实体表单.py::test_实体保存HTTP接收完整具名载荷且只建立候选__29e103 |
| F04.02 | 规则与代价 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P08-元数据扩展与结构升级](功能规格/P08-元数据扩展与结构升级.md) | `tests/单元/test_规则节奏与伏笔.py::test_规则卡校验重复例外条件与读回__cb8b0c`、`tests/单元/test_规则节奏与伏笔.py::test_规则卡空批与坏类别精确失败__4f0cda`、`tests/单元/test_规则节奏与伏笔.py::test_规则卡内容经实体提案形状保存__365f8a` |
| F04.03 | 实体关联 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P08-元数据扩展与结构升级](功能规格/P08-元数据扩展与结构升级.md) | tests/集成/test_世界维护与影响.py::test_关系端点解析为本书对象__19b02f;tests/集成/test_故事事实确认与时点.py::test_关系端点和正文引文必须真实__ac1008;tests/集成/test_故事事实确认与时点.py::test_关系确认同时保护端点的正文依据__ac1009 |
| F04.04 | 设定修订 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P08-元数据扩展与结构升级](功能规格/P08-元数据扩展与结构升级.md) | tests/集成/test_世界维护与影响.py::test_修订影响只标记不撤回独立确认__19a03c;tests/集成/test_世界维护与影响.py::test_实体轨迹版本追查与旧版本保留__19a02b;tests/集成/test_世界维护与影响.py::test_章序变化影响列出叙事位置事实__19a04d |
| F04.05 | 设定使用追踪 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P08-元数据扩展与结构升级](功能规格/P08-元数据扩展与结构升级.md) | tests/集成/test_世界维护与影响.py::test_实体轨迹版本追查与旧版本保留__19a02b;tests/集成/test_世界维护与影响.py::test_章序变化影响列出叙事位置事实__19a04d |
| F05.01 | 人物建构 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_世界实体表单.py::test_动态类型实际投影到提案审阅确认及编辑__29e101;tests/集成/test_世界实体表单.py::test_跨作品实体表单及旧投影写入拒绝__29e102 |
| F05.02 | 关系发展 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_世界维护与影响.py::test_关系端点解析为本书对象__19b02f;tests/集成/test_故事事实确认与时点.py::test_关系端点和正文引文必须真实__ac1008 |
| F05.03 | 人物弧线 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_世界维护与影响.py::test_人物弧线计划与已发生分开__19b01e |
| F05.04 | 人物声音 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_审校报告与案例持久化.py::test_声音缺依据或重复人物归属不能创建提案__22c002;tests/集成/test_审校报告与案例持久化.py::test_声音提案口癖必须来自真实样张__ab52c9;tests/集成/test_审校报告与案例持久化.py::test_声音保护表达必须来自真实样张__30b543 |
| F05.05 | 视角设计 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文投影读取.py::test_时点事实按冻结系统版本与视角收窄返回__b09203 |
| F06.01 | 全书结构 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_规划候选与确认.py::test_同一目录承接卷章场景且移动保持身份__ad1310;tests/集成/test_规划候选与确认.py::test_卷章场景采用动态结构且章入口共用身份__ad1311 |
| F06.02 | 多层规划 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_探索交接与规划.py::test_细纲技能引用结构为字段权威__aaae60;tests/单元/test_探索交接与规划.py::test_细纲必填字段齐全且缺一拒绝__759215;tests/单元/test_探索交接与规划.py::test_细纲推荐字段缺失不拦类型错误拒__0766da |
| F06.03 | 章节任务 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_规划候选与确认.py::test_细纲两种实体形式都核对真实本书引用__ad1305;tests/集成/test_两阶段写手.py::test_任意合法章位生成模型候选并落独立检查报告__b41e29 |
| F06.04 | 场景设计 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_探索交接与规划.py::test_空节和裸占位拒绝而明确未知允许__64d9e4;tests/单元/test_探索交接与规划.py::test_最终稿缺标题或标题过深拒绝__1d35b4 |
| F06.05 | 节奏安排 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | `tests/单元/test_规则节奏与伏笔.py::test_节奏标注校验非法类别与缺失标注__cd21a9`、`tests/单元/test_规则节奏与伏笔.py::test_节奏分布对照题材档位列偏差__fc17cf`、`tests/单元/test_规则节奏与伏笔.py::test_题材档位自定义调整与非法区间__a1b1ec` |
| F06.06 | 规划调整 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_规划候选与确认.py::test_规划候选编辑追加版本且旧审阅失效__ad1306;tests/集成/test_规划候选与确认.py::test_陈旧规划审阅不能覆盖新版本但可重新拒绝__ad1303 |
| F06.07 | 滚动细化 | [B01 作品规划](模块设计/B01-作品规划.md) | src/muse/作品规划/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_规划候选与确认.py::test_规划关联按类型归属解析且不构成依据环__ad1307;tests/集成/test_规划候选与确认.py::test_细纲必需字段撤回用途后不能用于写作__ad1308 |
| F07.01 | 截至某章的事实 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_故事事实确认与时点.py::test_叙事时点与系统确认截止分开__ac1002;tests/集成/test_故事事实确认与时点.py::test_后文披露早期事件和角色猜测分别查询__ac1003 |
| F07.02 | 人物动态状态 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_故事事实确认与时点.py::test_角色获知时点独立于事件生效__ac1015;tests/集成/test_故事事实确认与时点.py::test_历史事实按保存结构解释并应用当前策略__ac1014 |
| F07.03 | 时间与因果 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_故事事实确认与时点.py::test_叙事时点与系统确认截止分开__ac1002;tests/单元/test_事实时点与有效性.py::test_each_delta_type_has_working_contract__d0e17d |
| F07.04 | 伏笔与承诺 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | `tests/单元/test_规则节奏与伏笔.py::test_伏笔登记校验种类ID章节与窗口__c03dfd`、`tests/单元/test_规则节奏与伏笔.py::test_伏笔状态机拒绝非法转移与过早推进__325b88`、`tests/单元/test_规则节奏与伏笔.py::test_伏笔总览分组并标逾期未兑现__0ff84c` |
| F07.05 | 章后状态增量 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_章后失败与重建.py::test_两作品各连续两章派生确认事实并按时点消费__16c01a;tests/集成/test_章后失败与重建.py::test_抽取失败后正文可用且恢复重试完成__16c02b;tests/集成/test_章后失败与重建.py::test_编辑后旧版本派生被拒绝且按新版本重建__16c03c |
| F07.06 | 连续性纠错 | [B02 故事世界](模块设计/B02-故事世界.md) | src/muse/故事世界/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_完整文学审校.py::test_正文漂移不改历史报告但标当前失效且隔离作者__227004;tests/集成/test_世界维护与影响.py::test_章序变化影响列出叙事位置事实__19a04d |
| F08.01 | 本次写作准备 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文投影读取.py::test_目标章不在截止之后紧邻或无细纲拒绝授权__b09206;tests/单元/test_上下文范围与预算.py::test_必读优先且可选按原顺序整项加入__1c4a9e |
| F08.02 | 历史证据检索 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文历史正文.py::test_历史正文经真实任务读取留痕并进入材料预算__b09101;tests/集成/test_上下文历史正文.py::test_正文工具按原文码点返回片段与用途__b09102 |
| F08.03 | 写法与样例选取 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_声音与规则合同.py::test_额外样例只从已确认案例投影__6b7751;tests/单元/test_方法检索空结果.py::test_无命中检索保留明确原因和索引身份__e0a672 |
| F08.04 | 优先级与预算 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/单元/test_上下文范围与预算.py::test_必读整体超预算拒绝__c9e51f;tests/单元/test_上下文范围与预算.py::test_可选空白与超预算分别给出省略原因__4f8ab2;tests/单元/test_上下文范围与预算.py::test_中文与emoji按utf8字节计数含分隔符__5d1c47 |
| F08.05 | 时间与状态边界 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文投影读取.py::test_时点事实按冻结系统版本与视角收窄返回__b09203;tests/集成/test_上下文投影读取.py::test_细纲或事实漂移后拒绝沿用原任务__b09204 |
| F08.06 | 上下文留档 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文快照消费.py::test_完整链路冻结回读一致且任务可追溯__b09311;tests/集成/test_上下文快照消费.py::test_装配输入变化产生新快照且不改写旧快照__b09313;tests/单元/test_上下文快照哈希.py::test_同载荷同哈希且键序无关__b09301 |
| F08.07 | 混合检索 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文投影读取.py::test_细纲与事实经真实任务读取留痕并进入预算__b09201;tests/单元/test_方法版本与绑定.py::test_rrf融合两路排名__20a03c |
| F09.01 | 多粒度写作 | [B05 正文写作](模块设计/B05-正文写作.md) | src/muse/正文写作/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_两阶段写手.py::test_任意合法章位生成模型候选并落独立检查报告__b41e29;tests/集成/test_通用选段改写.py::test_四类改写只重放确切选段并保留空白样式与保护区__235001 |
| F09.02 | 创作空间 | [B05 正文写作](模块设计/B05-正文写作.md) | src/muse/正文写作/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_受控修订候选.py::test_伪发现和越范围修订不产生候选__231002;tests/集成/test_通用选段改写.py::test_失效或受保护选段发起前拒绝且不留任务__235002 |
| F09.03 | 写作协作 | [B05 正文写作](模块设计/B05-正文写作.md) | src/muse/正文写作/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_正文候选与作者决定.py::test_候选部分选择追加版本重新审阅且采纳同一回执__aa1201;tests/集成/test_正文候选与作者决定.py::test_网页创建审阅暂缓再由CLI按同版本采纳__aa1205;tests/单元/test_分支三方合并.py::test_部分选择只合并该项且目标独立修改保持__233001 |
| F09.04 | 流式与中断 | [B05 正文写作](模块设计/B05-正文写作.md) | src/muse/正文写作/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_两阶段写手.py::test_无终态断流可定位且重开后任务与事件仍可找回__e6f317;tests/集成/test_两阶段写手.py::test_必需检查失败不能采纳且保留失败候选证据__d52a8e |
| F09.05 | 分阶段生成 | [B05 正文写作](模块设计/B05-正文写作.md) | src/muse/正文写作/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_两阶段写手.py::test_任意合法章位生成模型候选并落独立检查报告__b41e29;tests/集成/test_两阶段写手.py::test_跨作品与无细纲章位拒绝发起__c73d0f;tests/集成/test_持久返修会话.py::test_首轮关联真实任务候选且没有作者重试不创建下一轮__236001 |
| F09.06 | 范围保护 | [B05 正文写作](模块设计/B05-正文写作.md) | src/muse/正文写作/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_通用选段改写.py::test_失效或受保护选段发起前拒绝且不留任务__235002;tests/集成/test_通用选段改写.py::test_四类改写只重放确切选段并保留空白样式与保护区__235001;tests/单元/test_修订保真与停止.py::test_未经批准的范围外变化失败__230007 |
| F09.07 | 稿件保存与编辑保真 | [B05 正文写作](模块设计/B05-正文写作.md) | src/muse/正文写作/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_作品与人工正文.py::test_人工正文保存重开与回退保留中文和历史__aa1103;tests/集成/test_作品与人工正文.py::test_大段中文引号换行与反斜杠经CLI和PG往返__125b0c;tests/单元/test_修订保真与停止.py::test_重复原句依段落身份定位且范围外格式保持__230001 |
| F10.01 | 基础有效性 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/单元/test_审校覆盖.py::test_核心覆盖全部码点且上下文不重复计数__22a001;tests/单元/test_审校覆盖.py::test_旧依据与坏片段不能构造完整覆盖__22a002 |
| F10.02 | 连续性审查 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/集成/test_完整文学审校.py::test_全文零命中仍有真实版本化报告和逐片证据__227001;tests/集成/test_完整文学审校.py::test_正文漂移不改历史报告但标当前失效且隔离作者__227004 |
| F10.03 | 创作质量审读 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/集成/test_完整文学审校.py::test_审校真实方法消费绑定逐片调用且预算省略不消费__229005;tests/集成/test_完整文学审校.py::test_候选全文审校不先采纳且修改后旧报告过期__229006 |
| F10.04 | 具名问题单 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/集成/test_完整文学审校.py::test_后片坏引文失败仍展示前片和未审尾部__227002;tests/集成/test_审校报告与案例持久化.py::test_全文报告由实际逐片回执持久化并经CLI原样读回__22c005 |
| F10.05 | 返修追踪 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/集成/test_持久返修会话.py::test_首轮关联真实任务候选且没有作者重试不创建下一轮__236001;tests/集成/test_持久返修会话.py::test_达到上限后停止且不能以新命令重试__236006;tests/集成/test_返修会话接入.py::test_作者HTTP创建返修与CLI读回选择重放同一会话__236011 |
| F10.06 | 检查边界 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/单元/test_审校覆盖.py::test_分片参数显式有界且不吞原文__22a003;tests/端到端/test_诊断入口与只读边界.py::test_真实服务观察报告读回及正文不变__241005 |
| F11.01 | 建立声音基线 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/单元/test_声音与规则合同.py::test_声音画像保持确定性__3bba02;tests/单元/test_声音与规则合同.py::test_声音草案公开采样规模和未知项__5efcd5;tests/单元/test_声音与规则合同.py::test_完整声音候选经合同通过可提供确认__f1f4ce |
| F11.02 | 写前预防 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/端到端/test_改进验证与版本启用.py::test_预防材料装配完成只留观察不自动启用__f30e89;tests/集成/test_写手声音消费.py::test_实际写作请求含真实声音及版本且不能错放材料__22d001 |
| F11.03 | 精确诊断 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/单元/test_机器味诊断合同.py::test_候选预览全文对白与有意表达不误判__228003;tests/单元/test_机器味诊断合同.py::test_指纹覆盖所有内容而非只看版本号__228005;tests/集成/test_规则库与诊断.py::test_正式零命中与候选预览真实报告及过期__229002 |
| F11.04 | 功能判断 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/单元/test_声音与规则合同.py::test_情态与新增时间数字不能通过保真门__dbe298;tests/单元/test_声音与规则合同.py::test_无确认声音不能变成文学通过__ccc984 |
| F11.05 | 最小编辑 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/集成/test_通用选段改写.py::test_四类改写只重放确切选段并保留空白样式与保护区__235001;tests/单元/test_修订保真与停止.py::test_非删除替换不能悄悄丢数值时间情态或新增引文__230009 |
| F11.06 | 改后保真 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/单元/test_修订保真与停止.py::test_未经批准的范围外变化失败__230007;tests/单元/test_修订保真与停止.py::test_数字时间情态引文变化不能用润色掩盖__230004;tests/单元/test_修订保真与停止.py::test_全局数字守恒也不能抵消逐选段篡改__230005 |
| F11.07 | 停止与回退 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/单元/test_修订保真与停止.py::test_停止条件不由质量分数抵消__230008;tests/集成/test_持久返修会话.py::test_硬门失败关闭并保留真实拒绝结果__236009 |
| F11.08 | 案例回流 | [B06 审校修订](模块设计/B06-审校修订.md) | src/muse/审校修订/接口.py | [P04-声音诊断与受控修订](功能规格/P04-声音诊断与受控修订.md) | tests/集成/test_案例采集与复核.py::test_四类跨书确认案例才能提出可追溯候选__240009;tests/集成/test_案例采集与复核.py::test_确认需真实审阅且撤回不改历史__240005;tests/端到端/test_改进验证与版本启用.py::test_机器味案例批次落库保留64位运行身份__3b729b |
| F12.01 | 全书回看 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_全书回看与跨章修订.py::test_全书跨章候选原子保存且单章采纳不批准其他章__27c001 |
| F12.02 | 跨章修订 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_全书回看与跨章修订.py::test_全书跨章候选原子保存且单章采纳不批准其他章__27c001;tests/集成/test_全书回看与跨章修订.py::test_末章依据不符不留下前章候选且例外不能跨版本沿用__27c002 |
| F12.03 | 文字校对 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/单元/test_修订保真与停止.py::test_非删除替换不能悄悄丢数值时间情态或新增引文__230009;tests/单元/test_交付格式.py::test_同一清单哈希不能掩盖成品顺序缺章段落或材料变化__27d004;tests/单元/test_交付格式.py::test_EPUB真实mimetype包关系目录与spine一致__27d010 |
| F12.04 | 定稿版本 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_定稿与导出.py::test_完整目录冻结后编辑不改变原定稿且重放唯一__27a001;tests/集成/test_定稿与导出.py::test_明确历史选择仍保护当前指针且不同作者拒绝__27a002 |
| F12.05 | 文稿输出 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/单元/test_交付格式.py::test_四格式可见正文重读保留段落与Unicode__27d001;tests/单元/test_交付格式.py::test_DOCX真实页面与文本节点满足阅读结构__27d009;tests/单元/test_交付格式.py::test_EPUB真实mimetype包关系目录与spine一致__27d010 |
| F12.06 | 交付材料 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_定稿与导出.py::test_真实任务四格式导出不修改正文且恢复不重发已存格式__27a003;tests/集成/test_交付作者入口.py::test_CLI仓外定稿与HTTP导出推进下载真实文件__27e001 |
| F13.01 | 连载计划 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_连载与版本反馈.py::test_计划日期不充当发布且前置章需要实际证据__27b001 |
| F13.02 | 发布版本对应 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_连载与版本反馈.py::test_修订发布产生新记录而旧反馈仍指向原稿__27b003 |
| F13.03 | 反馈归集 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_连载与版本反馈.py::test_HTTP从全书回看定稿到发布反馈真实读回__27b004;tests/集成/test_作者偏好与反馈.py::test_反馈保留确切原版本且不能冒充候选采纳__26a001 |
| F13.04 | 反馈辨析 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_连载与版本反馈.py::test_反馈未关联不猜近期版本且调整只形成请求__27b002 |
| F13.05 | 调整与复盘 | [B08 交付连载](模块设计/B08-交付连载.md) | src/muse/交付连载/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_连载与版本反馈.py::test_反馈未关联不猜近期版本且调整只形成请求__27b002;tests/集成/test_作者长期观察.py::test_不同改进版本的长期观察不混算也不启用目标__26d002 |
| F14.01 | 候选与正式内容分离 | [S01 正式变更](模块设计/S01-正式变更.md) | src/muse/正式变更/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_幂等与审阅版本.py::test_同命令重放同回执且章后任务不重复__16b011;tests/集成/test_正式变更事务.py::test_审阅不是批准且提交回执幂等__a91001 |
| F14.02 | 多种决策动作 | [S01 正式变更](模块设计/S01-正式变更.md) | src/muse/正式变更/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_正式变更事务.py::test_检查未过仍可拒绝或暂缓且不改正文__a91005;tests/集成/test_正文候选与作者决定.py::test_正文改变阻止采纳但作者仍可拒绝陈旧候选__aa1202 |
| F14.03 | 分别确认 | [S01 正式变更](模块设计/S01-正式变更.md) | src/muse/正式变更/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/端到端/test_改进验证与版本启用.py::test_接受正文候选只留决定反馈不自动登记胜例__9fc9e5;tests/集成/test_作者偏好与反馈.py::test_审阅后偏好变化拒绝旧批准和旧修改__26a004 |
| F14.04 | 版本与差异 | [S01 正式变更](模块设计/S01-正式变更.md) | src/muse/正式变更/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_候选状态与并发.py::test_正文编辑后旧候选采纳拒绝但明确弃用允许__16d024;tests/集成/test_候选状态与并发.py::test_并发采纳唯一成功且正文版本唯一__16d035 |
| F14.05 | 陈旧结果隔离 | [S01 正式变更](模块设计/S01-正式变更.md) | src/muse/正式变更/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_候选状态与并发.py::test_候选哈希不匹配采纳拒绝__16d013;tests/集成/test_正式变更事务.py::test_来源改变拒绝旧审阅且零业务写入__a91004 |
| F14.06 | 修改影响追踪 | [S01 正式变更](模块设计/S01-正式变更.md) | src/muse/正式变更/接口.py | [P02-选段修订与回退](功能规格/P02-选段修订与回退.md) | tests/集成/test_正式变更事务.py::test_预览返回具体影响而不记录批准或写入__a91008;tests/集成/test_世界维护与影响.py::test_修订影响只标记不撤回独立确认__19a03c |
| F15.01 | 输入记录 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文快照消费.py::test_完整链路冻结回读一致且任务可追溯__b09311;tests/集成/test_受控模型调用.py::test_同尝试两个相同回复各自保留调用证据__a62005 |
| F15.02 | 执行记录 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_受控模型调用.py::test_受控模型流同时保存终态证据费用且拒绝重发__a62001;tests/集成/test_受控模型调用.py::test_有限角色会话贯通真实工具与逐回合账本__a62006 |
| F15.03 | 产物记录 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_两阶段写手.py::test_任意合法章位生成模型候选并落独立检查报告__b41e29;tests/集成/test_受控模型调用.py::test_临时模型原文遵守租约且普通证据不保留字节__a82110 |
| F15.04 | 内容追源 | [B09 上下文](模块设计/B09-上下文.md) | src/muse/上下文/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_运行观察与来源.py::test_运行观察保留身份原话背景并拒绝非法输入__15c187;tests/集成/test_运行观察与来源.py::test_实际冻结步骤留具名观察不冒充模型消费__ee1c05;tests/集成/test_运行观察与来源.py::test_拆书具名观察读取B03真实分析而非自造run标签__ee5f4f |
| F15.05 | 审计视图 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_运行观察接入.py::test_真实CLI及HTTP按原任务用途保存观察且读取不重发__26e101;tests/集成/test_运行观察接入.py::test_任务页真实执行观察保存刷新且运行本身不变__26e102;tests/集成/test_系统管理与版本保护.py::test_交付跨作品引用数据库拒绝且任务盘点按用途隔离__28b004 |
| F15.06 | 可重查与回放 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P01-作品创建与连续写作](功能规格/P01-作品创建与连续写作.md) | tests/集成/test_上下文回放与复检.py::test_回放与首读逐项一致且不再留痕__b7e0c1;tests/集成/test_上下文回放与复检.py::test_核对依赖输出锁定依据与变化项__b7e0c5;tests/集成/test_任务租约与恢复.py::test_未知调用先对账并复用可靠输出__a51006 |
| F16.01 | 任务状态 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_任务租约与恢复.py::test_任务列表按作者作品及用途隔离__a5100c;tests/集成/test_任务租约与恢复.py::test_任务步骤按冻结流程顺序显示__a5100d;tests/集成/test_任务租约与恢复.py::test_失败如实保留且停止领取不丢状态__a51008 |
| F16.02 | 暂停与恢复 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_任务租约与恢复.py::test_暂停恢复重验且检查点持久保留__a51005;tests/集成/test_任务租约与恢复.py::test_执行器续租并在停止后不领取新步骤__a5100e |
| F16.03 | 重试与重复保护 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_任务租约与恢复.py::test_未知调用先对账并复用可靠输出__a51006;tests/集成/test_任务租约与恢复.py::test_控制命令重放不重复事件且异参数拒绝__a5100b;tests/集成/test_任务租约与迟到结果.py::test_写路径运行事件可修订重跑且幂等__4f1507 |
| F16.04 | 正式内容保护 | [S01 正式变更](模块设计/S01-正式变更.md) | src/muse/正式变更/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_正式提交原子性.py::test_章后登记失败回滚整个正文提交__16a01e;tests/集成/test_正式提交原子性.py::test_采纳候选与派生登记原子可见__16a02f |
| F16.05 | 派生数据重建 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_章后失败与重建.py::test_编辑后旧版本派生被拒绝且按新版本重建__16c03c;tests/集成/test_章后失败与重建.py::test_重建幂等不重复事实提案__16c04d |
| F16.06 | 预算与停止条件 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P05-章后处理与事实复核](功能规格/P05-章后处理与事实复核.md) | tests/集成/test_预算预留与结算.py::test_并发预留共享窗口且不超额__a61001;tests/集成/test_预算预留与结算.py::test_未知成本跨窗口仍阻止后续调用直至对账__a61003;tests/集成/test_预算预留与结算.py::test_超单次成本先保存事实并关闭任务预算__a61006 |
| F17.01 | 分类沉淀 | [B04 知识方法](模块设计/B04-知识方法.md) | src/muse/知识方法/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_运行观察与来源.py::test_成功运行只保存观察且不能在数据库升格__8baea0;tests/单元/test_方法版本与绑定.py::test_状态迁移表封闭__20a05e |
| F17.02 | 证据化知识卡 | [B04 知识方法](模块设计/B04-知识方法.md) | src/muse/知识方法/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/单元/test_方法版本与绑定.py::test_渲染材料含上限与反例__20a04d;tests/单元/test_方法检索空结果.py::test_无命中检索保留明确原因和索引身份__e0a672 |
| F17.03 | 双向采集 | [B04 知识方法](模块设计/B04-知识方法.md) | src/muse/知识方法/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_运行观察与来源.py::test_成功运行只保存观察且不能在数据库升格__8baea0;tests/集成/test_参考分析权威.py::test_相同输入的不同运行分别持久化完整分析__214010 |
| F17.04 | 确认与整理 | [B04 知识方法](模块设计/B04-知识方法.md) | src/muse/知识方法/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_案例采集与复核.py::test_确认需真实审阅且撤回不改历史__240005;tests/集成/test_受控规划方法消费.py::test_首次规划使用本书目录且不借用其他作品__20c03c |
| F17.05 | 实际消费 | [B04 知识方法](模块设计/B04-知识方法.md) | src/muse/知识方法/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_受控规划方法消费.py::test_规划真实方法消费且只产出候选__20c01a;tests/集成/test_受控规划方法消费.py::test_初次复检后停用仍在发送事务被拦__20c05e;tests/集成/test_受控规划方法消费.py::test_交付后停用仍记历史消费但不推进候选与恢复__20c07a |
| F17.06 | 作用域与淘汰 | [B04 知识方法](模块设计/B04-知识方法.md) | src/muse/知识方法/接口.py | [P03-资料研究与方法复用](功能规格/P03-资料研究与方法复用.md) | tests/集成/test_受控规划方法消费.py::test_同快照不同合法调用分别留痕且缺派发依据拒绝登记__20c08b;tests/集成/test_受控规划方法消费.py::test_错误角色配置不留孤儿规划任务__20c02b |
| F18.01 | 反馈成对保留 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_作者偏好与反馈.py::test_反馈保留确切原版本且不能冒充候选采纳__26a001 |
| F18.02 | 偏好作用域 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_作者偏好与反馈.py::test_显式范围冲突须点名旧版本而非自动覆盖__26a003;tests/集成/test_作者偏好与反馈.py::test_单次要求不被登记为作者长期偏好__26a006 |
| F18.03 | 改进提案 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_规则改进与回执.py::test_固定规则验证到B06启停消费及原回执恢复__26d101;tests/集成/test_规则改进与回执.py::test_异版他作者与空反馈不产生规则改进行动__26d102;tests/集成/test_具体改进与回执.py::test_无真实反馈或异目标不能登记改进实验__26c002 |
| F18.04 | 验证后启用 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/端到端/test_改进验证与版本启用.py::test_启用改进必须精确目标与作者审阅__0f3902;tests/端到端/test_改进验证与版本启用.py::test_停用后旧凭据不能重新启用__c4f7f6;tests/集成/test_具体改进与回执.py::test_具体改进实际评测与owner回执中断恢复__26c001 |
| F18.05 | 版本与退役 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/端到端/test_改进验证与版本启用.py::test_规则激活需评审凭据且候选保持__922777;tests/集成/test_规则启用接入.py::test_规则验证真实CLI到默认HTTP审阅启停及读回__25d104 |
| F18.06 | 长期效果观察 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_作者长期观察.py::test_观察未知指标不填零且自报不认证因果__26d001;tests/集成/test_作者长期观察.py::test_不同改进版本的长期观察不混算也不启用目标__26d002 |
| F18.07 | 偏好捕获与确认 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_作者偏好与反馈.py::test_推断偏好待作者审阅确认且撤回保留历史__26a002;tests/集成/test_偏好实际消费.py::test_HTTP反馈到偏好审阅与撤回真实读回__26b003 |
| F18.08 | 偏好冲突与撤回 | [B07 作者经验](模块设计/B07-作者经验.md) | src/muse/作者经验/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_作者偏好与反馈.py::test_审阅后偏好变化拒绝旧批准和旧修改__26a004;tests/集成/test_作者偏好与反馈.py::test_偏好及反馈拒绝异作者及评测用途__26a005 |
| F19.01 | 分层评价 | [B10 效果评测](模块设计/B10-效果评测.md) | src/muse/效果评测/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/单元/test_评测比较与启用判据.py::test_小均差不能掩盖最大偏差且边界严格__29fb4b;tests/单元/test_评测比较与启用判据.py::test_来源标签多不等于独立组多且桥接按连通分量合并__25e00a |
| F19.02 | 正反与边界样例 | [B10 效果评测](模块设计/B10-效果评测.md) | src/muse/效果评测/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/单元/test_声音与规则合同.py::test_内置规则候选逐条具备四类反向可查例证__3accff;tests/单元/test_声音与规则合同.py::test_规则缺回归例证时拒绝候选合同__de273e |
| F19.03 | 成对比较 | [B10 效果评测](模块设计/B10-效果评测.md) | src/muse/效果评测/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_评测执行与失败收敛.py::test_双评委反向文本且独立任务调用无共享报告__aee3df;tests/集成/test_返修独立比较.py::test_确切返修候选只经双盲评委比较并以只读证明返回B06__239001 |
| F19.04 | 固定条件对照 | [B10 效果评测](模块设计/B10-效果评测.md) | src/muse/效果评测/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_ABC正文回放.py::test_三臂实际生成只消费本臂资料且独立比较保留主AC__258001;tests/集成/test_评测执行与失败收敛.py::test_真实生成按运行表且比较依赖独立盲化表__256001 |
| F19.05 | 变更回归 | [B10 效果评测](模块设计/B10-效果评测.md) | src/muse/效果评测/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_评测混淆观察.py::test_实际报告五类观察及版本均绑定原条件__25f601;tests/单元/test_评测数据集.py::test_样本顺序不改变数据集身份及封存哈希__252005 |
| F19.06 | 有用的结果指标 | [B10 效果评测](模块设计/B10-效果评测.md) | src/muse/效果评测/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_评测完整报告.py::test_未知成本与未开始比较不能报告为零或平局__254002;tests/集成/test_评测完整报告.py::test_完整分母与分组失败保留且恢复计入全部费用__254001 |
| F19.07 | 评测隔离 | [B10 效果评测](模块设计/B10-效果评测.md) | src/muse/效果评测/接口.py | [P06-经验验证与启用](功能规格/P06-经验验证与启用.md) | tests/集成/test_生产评测权限隔离.py::test_生产不能读取答案或评测数据且评测不能修改封存__251001;tests/集成/test_生产评测权限隔离.py::test_实验冻结实际配置与全分割且模型输入无答案映射__251004;tests/集成/test_任务租约与恢复.py::test_生产评测任务使用独立权限与实例__a51009 |
| F20.01 | 创作工作台 | [S03 工作台与系统管理](模块设计/S03-工作台与系统管理.md) | web/src/功能/ | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | web/tests/旅程/人工创作.spec.ts;web/tests/旅程/生成对话.spec.ts;web/tests/旅程/任务材料.spec.ts;tests/集成/test_人工创作HTTP.py::test_HTTP创建作品到保存中文正文并拒绝伪身份__aa1301 |
| F20.02 | 检索与导航 | [S03 工作台与系统管理](模块设计/S03-工作台与系统管理.md) | web/src/功能/ | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_上下文投影读取.py::test_细纲与事实经真实任务读取留痕并进入预算__b09201;web/tests/交互/选区定位.test.ts;tests/单元/test_方法检索空结果.py::test_无命中检索保留明确原因和索引身份__e0a672 |
| F20.03 | 完整数据带走 | [S03 工作台与系统管理](模块设计/S03-工作台与系统管理.md) | web/src/功能/ | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/端到端/test_交付归档与恢复.py::test_两作品浏览器下载后恢复决定原文并续跑原交付__29d001;tests/集成/test_数据维护与恢复.py::test_认证备份目录核对下载不依赖可用源库并拒绝坏份__29b009 ;web/tests/旅程/备份恢复.spec.ts|
| F20.04 | 备份与恢复 | [S03 工作台与系统管理](模块设计/S03-工作台与系统管理.md) | web/src/功能/ | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_数据维护与恢复.py::test_维护CLI断源恢复真实候选正文与排队交付任务__29b008;tests/集成/test_维护任务恢复.py::test_备份核对计划跨装配继续且冻结目录与命令范围__29c001;web/tests/旅程/备份恢复.spec.ts |
| F20.05 | 模型与宿主替换 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_受控模型调用.py::test_任务绑定配置装配真实传输且不随新版本切换__a62007;tests/集成/test_受控模型调用.py::test_CLI保存查看配置草案保留引用且不自动启用__a62008;tests/单元/test_预算与配置.py::test_配置凭据只保留引用且调用参数不可藏入明文__a60002 |
| F20.06 | 能力扩展 | [S02 任务运行](模块设计/S02-任务运行.md) | src/muse/任务运行/接口.py | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/单元/test_流程登记与保护.py::test_未知处理器与保护绕行拒绝__a50001;tests/单元/test_流程登记与保护.py::test_流程依赖环与不兼容槽位拒绝__a50002;tests/集成/test_受控模型调用.py::test_有限角色会话贯通真实工具与逐回合账本__a62006 ;web/tests/旅程/方法库.spec.ts;web/tests/旅程/方法启用.spec.ts;web/tests/旅程/规则启用.spec.ts;web/tests/旅程/规则改进.spec.ts|
| F20.07 | 数据与调用控制 | [S03 工作台与系统管理](模块设计/S03-工作台与系统管理.md) | web/src/功能/ | [P07-定稿交付与恢复](功能规格/P07-定稿交付与恢复.md) | tests/集成/test_系统管理与版本保护.py::test_系统页核实际代码资源版本且配置草案不启用__28b001;tests/集成/test_系统管理与版本保护.py::test_未知数据库版本或校验和漂移拒绝HTTP写入保留只读核对__28b002;tests/集成/test_预算预留与结算.py::test_配置验证启用与任务冻结版本互不覆盖__a61009 ;web/tests/旅程/系统管理.spec.ts;web/tests/旅程/任务预算与推进.spec.ts|
## 元数据支撑合同
M01—M08 的业务定义以[元数据与结构演进](数据模型/元数据与结构演进.md)为准,适用于上述多个功能,不新增或重排产品编号。
| 合同 | 牵头与协作 | 规格 | 目标测试 |
|------|------------|------|----------|
| M01 | S04、B02、B03、B09、S03 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/端到端/test_元数据扩展与版本升级.py |
| M02 | S04、B02、B03、S03 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/集成/test_新增类型完整消费.py |
| M03 | S04、S01、S02 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/架构/test_元数据不能跨模块写值.py |
| M04 | S04、S01、S03 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/契约/test_动态结构投影与版本.py |
| M05 | S04、业务实例维护者 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/迁移/test_动态字段往返.py |
| M06 | S04、B09、B08、S03 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/集成/test_字段投影收紧.py |
| M07 | S04、数据维护、各实例维护者 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/迁移/test_动态字段往返.py |
| M08 | S04、S01、B05 | [P08](功能规格/P08-元数据扩展与结构升级.md) | tests/集成/test_结构切换与内容提交.py |
## 覆盖使用要求
目标路径必须存在于[目标文件清单](项目目录与文件职责.md)。实施登记分别记录当前实现、自动化结果和真实使用证据,不对研究快照或本表填写完成比例。S03 的界面测试还需结合 web/tests/旅程 验证真实按钮;S02 的真实模型验证明确模型、宿主与调用成本。